Esta página descreve como obter etiquetas para diferentes oradores em dados de áudio transcritos pelo Speech-to-Text.
Por vezes, os dados de áudio contêm exemplos de mais do que uma pessoa a falar. Por exemplo, o áudio de uma chamada telefónica normalmente inclui vozes de duas ou mais pessoas. Idealmente, uma transcrição da chamada inclui quem fala e em que momentos.
Separação de oradores
A funcionalidade de conversão de voz em texto pode reconhecer vários oradores no mesmo clipe de áudio. Quando envia um pedido de transcrição de áudio para o serviço Speech-to-Text, pode incluir um parâmetro que indica ao serviço Speech-to-Text para identificar os diferentes interlocutores na amostra de áudio. Esta funcionalidade, denominada diarização de oradores, deteta quando os oradores mudam e etiqueta por número as vozes individuais detetadas no áudio.
Quando ativa a diarização de oradores no seu pedido de transcrição, o serviço Speech-to-Text tenta distinguir as diferentes vozes incluídas na amostra de áudio. O resultado da transcrição etiqueta cada palavra com um número atribuído a oradores individuais. As palavras ditas pelo mesmo orador têm o mesmo número. Um resultado da transcrição pode incluir números até ao número de oradores que o Speech-to-Text consegue identificar de forma exclusiva na amostra de áudio.
Quando usa a diarização de oradores, a conversão de voz em texto produz uma agregação contínua de todos os resultados fornecidos na transcrição. Cada resultado inclui as palavras do resultado anterior. Assim, a matriz words
no resultado final fornece os resultados completos e com indicação do orador
da transcrição.
Consulte a página de suporte de idiomas para ver se esta funcionalidade está disponível para o seu idioma.
Ative a separação de oradores num pedido
Para ativar a separação de oradores, tem de definir o campo diarization_config
em RecognitionFeatures
. Tem de definir os valores min_speaker_count
e max_speaker_count
de acordo com o número de oradores que espera na transcrição.
A conversão de voz em texto suporta a identificação de oradores para todos os métodos de reconhecimento de voz: speech:recognize
e streaming.
Use um ficheiro local
O fragmento de código seguinte demonstra como ativar a diarização de oradores numa solicitação de transcrição para o Speech-to-Text através de um ficheiro local
Protocolo
Consulte o ponto final da API speech:recognize
para ver os detalhes completos.
Para realizar o reconhecimento de voz síncrono, faça um pedido POST
e forneça o corpo do pedido adequado. O exemplo seguinte mostra um pedido POST
com curl
. O exemplo usa a Google Cloud CLI para gerar um token de acesso. Para ver instruções sobre a instalação da CLI gcloud,
consulte o 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
Se o pedido for bem-sucedido, o servidor devolve um código de estado HTTP 200 OK
e a resposta no formato JSON, guardada num ficheiro com o nome 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 cliente do Speech-to-Text, consulte o artigo Bibliotecas cliente do Speech-to-Text. Para mais informações, consulte a documentação de referência da API Go Speech-to-Text.
Para se autenticar no Speech-to-Text, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
Python
Para saber como instalar e usar a biblioteca cliente do Speech-to-Text, consulte o artigo Bibliotecas cliente do Speech-to-Text. Para mais informações, consulte a documentação de referência da API Python Speech-to-Text.
Para se autenticar no Speech-to-Text, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.