Condividi tramite


Usare l'API di trascrizione rapida con Riconoscimento vocale di Intelligenza artificiale di Azure

L'API di trascrizione rapida viene usata per trascrivere file audio con risultati restituiti in modo sincrono e più veloce rispetto al tempo reale. Usare Trascrizione rapida negli scenari in cui è necessario trascrivere una registrazione audio il più rapidamente possibile con una latenza prevedibile, ad esempio:

  • Trascrizione rapida di audio o video, sottotitoli e modifica.
  • Traduzione video

A differenza dell'API di trascrizione batch, l'API di trascrizione rapida produce solo trascrizioni nel formato di visualizzazione (non lessicale). Il formato visualizzato è una forma più leggibile della trascrizione che include punteggiatura e maiuscola.

Prerequisiti

  • Una risorsa di Voce di Azure AI in una delle aree in cui è disponibile l'API di Trascrizione rapida. Le aree supportate sono: Australia orientale, Brasile meridionale, India centrale, Stati Uniti orientali, Stati Uniti orientali 2, Francese, Giappone orientale, Stati Uniti centro-settentrionali, Europa settentrionale, Stati Uniti centro-meridionali, Asia sud-orientale, Svezia centrale, Europa occidentale, Stati Uniti occidentali 2, Stati Uniti occidentali 3. Per altre informazioni sulle aree supportate per altre funzionalità del servizio Voce, vedere Aree del servizio Voce.

  • Un file audio (di durata inferiore a 2 ore e di dimensioni inferiori a 200 MB) in uno dei formati e codec supportati dall'API di Trascrizione in batch. Per altre informazioni sui formati audio supportati, vedere Formati audio supportati.

Usare l'API di Trascrizione rapida

Suggerimento

Provare la trascrizione rapida nel portale di Azure AI Foundry.

Si apprenderà come usare l'API di trascrizione rapida (tramite trascrizioni - Trascrivi) con gli scenari seguenti:

  • Impostazioni locali note specificate: trascrivere un file audio con impostazioni locali specificate. Se si conoscono le impostazioni locali del file audio, è possibile specificarlo per migliorare l'accuratezza della trascrizione e ridurre al minimo la latenza.
  • Identificazione della lingua su: trascrivere un file audio con l'identificazione della lingua. Se non si è certi delle impostazioni locali del file audio, è possibile attivare l'identificazione della lingua per consentire al servizio Voce di identificare le impostazioni locali.
  • Diarizzazione su: trascrivere un file audio con diarizzazione su . La diarizzazione distingue tra diversi altoparlanti nella conversazione. Il servizio Voce fornisce informazioni sull'altoparlante che parlava una particolare parte del discorso trascritto.
  • Multicanale su: trascrivere un file audio con uno o due canali. Le trascrizioni multicanale sono utili per i file audio con più canali, ad esempio file audio con più altoparlanti o file audio con rumore di fondo. Per impostazione predefinita, l'API di trascrizione rapida unisce tutti i canali di input in un singolo canale e quindi esegue la trascrizione. Se ciò non è auspicabile, i canali possono essere trascritti in modo indipendente senza unione.

Inviare una richiesta POST multipart/form-data all'endpoint transcriptions con il file audio, specificando le proprietà del corpo della richiesta.

L'esempio seguente illustra come trascrivere un file audio con impostazioni locali specificate. Se si conoscono le impostazioni locali del file audio, è possibile specificarlo per migliorare l'accuratezza della trascrizione e ridurre al minimo la latenza.

  • Sostituire YourSubscriptionKey con la chiave della risorsa Voce.
  • Sostituire YourServiceRegion con l'area della risorsa Voce.
  • Sostituire YourAudioFile con il percorso del file audio.
curl --location 'https://YourServiceRegion.api.cognitive.microsoft.com/speechtotext/transcriptions:transcribe?api-version=2024-11-15' \
--header 'Content-Type: multipart/form-data' \
--header 'Ocp-Apim-Subscription-Key: YourSubscriptionKey' \
--form 'audio=@"YourAudioFile"' \
--form 'definition="{
    "locales":["en-US"]}"'

Costruire la definizione del modulo in base alle istruzioni seguenti:

  • Impostare la proprietà facoltativa (ma consigliata) locales che deve corrispondere alle impostazioni locali previste dei dati audio da trascrivere. In questo esempio le impostazioni locali sono impostate su en-US. Le impostazioni locali supportate che è possibile specificare sono: de-DE, en-IN, en-US, es-ES, es-MX, fr-FR, hi-IN, it-IT, ja-JP, ko-KR, pt-BR e zh-CN.

Per altre informazioni su locales e altre proprietà per l'API di trascrizione rapida, vedere la sezione opzioni di configurazione delle richieste più avanti in questa guida.

La risposta include durationMilliseconds, offsetMillisecondse altro ancora. La combinedPhrases proprietà contiene le trascrizioni complete per tutti gli altoparlanti.

