Creare una trascrizione batch
Con le trascrizioni batch, si inviano dati audio in un batch. Il servizio trascrive i dati audio e archivia i risultati in un contenitore di archiviazione. È quindi possibile recuperare i risultati dal contenitore di archiviazione.
Importante
I nuovi prezzi sono validi per la trascrizione batch tramite l'API REST Riconoscimento vocale v3.2. Per altre informazioni, vedere la guida ai prezzi.
Prerequisiti
È necessaria una risorsa Voce standard (S0). Le risorse gratuite (F0) non sono supportate.
Creare un processo di trascrizione
Per creare un processo di trascrizione batch, usare l'operazione Transcriptions_Create dell'API REST di riconoscimento vocale. Creare il corpo della richiesta in base alle istruzioni seguenti:
- È necessario impostare la proprietà
contentContainerUrl
ocontentUrls
. Per altre informazioni su Archiviazione BLOB di Azure per la trascrizione batch, vedere Individuare i file audio per la trascrizione batch. - Impostare la proprietà
locale
obbligatoria. Questo valore deve corrispondere alle impostazioni locali previste dei dati audio da trascrivere. Non è possibile modificare le impostazioni locali in un secondo momento. - Impostare la proprietà
displayName
obbligatoria. Scegliere un nome per la trascrizione a cui è possibile fare riferimento in un secondo momento. Il nome della trascrizione non deve essere univoco e può essere modificato in un secondo momento. - Facoltativamente, per usare un modello diverso dal modello di base, impostare la proprietà
model
sull'ID modello. Per altre informazioni, vedere Usare un modello personalizzato e Usare un modello Whisper. - Facoltativamente, impostare la proprietà
wordLevelTimestampsEnabled
sutrue
per abilitare i timestamp a livello di parola nei risultati della trascrizione. Il valore predefinito èfalse
. Per i modelli Whisper, impostare invece la proprietàdisplayFormWordLevelTimestampsEnabled
. Whisper è un modello di sola visualizzazione, quindi il campo lessicale non viene popolato nella trascrizione. - Facoltativamente, impostare la proprietà
languageIdentification
. L'identificazione della lingua viene usata per identificare le lingue parlate nell'audio rispetto a un elenco di lingue supportate. Se si imposta la proprietàlanguageIdentification
, è necessario impostare anchelanguageIdentification.candidateLocales
con le impostazioni locali candidate.
Per altre informazioni, vedere Opzioni di configurazione delle richieste.
Effettuare una richiesta HTTP POST che usi l'URI come illustrato nell'esempio Transcriptions_Create seguente.
- Sostituire
YourSubscriptionKey
con la chiave della risorsa Voce. - Sostituire
YourServiceRegion
con l'area della risorsa Voce. - Impostare le proprietà del corpo della richiesta come descritto in precedenza.
curl -v -X POST -H "Ocp-Apim-Subscription-Key: YourSubscriptionKey" -H "Content-Type: application/json" -d '{
"contentUrls": [
"https://crbn.us/hello.wav",
"https://crbn.us/whatstheweatherlike.wav"
],
"locale": "en-US",
"displayName": "My Transcription",
"model": null,
"properties": {
"wordLevelTimestampsEnabled": true,
"languageIdentification": {
"candidateLocales": [
"en-US", "de-DE", "es-ES"
],
}
},
}' "https://YourServiceRegion.api.cognitive.microsoft.com/speechtotext/v3.2/transcriptions"
Dovrebbe essere visualizzato un corpo della risposta nel formato seguente:
{
"self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/transcriptions/db474955-ab85-4c6c-ba6e-3bfe63d041ba",
"model": {
"self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/models/base/5988d691-0893-472c-851e-8e36a0fe7aaf"
},
"links": {
"files": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/transcriptions/db474955-ab85-4c6c-ba6e-3bfe63d041ba/files"
},
"properties": {
"diarizationEnabled": false,
"wordLevelTimestampsEnabled": true,
"channels": [
0,
1
],
"punctuationMode": "DictatedAndAutomatic",
"profanityFilterMode": "Masked",
"languageIdentification": {
"candidateLocales": [
"en-US",
"de-DE",
"es-ES"
]
}
},
"lastActionDateTime": "2024-05-21T14:18:06Z",
"status": "NotStarted",
"createdDateTime": "2024-05-21T14:18:06Z",
"locale": "en-US",
"displayName": "My Transcription"
}
La proprietà self
di primo livello nel corpo della risposta è l'URI della trascrizione. Usare questo URI per ottenere dettagli, ad esempio l'URI dei file delle trascrizioni e dei report di trascrizione. È anche possibile usare questo URI per aggiornare o eliminare una trascrizione.
È possibile eseguire una query sullo stato delle trascrizioni con l'operazione Transcriptions_Get.
Chiamare Transcriptions_Delete regolarmente dal servizio dopo aver recuperato i risultati. In alternativa, impostare la proprietà timeToLive
per garantire l'eliminazione finale dei risultati.
Suggerimento
È anche possibile provare l'API di trascrizione batch usando Python, C# o Node.js in GitHub.
Per creare una trascrizione, usare il comando spx batch transcription create
. Creare i parametri della richiesta in base alle istruzioni seguenti:
- Impostare il parametro
content
obbligatorio. È possibile specificare un elenco delimitato da virgole di singoli file o l'URL per un intero contenitore. Per altre informazioni su Archiviazione BLOB di Azure per la trascrizione batch, vedere Individuare i file audio per la trascrizione batch. - Impostare la proprietà
language
obbligatoria. Questo valore deve corrispondere alle impostazioni locali previste dei dati audio da trascrivere. Non è possibile modificare le impostazioni locali in un secondo momento. Il parametrolanguage
dell'interfaccia della riga di comando di Voce corrisponde alla proprietàlocale
nella richiesta e nella risposta JSON. - Impostare la proprietà
name
obbligatoria. Scegliere un nome per la trascrizione a cui è possibile fare riferimento in un secondo momento. Il nome della trascrizione non deve essere univoco e può essere modificato in un secondo momento. Il parametroname
dell'interfaccia della riga di comando di Voce corrisponde alla proprietàdisplayName
nella richiesta e nella risposta JSON.
Ecco un esempio di comando dell'interfaccia della riga di comando di Voce che crea un processo di trascrizione:
spx batch transcription create --name "My Transcription" --language "en-US" --content https://crbn.us/hello.wav,https://crbn.us/whatstheweatherlike.wav
Dovrebbe essere visualizzato un corpo della risposta nel formato seguente:
{
"self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/transcriptions/7f4232d5-9873-47a7-a6f7-4a3f00d00dc0",
"model": {
"self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/models/base/5988d691-0893-472c-851e-8e36a0fe7aaf"
},
"links": {
"files": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/transcriptions/7f4232d5-9873-47a7-a6f7-4a3f00d00dc0/files"
},
"properties": {
"diarizationEnabled": false,
"wordLevelTimestampsEnabled": false,
"channels": [
0,
1
],
"punctuationMode": "DictatedAndAutomatic",
"profanityFilterMode": "Masked"
},
"lastActionDateTime": "2024-05-21T14:21:59Z",
"status": "NotStarted",
"createdDateTime": "2024-05-21T14:21:59Z",
"locale": "en-US",
"displayName": "My Transcription",
"description": ""
}
La proprietà self
di primo livello nel corpo della risposta è l'URI della trascrizione. Usare questo URI per ottenere dettagli, ad esempio l'URI dei file delle trascrizioni e dei report di trascrizione. È anche possibile usare questo URI per aggiornare o eliminare una trascrizione.
Per visualizzare le informazioni della Guida dell'interfaccia della riga di comando di Voce per le trascrizioni, eseguire il comando seguente:
spx help batch transcription
Opzioni di configurazione delle richieste
Ecco alcune opzioni di proprietà che è possibile usare per configurare una trascrizione quando si chiama l'operazione Transcriptions_Create. Nella stessa pagina è possibile trovare anche altri esempi, ad esempio per la creazione di una trascrizione con identificazione della lingua.
Proprietà | Descrizione |
---|---|
channels |
Matrice di numeri di canale da elaborare. I canali 0 e 1 vengono trascritti per impostazione predefinita. |
contentContainerUrl |
È possibile inviare singoli file audio o un intero contenitore di archiviazione. È necessario specificare la posizione dei dati audio usando la proprietà contentContainerUrl o contentUrls . Per altre informazioni su Archiviazione BLOB di Azure per la trascrizione batch, vedere Individuare i file audio per la trascrizione batch.Questa proprietà non viene restituita nella risposta. |
contentUrls |
È possibile inviare singoli file audio o un intero contenitore di archiviazione. È necessario specificare la posizione dei dati audio usando la proprietà contentContainerUrl o contentUrls . Per altre informazioni, vedere Individuare i file audio per la trascrizione batch.Questa proprietà non viene restituita nella risposta. |
destinationContainerUrl |
Il risultato può essere archiviato in un contenitore di Azure. Se non si specifica un contenitore, il servizio Voce archivia i risultati in un contenitore gestito da Microsoft. Quando il processo di trascrizione viene eliminato, vengono eliminati anche i dati dei risultati della trascrizione. Per altre informazioni, ad esempio gli scenari di sicurezza supportati, vedere Specificare un URL del contenitore di destinazione. |
diarization |
Indica che il servizio Voce deve tentare l'analisi della diarizzazione sull'input, che dovrebbe essere un canale mono che contiene più voci. La funzionalità non è disponibile con le registrazioni stereo. La diarizzazione è il processo di separazione dei parlanti nei dati audio. La pipeline batch può riconoscere e separare più parlanti nelle registrazioni dei canali mono. Specificare il numero minimo e massimo di persone che potrebbero parlare. È anche necessario impostare la proprietà diarizationEnabled su true . Il file di trascrizione contiene una voce speaker per ogni frase trascritta.È necessario usare questa proprietà quando sono previsti tre o più parlanti. Per due parlanti, impostare la proprietà diarizationEnabled su true è sufficiente. Per un esempio di utilizzo delle proprietà, vedere Transcriptions_Create.Il numero massimo di parlanti per la diarizzazione deve essere minore di 36 e maggiore o uguale alla proprietà minCount . Per un esempio, vedere Transcriptions_Create.Quando questa proprietà è selezionata, la lunghezza dell'audio di origine non può superare i 240 minuti per ogni file. Nota: questa proprietà è disponibile solo con l'API REST Riconoscimento vocale versione 3.1 e successive. Se si imposta questa proprietà con qualsiasi versione precedente, ad esempio la versione 3.0, viene ignorata e vengono identificati solo due parlanti. |
diarizationEnabled |
Specifica che il servizio Voce deve tentare l'analisi della diarizzazione sull'input, che dovrebbe essere un canale mono che contiene più voci. Il valore predefinito è false .Per tre o più voci è necessario usare anche la proprietà diarization . Usare solo con l'API REST Riconoscimento vocale versione 3.1 e successive.Quando questa proprietà è selezionata, la lunghezza dell'audio di origine non può superare i 240 minuti per ogni file. |
displayName |
Nome della trascrizione batch. Scegliere un nome a cui è possibile fare riferimento in un secondo momento. Non è necessario che il nome visualizzato sia univoco. Questa proprietà è obbligatoria. |
displayFormWordLevelTimestampsEnabled |
Specifica se includere timestamp a livello di parola nella forma visualizzata dei risultati della trascrizione. I risultati vengono restituiti nella proprietà displayWords del file di trascrizione. Il valore predefinito è false .Nota: questa proprietà è disponibile solo con l'API REST Riconoscimento vocale versione 3.1 e successive. |
languageIdentification |
L'identificazione della lingua viene usata per identificare le lingue parlate nell'audio rispetto a un elenco di lingue supportate. Se si imposta la proprietà languageIdentification , è necessario impostare anche la proprietà candidateLocales correlata. |
languageIdentification.candidateLocales |
Impostazioni locali candidate per l'identificazione della lingua, ad esempio "properties": { "languageIdentification": { "candidateLocales": ["en-US", "de-DE", "es-ES"]}} . Sono supportate un minimo due e un massimo di dieci impostazioni locali candidate, incluse le impostazioni locali principali per la trascrizione. |
locale |
Impostazioni locali della trascrizione batch. Questo valore deve corrispondere alle impostazioni locali previste dei dati audio da trascrivere. Le impostazioni locali non possono essere modificate in un secondo momento. Questa proprietà è obbligatoria. |
model |
È possibile impostare la proprietà model per usare un modello di base specifico o un modello di riconoscimento vocale personalizzato. Se non si specifica model , viene usato il modello di base predefinito per le impostazioni locali. Per altre informazioni, vedere Usare un modello personalizzato e Usare un modello Whisper. |
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 . |
punctuationMode |
Specifica come gestire la punteggiatura nei risultati del riconoscimento. I valori accettati sono None per disabilitare la punteggiatura, Dictated per implicare la punteggiatura esplicita (pronunciata), Automatic per consentire al decodificatore di gestire la punteggiatura o DictatedAndAutomatic per usare la punteggiatura dettata e automatica. Il valore predefinito è DictatedAndAutomatic .Questa proprietà non è applicabile ai modelli Whisper. |
timeToLive |
Periodo di tempo dopo la creazione del processo di trascrizione al termine del quale i risultati della trascrizione verranno eliminati automaticamente. Il valore è una durata con codifica ISO 8601. Ad esempio, specificare PT12H per 12 ore. In alternativa, è possibile chiamare Transcriptions_Delete regolarmente dopo aver recuperato i risultati della trascrizione. |
wordLevelTimestampsEnabled |
Specifica se i timestamp a livello di parola devono essere inclusi nell'output. Il valore predefinito è false .Questa proprietà non è applicabile ai modelli Whisper. Whisper è un modello di sola visualizzazione, quindi il campo lessicale non viene popolato nella trascrizione. |
Per visualizzare le informazioni della Guida dell'interfaccia della riga di comando di Voce per le opzioni di configurazione della trascrizione, eseguire il comando seguente:
spx help batch transcription create advanced
Usare un modello personalizzato
La trascrizione batch usa il modello di base predefinito per le impostazioni locali specificate. Non è necessario impostare proprietà per usare il modello di base predefinito.
Facoltativamente, è possibile modificare il precedente esempio di creazione della trascrizione impostando la proprietà model
in modo da usare un modello di base specifico o un modello di riconoscimento vocale personalizzato.
curl -v -X POST -H "Ocp-Apim-Subscription-Key: YourSubscriptionKey" -H "Content-Type: application/json" -d '{
"contentUrls": [
"https://crbn.us/hello.wav",
"https://crbn.us/whatstheweatherlike.wav"
],
"locale": "en-US",
"displayName": "My Transcription",
"model": {
"self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/models/base/5988d691-0893-472c-851e-8e36a0fe7aaf"
},
"properties": {
"wordLevelTimestampsEnabled": true,
},
}' "https://YourServiceRegion.api.cognitive.microsoft.com/speechtotext/v3.2/transcriptions"
spx batch transcription create --name "My Transcription" --language "en-US" --content https://crbn.us/hello.wav,https://crbn.us/whatstheweatherlike.wav --model "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/models/base/5988d691-0893-472c-851e-8e36a0fe7aaf"
Per usare un modello di riconoscimento vocale personalizzato per la trascrizione batch, è necessario l'URI del modello. La proprietà di primo livello self
nel corpo della risposta è l'URI del modello. È possibile recuperare la posizione del modello quando si crea o si ottiene un modello. Per altre informazioni, vedere l'esempio di risposta JSON in Creare un modello.
Suggerimento
Per usare la conversione voce/testo personalizzata con il servizio di trascrizione batch non è necessario un endpoint di distribuzione ospitata. È possibile risparmiare risorse se il modello di riconoscimento vocale personalizzato viene usato solo per la trascrizione batch.
Le richieste di trascrizione batch per i modelli scaduti avranno esito negativo con un errore 4xx. Impostare la proprietà model
su un modello di base o un modello personalizzato ancora non scaduto. In caso contrario, non includere la proprietà model
per usare sempre il modello di base più recente. Per altre informazioni, vedere Scegliere un modello e Ciclo di vita del modello di riconoscimento vocale personalizzato.
Usare un modello Whisper
Voce di Azure AI supporta il modello Whisper di OpenAI tramite l'API di trascrizione batch. È possibile usare il modello Whisper per la trascrizione batch.
Nota
Servizio OpenAI di Azure supporta anche il modello Whisper di OpenAI per il riconoscimento vocale con API REST sincrona. Per altre informazioni, vedere Riconoscimento vocale con il modello Whisper di Azure OpenAI. Per altre informazioni su quando usare Voce di Azure AI e quando il Servizio OpenAI di Azure, vedere Che cos'è il modello Whisper?
Per usare un modello Whisper per la trascrizione batch, è necessario impostare la proprietà model
. Whisper è un modello di sola visualizzazione, quindi il campo lessicale non viene popolato nella risposta.
Importante
Per i modelli Whisper è consigliabile usare sempre la versione 3.2 dell'API Riconoscimento vocale.
La trascrizione batch con modelli Whisper è supportata nelle aree Australia orientale, Stati Uniti centrali, Stati Uniti orientali, Stati Uniti centro-settentrionali, Stati Uniti centro-meridionali, Asia sud-orientale ed Europa occidentale.
È possibile effettuare una richiesta Models_ListBaseModels per ottenere i modelli di base disponibili per tutte le impostazioni locali.
Effettuare una richiesta HTTP GET come illustrato nell'esempio seguente per l'area eastus
. Sostituire YourSubscriptionKey
con la chiave della risorsa Voce. Sostituire eastus
se si usa un'area diversa.
curl -v -X GET "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/models/base" -H "Ocp-Apim-Subscription-Key: YourSubscriptionKey"
Per impostazione predefinita vengono restituiti solo i 100 modelli di base meno recenti. Usare i parametri di query skip
e top
per scorrere i risultati. Ad esempio, la richiesta seguente restituisce i 100 modelli di base successivi dopo i primi 100.
curl -v -X GET "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/models/base?skip=100&top=100" -H "Ocp-Apim-Subscription-Key: YourSubscriptionKey"
Assicurarsi di impostare le variabili di configurazione per una risorsa Voce in una delle aree supportate. È possibile eseguire il comando spx csr list --base
per ottenere i modelli di base disponibili per tutte le impostazioni locali.
spx csr list --base --api-version v3.2
La proprietà displayName
di un modello Whisper contiene "Whisper", come illustrato in questo esempio. Whisper è un modello di sola visualizzazione, quindi il campo lessicale non viene popolato nella trascrizione.
{
"self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/models/base/e418c4a9-9937-4db7-b2c9-8afbff72d950",
"links": {
"manifest": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/models/base/e418c4a9-9937-4db7-b2c9-8afbff72d950/manifest"
},
"properties": {
"deprecationDates": {
"adaptationDateTime": "2025-04-15T00:00:00Z",
"transcriptionDateTime": "2026-04-15T00:00:00Z"
},
"features": {
"supportsTranscriptions": true,
"supportsEndpoints": false,
"supportsTranscriptionsOnSpeechContainers": false,
"supportsAdaptationsWith": [
"Acoustic"
],
"supportedOutputFormats": [
"Display"
]
},
"chargeForAdaptation": true
},
"lastActionDateTime": "2024-02-29T15:53:28Z",
"status": "Succeeded",
"createdDateTime": "2024-02-29T15:46:07Z",
"locale": "en-US",
"displayName": "20240228 Whisper Large V2",
"description": "OpenAI Whisper Model in Azure AI Speech (Whisper v2-large)"
},
Impostare l'URI completo del modello, come illustrato in questo esempio per l'area eastus
. Sostituire YourSubscriptionKey
con la chiave della risorsa Voce. Sostituire eastus
se si usa un'area diversa.
curl -v -X POST -H "Ocp-Apim-Subscription-Key: YourSubscriptionKey" -H "Content-Type: application/json" -d '{
"contentUrls": [
"https://crbn.us/hello.wav",
"https://crbn.us/whatstheweatherlike.wav"
],
"locale": "en-US",
"displayName": "My Transcription",
"model": {
"self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/models/base/e418c4a9-9937-4db7-b2c9-8afbff72d950"
},
"properties": {
"wordLevelTimestampsEnabled": true,
},
}' "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/transcriptions"
Impostare l'URI completo del modello, come illustrato in questo esempio per l'area eastus
. Sostituire eastus
se si usa un'area diversa.
spx batch transcription create --name "My Transcription" --language "en-US" --content https://crbn.us/hello.wav,https://crbn.us/whatstheweatherlike.wav --model "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/models/base/e418c4a9-9937-4db7-b2c9-8afbff72d950" --api-version v3.2
Specificare un URL del contenitore di destinazione
Il risultato della trascrizione essere archiviato in un contenitore di Azure. Se non si specifica un contenitore, il servizio Voce archivia i risultati in un contenitore gestito da Microsoft. In tal caso, quando il processo di trascrizione viene eliminato, vengono eliminati anche i dati dei risultati della trascrizione.
È possibile archiviare i risultati di una trascrizione batch in un contenitore di Archiviazione BLOB di Azure scrivibile usando l'opzione destinationContainerUrl
nella richiesta di creazione della trascrizione batch. Questa opzione usa solo un URI di firma di accesso condiviso ad hoc e non supporta il meccanismo di sicurezza dei servizi di Azure attendibili. Questa opzione non supporta inoltre la firma di accesso condiviso basata su criteri di accesso. La risorsa dell'account di archiviazione del contenitore di destinazione deve consentire tutto il traffico esterno.
Se si vogliono archiviare i risultati della trascrizione in un contenitore di Archiviazione BLOB di Azure tramite il meccanismo di sicurezza dei servizi di Azure attendibili, prendere in considerazione l'uso di BYOS (Bring Your Own Storage). Per altre informazioni, vedere Usare la risorsa Voce BYOS (Bring Your Own Storage) per il riconoscimento vocale.