En esta página se describe cómo obtener etiquetas para diferentes interlocutores en datos de audio transcritos por Cloud 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
Cloud 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 Transcripción de voz de Cloud, puedes incluir un parámetro que le indique a Transcripción de voz de Cloud que identifique a los distintos interlocutores de la muestra de audio. Esta función, llamada diarización de interlocutor, 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 interlocutor en tu solicitud de transcripción, Cloud 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 Cloud Speech-to-Text pueda identificar de forma única en la muestra de audio.
Cuando usas la diarización de hablantes, Cloud 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 oradores que espere que haya en la transcripción.
Cloud STT 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 del interlocutor en una solicitud de transcripción a Transcripción de voz de Cloud mediante un archivo local.
REST
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 Cloud STT, consulta Bibliotecas de cliente de Cloud STT. Para obtener más información, consulta la documentación de referencia de la API Cloud STT Go.
Para autenticarte en Cloud STT, 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 Cloud STT, consulta Bibliotecas de cliente de Cloud STT. Para obtener más información, consulta la documentación de referencia de la API Cloud STT Python.
Para autenticarte en Cloud STT, 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.