{
	"durationMilliseconds": 182439,
	"combinedPhrases": [
		{
			"text": "Good afternoon. This is Sam. Thank you for calling Contoso. How can I help? Hi there. My name is Mary. I'm currently living in Los Angeles, but I'm planning to move to Las Vegas. I would like to apply for a loan. Okay. I see you're currently living in California. Let me make sure I understand you correctly. Uh You'd like to apply for a loan even though you'll be moving soon. Is that right? Yes, exactly. So I'm planning to relocate soon, but I would like to apply for the loan first so that I can purchase a new home once I move there. And are you planning to sell your current home? Yes, I will be listing it on the market soon and hopefully it'll sell quickly. That's why I'm applying for a loan now, so that I can purchase a new house in Nevada and close on it quickly as well once my current home sells. I see. Would you mind holding for a moment while I take your information down? Yeah, no problem. Thank you for your help. Mm-hmm. Just one moment. All right. Thank you for your patience, ma'am. May I have your first and last name, please? Yes, my name is Mary Smith. Thank you, Ms. Smith. May I have your current address, please? Yes. So my address is 123 Main Street in Los Angeles, California, and the zip code is 90923. Sorry, that was a 90 what? 90923. 90923 on Main Street. Got it. Thank you. May I have your phone number as well, please? Uh Yes, my phone number is 504-529-2351 and then yeah. 2351. Got it. And do you have an e-mail address we I can associate with this application? uh Yes, so my e-mail address is mary.a.sm78@gmail.com. Mary.a, was that a S-N as in November or M as in Mike? M as in Mike. Mike78, got it. Thank you. Ms. Smith, do you currently have any other loans? Uh Yes, so I currently have two other loans through Contoso. So my first one is my car loan and then my other is my student loan. They total about 1400 per month combined and my interest rate is 8%. I see. And you're currently paying those loans off monthly, is that right? Yes, of course I do. OK, thank you. Here's what I suggest we do. Let me place you on a brief hold again so that I can talk with one of our loan officers and get this started for you immediately. In the meantime, it would be great if you could take a few minutes and complete the remainder of the secure application online at www.contosoloans.com. Yeah, that sounds good. I can go ahead and get started. Thank you for your help. Thank you."
		}
	],
	"phrases": [
		{
			"offsetMilliseconds": 960,
			"durationMilliseconds": 640,
			"text": "Good afternoon.",
			"words": [
				{
					"text": "Good",
					"offsetMilliseconds": 960,
					"durationMilliseconds": 240
				},
				{
					"text": "afternoon.",
					"offsetMilliseconds": 1200,
					"durationMilliseconds": 400
				}
			],
			"locale": "en-US",
			"confidence": 0.93616915
		},
		{
			"offsetMilliseconds": 1600,
			"durationMilliseconds": 640,
			"text": "This is Sam.",
			"words": [
				{
					"text": "This",
					"offsetMilliseconds": 1600,
					"durationMilliseconds": 240
				},
				{
					"text": "is",
					"offsetMilliseconds": 1840,
					"durationMilliseconds": 120
				},
				{
					"text": "Sam.",
					"offsetMilliseconds": 1960,
					"durationMilliseconds": 280
				}
			],
			"locale": "en-US",
			"confidence": 0.93616915
		},
		{
			"offsetMilliseconds": 2240,
			"durationMilliseconds": 1040,
			"text": "Thank you for calling Contoso.",
			"words": [
				{
					"text": "Thank",
					"offsetMilliseconds": 2240,
					"durationMilliseconds": 200
				},
				{
					"text": "you",
					"offsetMilliseconds": 2440,
					"durationMilliseconds": 80
				},
				{
					"text": "for",
					"offsetMilliseconds": 2520,
					"durationMilliseconds": 120
				},
				{
					"text": "calling",
					"offsetMilliseconds": 2640,
					"durationMilliseconds": 200
				},
				{
					"text": "Contoso.",
					"offsetMilliseconds": 2840,
					"durationMilliseconds": 440
				}
			],
			"locale": "en-US",
			"confidence": 0.93616915
		},
		{
			"offsetMilliseconds": 3280,
			"durationMilliseconds": 640,
			"text": "How can I help?",
			"words": [
				{
					"text": "How",
					"offsetMilliseconds": 3280,
					"durationMilliseconds": 120
				},
				{
					"text": "can",
					"offsetMilliseconds": 3440,
					"durationMilliseconds": 120
				},
				{
					"text": "I",
					"offsetMilliseconds": 3560,
					"durationMilliseconds": 40
				},
				{
					"text": "help?",
					"offsetMilliseconds": 3600,
					"durationMilliseconds": 320
				}
			],
			"locale": "en-US",
			"confidence": 0.93616915
		},
		{
			"offsetMilliseconds": 5040,
			"durationMilliseconds": 400,
			"text": "Hi there.",
			"words": [
				{
					"text": "Hi",
					"offsetMilliseconds": 5040,
					"durationMilliseconds": 240
				},
				{
					"text": "there.",
					"offsetMilliseconds": 5280,
					"durationMilliseconds": 160
				}
			],
			"locale": "en-US",
			"confidence": 0.93616915
		},
		{
			"offsetMilliseconds": 5440,
			"durationMilliseconds": 800,
			"text": "My name is Mary.",
			"words": [
				{
					"text": "My",
					"offsetMilliseconds": 5440,
					"durationMilliseconds": 80
				},
				{
					"text": "name",
					"offsetMilliseconds": 5520,
					"durationMilliseconds": 120
				},
				{
					"text": "is",
					"offsetMilliseconds": 5640,
					"durationMilliseconds": 80
				},
				{
					"text": "Mary.",
					"offsetMilliseconds": 5720,
					"durationMilliseconds": 520
				}
			],
			"locale": "en-US",
			"confidence": 0.93616915
		},
		// More transcription results...
	    // Redacted for brevity
		{
			"offsetMilliseconds": 180320,
			"durationMilliseconds": 680,
			"text": "Thank you for your help.",
			"words": [
				{
					"text": "Thank",
					"offsetMilliseconds": 180320,
					"durationMilliseconds": 160
				},
				{
					"text": "you",
					"offsetMilliseconds": 180480,
					"durationMilliseconds": 80
				},
				{
					"text": "for",
					"offsetMilliseconds": 180560,
					"durationMilliseconds": 120
				},
				{
					"text": "your",
					"offsetMilliseconds": 180680,
					"durationMilliseconds": 120
				},
				{
					"text": "help.",
					"offsetMilliseconds": 180800,
					"durationMilliseconds": 200
				}
			],
			"locale": "en-US",
			"confidence": 0.9314801
		},
		{
			"offsetMilliseconds": 181960,
			"durationMilliseconds": 280,
			"text": "Thank you.",
			"words": [
				{
					"text": "Thank",
					"offsetMilliseconds": 181960,
					"durationMilliseconds": 200
				},
				{
					"text": "you.",
					"offsetMilliseconds": 182160,
					"durationMilliseconds": 80
				}
			],
			"locale": "en-US",
			"confidence": 0.9314801
		}
	]
}

