En esta página se describe cómo obtener etiquetas para diferentes interlocutores en datos de audio transcritos por Speech-to-Text.
En ocasiones, los datos de audio contienen muestras de más de una persona hablando. Por ejemplo, el audio de una llamada telefónica suele incluir voces de dos o más personas. Lo ideal es que la transcripción de la llamada incluya quién habla en cada momento.
Diarización de interlocutores
Speech-to-Text puede reconocer a varios interlocutores en el mismo clip de audio. Cuando envías una solicitud de transcripción de audio a Speech-to-Text, puedes incluir un parámetro que le indique a Speech-to-Text que identifique a los diferentes interlocutores de la muestra de audio. Esta función, llamada diarización de interlocutores, detecta cuándo cambia el interlocutor y etiqueta con un número las voces individuales detectadas en el audio.
Cuando habilitas la diarización de interlocutores en tu solicitud de transcripción, Speech-to-Text intenta distinguir las diferentes voces incluidas en la muestra de audio. Las etiquetas de los resultados de la transcripción asignan un número a cada palabra según el hablante. Las palabras pronunciadas por el mismo interlocutor tienen el mismo número. Una transcripción puede incluir números de hasta tantos interlocutores como Speech-to-Text pueda identificar de forma única en la muestra de audio.
Cuando usas la diarización de hablantes, Speech-to-Text genera un agregado continuo de todos los resultados proporcionados en la transcripción. Cada resultado incluye las palabras del resultado anterior. Por lo tanto, la matriz words
del resultado final proporciona los resultados completos y diarizados
de la transcripción.
Consulta la página de idiomas disponibles para ver si esta función está disponible en tu idioma.
Habilitar la diarización del interlocutor en una solicitud
Para habilitar la diarización del interlocutor, debes definir el campo diarization_config
en RecognitionFeatures
. Debe definir los valores de min_speaker_count
y max_speaker_count
en función del número de participantes que espere que haya en la transcripción.
Speech-to-Text admite la diarización de hablantes en todos los métodos de reconocimiento de voz: speech:recognize
y streaming.
Usar un archivo local
En el siguiente fragmento de código se muestra cómo habilitar la diarización de hablantes en una solicitud de transcripción a Speech-to-Text mediante un archivo local.
Protocolo
Consulta todos los detalles en el endpoint de la API speech:recognize
.
Para realizar el reconocimiento de voz síncrono, haz una solicitud POST
y proporciona el cuerpo de la solicitud adecuado. A continuación, se muestra un ejemplo de una solicitud POST
que utiliza curl
. En el ejemplo se usa Google Cloud CLI para generar un token de acceso. Para obtener instrucciones sobre cómo instalar gcloud CLI, consulta la guía de inicio rápido.
curl -s -H "Content-Type: application/json" \ -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ https://speech.googleapis.com/v2/projects/{project}/locations/{location}/recognizers/{recognizer}:recognize \ --data '{ "config": { "features": { "diarizationConfig": { "minSpeakerCount": 2, "maxSpeakerCount": 2 }, } }, "uri": "gs://cloud-samples-tests/speech/commercial_mono.wav" }' > speaker-diarization.txt
Si la solicitud se realiza de forma correcta, el servidor devuelve un código de estado HTTP 200 OK
y la respuesta en formato JSON, que se guarda en un archivo llamado 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": [ { "startOffset": "0s", "endOffset": "1.100s", "word": "hi", "speakerLabel": "2" }, { "startOffset": "1.100s", "endOffset": "2s", "word": "I'd", "speakerLabel": "2" }, { "startOffset": "2s", "endOffset": "2s", "word": "like", "speakerLabel": "2" }, { "startOffset": "2s", "endOffset": "2.100s", "word": "to", "speakerLabel": "2" }, ... { "startOffset": "6.500s", "endOffset": "6.900s", "word": "certainly", "speakerLabel": "1" }, { "startOffset": "6.900s", "endOffset": "7.300s", "word": "which", "speakerLabel": "1" }, { "startOffset": "7.300s", "endOffset": "7.500s", "word": "color", "speakerLabel": "1" }, ... ] } ], "languageCode": "en-us" } ] }
Go
Para saber cómo instalar y usar la biblioteca de cliente de Speech-to-Text, consulta el artículo Bibliotecas de cliente de Speech-to-Text. Para obtener más información, consulta la documentación de referencia de la API Go Speech-to-Text.
Para autenticarte en Speech-to-Text, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Python
Para saber cómo instalar y usar la biblioteca de cliente de Speech-to-Text, consulta el artículo Bibliotecas de cliente de Speech-to-Text. Para obtener más información, consulta la documentación de referencia de la API Python Speech-to-Text.
Para autenticarte en Speech-to-Text, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.