Veja nesta página como criar rótulos para locutores diferentes em dados de áudio transcritos pela Cloud Speech-to-Text.
Às vezes, dados de áudio contêm amostras de mais de uma pessoa falando. Por exemplo, o áudio de uma chamada telefônica geralmente tem vozes de duas ou mais pessoas. O ideal é que a transcrição dessa chamada identifique quem fala em quais ocasiões.
Diarização de locutor
Com a API Cloud Speech-to-Text, é possível reconhecer vários locutores no mesmo clipe de áudio. Ao enviar uma solicitação de transcrição de áudio para a Cloud Speech-to-Text, você pode incluir um parâmetro para que a API identifique os diferentes locutores presentes na amostra. Esse recurso, chamado de diarização de locutor, detecta a alternância entre os locutores e rotula por número as vozes individuais identificadas no áudio.
Quando você ativa a diarização de locutor na sua solicitação de transcrição, a Cloud Speech-to-Text tenta distinguir as diferentes vozes incluídas na amostra de áudio. O resultado da transcrição rotula cada palavra com um número atribuído a locutores individuais. Palavras ditas pelo mesmo locutor têm o mesmo número. O resultado da transcrição incluirá um número diferente para cada locutor que a Cloud Speech-to-Text puder identificar de forma exclusiva na amostra de áudio.
Com o uso da diarização de locutor, a Cloud Speech-to-Text produz um conjunto atualizado de todos os resultados fornecidos na transcrição. Cada resultado inclui as palavras do resultado anterior. Assim, você terá os resultados completos e diarizados da transcrição na matriz words
do resultado final.
Confira a página de suporte a idiomas para ver se esse recurso está disponível no seu idioma.
Ativar a diarização de locutor em uma solicitação
Para ativar a diarização de locutor, defina o campo
diarization_config em
RecognitionFeatures. Defina os valores min_speaker_count e max_speaker_count de acordo com quantos locutores você espera na transcrição.
A Cloud STT é compatível com a diarização de locutor em todos os métodos de reconhecimento de fala: speech:recognize e streaming.
Usar um arquivo local
Confira no snippet de código a seguir como ativar a diarização de locutor em uma solicitação de transcrição para a Cloud Speech-to-Text usando um arquivo local.
REST
Consulte o endpoint de API speech:recognize para conferir todos os detalhes.
Para realizar o reconhecimento de fala síncrono, faça uma solicitação POST e forneça o
corpo de solicitação apropriado. Confira a seguir um exemplo de uma solicitação POST que usa
curl. O exemplo usa a CLI do Google Cloud para gerar um token
de acesso. Para instruções sobre como instalar a gcloud CLI,
consulte o guia de início 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
Quando a solicitação é bem-sucedida, o servidor retorna um código de status HTTP 200 OK e a resposta no formato JSON, salvos em um arquivo chamado 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 como instalar e usar a biblioteca de cliente da Cloud STT, consulte Bibliotecas de cliente da Cloud STT. Saiba mais na documentação de referência da API Cloud STT para Go.
Para se autenticar na Cloud STT, configure o Application Default Credentials. Se quiser mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Python
Para saber como instalar e usar a biblioteca de cliente da Cloud STT, consulte Bibliotecas de cliente da Cloud STT. Saiba mais na documentação de referência da API Cloud STT para Python.
Para se autenticar na Cloud STT, configure o Application Default Credentials. Se quiser mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.