Opzioni di configurazione delle richieste

Ecco alcune opzioni di proprietà per configurare una trascrizione quando si chiama l'operazione Trascrizioni - Trascrivi .

Proprietà Descrizione Obbligatorio o facoltativo
channels Elenco di indici in base zero dei canali da trascrivere separatamente. Sono supportati fino a due canali, a meno che non sia abilitata la diarizzazione. Per impostazione predefinita, l'API di trascrizione rapida unisce tutti i canali di input in un singolo canale e quindi esegue la trascrizione. Se ciò non è auspicabile, i canali possono essere trascritti in modo indipendente senza unione.

Se vuoi trascrivere i canali da un file audio stereo separatamente, devi specificare [0,1], [0]o [1]. In caso contrario, l'audio stereo viene unito a mono e viene trascritto solo un singolo canale.

Se l'audio è stereo e la diarizzazione è abilitata, non è possibile impostare la channels proprietà su [0,1]. Il servizio Voce non supporta la diarizzazione di più canali.

Per l'audio mono, la channels proprietà viene ignorata e l'audio viene sempre trascritto come canale singolo.
Facoltativo
diarization Configurazione della diarizzazione. La diarizzazione è il processo di riconoscimento e separazione di più altoparlanti in un solo canale audio. Ad esempio, specificare "diarization": {"maxSpeakers": 2, "enabled": true}. Il file di trascrizione contiene speaker quindi voci (ad esempio "speaker": 0 o "speaker": 1) per ogni frase trascritta. Facoltativo
locales Elenco di impostazioni locali che devono corrispondere alle impostazioni locali previste dei dati audio da trascrivere.

Se si conoscono le impostazioni locali del file audio, è possibile specificarlo per migliorare l'accuratezza della trascrizione e ridurre al minimo la latenza. Se si specifica una singola impostazione locale, tali impostazioni locali vengono usate per la trascrizione.

Tuttavia, se non si è certi delle impostazioni locali, è possibile specificare più impostazioni locali. L'identificazione della lingua potrebbe essere più accurata con un elenco più preciso delle impostazioni locali candidate.

Se non si specificano impostazioni locali o se le impostazioni locali specificate non sono presenti nel file audio, il servizio Voce tenta comunque di identificare la lingua. Se non è possibile identificare la lingua, viene restituito un errore.

Le impostazioni locali supportate che è possibile specificare sono: de-DE, en-IN, en-US, es-ES, es-MX, fr-FR, hi-IN, it-IT, ja-JP, ko-KR, pt-BR e zh-CN. È possibile ottenere le lingue supportate più recenti tramite l'API REST Trascrizioni - Elenca impostazioni locali supportate. Per altre informazioni sulle impostazioni locali, vedere la documentazione relativa al supporto linguistico del servizio Voce.
Facoltativo ma consigliato se si conoscono le impostazioni locali previste.
profanityFilterMode Specifica come gestire il linguaggio volgare nei risultati del riconoscimento. I valori accettati sono None per disabilitare i filtri del contenuto volgare, Masked per sostituire il contenuto volgare con asterischi, Removed per rimuovere tutto il contenuto volgare dal risultato o Tags per aggiungere i tag per il contenuto volgare. Il valore predefinito è Masked. Facoltativo