Questa pagina descrive come ricevere etichette per diversi altoparlanti in dati audio trascritti da Speech-to-Text.
Talvolta, i dati audio contengono campioni di più persone. Ad esempio, l'audio di una telefonata solitamente include voci di due o più persone. La trascrizione della chiamata, se possibile, include chi parla a che ora.
Dialer altoparlante
Speech-to-Text è in grado di riconoscere più altoparlanti nella stessa clip audio. Quando invii una richiesta di trascrizione di audio a Speech-to-Text, puoi includere un parametro che indica a Speech-to-Text di identificare i diversi altoparlanti nel campione audio. Questa funzionalità, chiamata dialer dell'altoparlante, rileva quando gli altoparlanti cambiano ed etichetta in base al numero delle singole voci rilevate nell'audio.
Se attivi l'opzione Dialer del relatore nella richiesta di trascrizione, Speech-to-Text tenta di distinguere le diverse voci incluse nel campione audio. Il risultato della trascrizione tagga ogni parola con un numero assegnato a singoli oratori. Le parole pronunciate dallo stesso altoparlante sono uguali. Un risultato della trascrizione può includere numeri fino al maggior numero di altoparlanti che Speech-to-Text è in grado di identificare in modo univoco nel campione audio.
Quando utilizzi la diarizzazione dei relatori, Speech-to-Text produce un aggregato in esecuzione di tutti i risultati forniti nella trascrizione. Ogni
risultato include le parole del risultato precedente. In questo modo, l'array words
nel risultato finale fornisce i risultati diarizzati completi della trascrizione.
Consulta la pagina di assistenza per le lingue per verificare se questa funzionalità è disponibile per la tua lingua.
Attivare la diarizzazione degli altoparlanti in una richiesta
Per attivare la diarizzazione degli altoparlanti, devi impostare il campo
enableSpeakerDiarization
su true
nei parametri
SpeakerDiarizationConfig
per la richiesta. Per migliorare i risultati della trascrizione, devi
anche specificare il numero di altoparlanti presenti nel clip audio
impostando il campo diarizationSpeakerCount
nei parametri
SpeakerDiarizationConfig
. Speech-to-Text utilizza un valore predefinito se non fornisci un valore per diarizationSpeakerCount
.
Speech-to-Text supporta la diarizzazione degli altoparlanti per tutti i metodi di riconoscimento vocale: speech:recognize
speech:longrunningrecognize
e Streaming.
Utilizzare un file locale
Il seguente snippet di codice dimostra come abilitare la diarizzazione dei relatori in una richiesta di trascrizione per la sintesi vocale utilizzando un file locale
Protocollo
Per informazioni complete, consulta l'endpoint API speech:recognize
.
Per eseguire il riconoscimento vocale sincrono, effettua una richiesta POST
e fornisci il corpo della richiesta appropriato. Di seguito è riportato un esempio di richiesta POST
tramite
curl
. L'esempio utilizza il token di accesso per un account di servizio configurato per il progetto
tramite l'interfaccia a riga di comando di Google Cloud. Per istruzioni sull'installazione dell'interfaccia a riga di comando gcloud,
sulla configurazione di un progetto con un account di servizio e sull'ottenimento di un token di accesso,
consulta la guida rapida.
curl -s -H "Content-Type: application/json" \ -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ https://speech.googleapis.com/v1p1beta1/speech:recognize \ --data '{ "config": { "encoding": "LINEAR16", "languageCode": "en-US", "enableSpeakerDiarization": true, "diarizationSpeakerCount": 2, "model": "phone_call" }, "audio": { "uri": "gs://cloud-samples-tests/speech/commercial_mono.wav" } }' > speaker-diarization.txt
Se la richiesta ha esito positivo, il server restituisce un codice di stato HTTP 200 OK
e la risposta in formato JSON, salvata in un file denominato
speaker-diarization.txt
.
{ "results": [ { "alternatives": [ { "transcript": "hi I'd like to buy a Chromecast and I was wondering whether you could help me with that certainly which color would you like we have blue black and red uh let's go with the black one would you like the new Chromecast Ultra model or the regular Chrome Cast regular Chromecast is fine thank you okay sure we like to ship it regular or Express Express please terrific it's on the way thank you thank you very much bye", "confidence": 0.92142606, "words": [ { "startTime": "0s", "endTime": "1.100s", "word": "hi", "speakerTag": 2 }, { "startTime": "1.100s", "endTime": "2s", "word": "I'd", "speakerTag": 2 }, { "startTime": "2s", "endTime": "2s", "word": "like", "speakerTag": 2 }, { "startTime": "2s", "endTime": "2.100s", "word": "to", "speakerTag": 2 }, ... { "startTime": "6.500s", "endTime": "6.900s", "word": "certainly", "speakerTag": 1 }, { "startTime": "6.900s", "endTime": "7.300s", "word": "which", "speakerTag": 1 }, { "startTime": "7.300s", "endTime": "7.500s", "word": "color", "speakerTag": 1 }, ... ] } ], "languageCode": "en-us" } ] }
Java
Node.js
Python
Utilizzare un bucket Cloud Storage
Il seguente snippet di codice mostra come abilitare la disabilità del relatore in una richiesta di trascrizione di Speech-to-Text utilizzando un file Google Cloud Storage
Java
Node.js