Este documento é um guia sobre os princípios básicos da utilização da funcionalidade de conversão de voz em texto. Este guia conceptual aborda os tipos de pedidos que pode fazer ao Speech-to-Text, como criar esses pedidos e como processar as respetivas respostas. Recomendamos que todos os utilizadores da API Speech-to-Text leiam este guia e um dos tutoriais associados antes de explorarem a própria API.
Pedidos de reconhecimento de voz em texto
O Speech-to-Text tem três métodos principais para realizar o reconhecimento de voz. Estes são indicados abaixo:
O reconhecimento síncrono (REST e gRPC) envia dados de áudio para a API Speech-to-Text, realiza o reconhecimento desses dados e devolve os resultados depois de todo o áudio ter sido processado. Os pedidos de reconhecimento síncronos estão limitados a dados de áudio com uma duração de 1 minuto ou menos.
O reconhecimento assíncrono (REST e gRPC) envia dados de áudio para a API Speech-to-Text e inicia uma operação de longa duração. Com esta operação, pode consultar periodicamente os resultados do reconhecimento. Use pedidos assíncronos para dados de áudio de qualquer duração até 480 minutos.
O reconhecimento de streaming (apenas gRPC) realiza o reconhecimento em dados de áudio fornecidos numa stream bidirecional gRPC. Os pedidos de streaming são concebidos para fins de reconhecimento em tempo real, como a captura de áudio em direto de um microfone. O reconhecimento de streaming fornece resultados provisórios enquanto o áudio está a ser capturado, o que permite que o resultado seja apresentado, por exemplo, enquanto um utilizador ainda está a falar.
Os pedidos contêm parâmetros de configuração, bem como dados de áudio. As solicitações de reconhecimento podem conter opcionalmente um reconhecedor, uma configuração de reconhecimento armazenada e reutilizável.
Metadados de áudio
Para a maioria dos ficheiros de áudio, a API Speech-to-Text pode deduzir automaticamente os metadados de áudio. A conversão de voz em texto analisa o cabeçalho do ficheiro e descodifica-o de acordo com essas informações. Consulte a página de codificação para saber que tipos de ficheiros são compatíveis.
Para ficheiros de áudio sem cabeçalho, a API Speech-to-Text permite especificar os metadados de áudio explicitamente na configuração de reconhecimento. Consulte a página de codificação para obter mais detalhes.
Se tiver uma escolha ao codificar o material de origem, capture o áudio com uma taxa de amostragem de 16 000 Hz. Os valores inferiores a este podem prejudicar a precisão do reconhecimento de voz, e os níveis mais elevados não têm um efeito apreciável na qualidade do reconhecimento de voz.
No entanto, se os seus dados de áudio já tiverem sido gravados a uma taxa de amostragem existente diferente de 16 000 Hz, não volte a fazer a amostragem do áudio para 16 000 Hz. Por exemplo, a maioria do áudio de telefonia antigo usa taxas de amostragem de 8000 Hz, o que pode dar resultados menos precisos. Se tiver de usar esse áudio, forneça o áudio à API Speech-to-Text na respetiva taxa de amostragem nativa.
Idiomas
O motor de reconhecimento da funcionalidade de conversão de voz em texto suporta vários idiomas e dialetos. Especifica o idioma (e o dialeto nacional ou regional) do áudio no campo languageCode
da configuração do pedido, através de um identificador BCP-47.
Pode consultar uma lista completa dos idiomas suportados para cada funcionalidade na página Suporte de idiomas.
Funcionalidades de reconhecimento
A API Speech-to-Text tem funcionalidades de reconhecimento adicionais, como pontuação automática e confiança ao nível da palavra. Pode ativar estas estratégias na configuração de reconhecimento em pedidos. Consulte o código de exemplo fornecido nos links acima e a página de idiomas para ver a disponibilidade destas funcionalidades.
Seleção de modelo
O Speech-to-Text pode usar um de vários modelos de aprendizagem automática para transcrever o seu ficheiro de áudio. A Google preparou estes modelos de reconhecimento de voz para tipos e fontes de áudio específicos. Consulte a documentação de seleção de modelos para saber mais sobre os modelos disponíveis e como selecionar um nos seus pedidos.
Conteúdo de áudio incorporado
O áudio incorporado é incluído no pedido de reconhecimento de voz quando transmite um parâmetro content
no campo audio_source
do pedido. Para áudio incorporado
fornecido como conteúdo num pedido gRPC, esse áudio tem de ser compatível com a serialização Proto3
e fornecido como dados binários. Para o áudio incorporado fornecido como conteúdo num pedido REST, esse áudio tem de ser compatível com a serialização JSON e tem de estar codificado em Base64. Consulte o artigo
Codificar o áudio em Base64 para mais informações.
Quando cria um pedido com uma
biblioteca de cliente do Google Cloud,
normalmente, escreve estes dados binários (ou codificados em base 64)
diretamente no campo content
.
Transmita áudio referenciado por um URI
Normalmente, transmite um parâmetro uri
no campo audio_source
do pedido da API Speech-to-Text, que aponta para um ficheiro de áudio (em formato binário, não base64) localizado no Cloud Storage do seguinte formulário:
gs://bucket-name/path/to/audio/file
O Speech-to-Text usa uma conta de serviço para aceder aos seus ficheiros no Cloud Storage. Por predefinição, a conta de serviço tem acesso aos ficheiros do Cloud Storage no mesmo projeto.
O endereço de email da conta de serviço é o seguinte:
service-PROJECT_NUMBER@gcp-sa-speech.iam.gserviceaccount.com
Para transcrever ficheiros do Cloud Storage noutro projeto, pode atribuir a esta conta de serviço a função de agente do serviço Speech-to-Text no outro projeto:
gcloud projects add-iam-policy-binding PROJECT_ID \
--member=serviceAccount:service-PROJECT_NUMBER@gcp-sa-speech.iam.gserviceaccount.com \
--role=roles/speech.serviceAgent
Pode encontrar mais informações sobre a Política IAM do projeto em Faça a gestão do acesso a projetos, pastas e organizações.
Também pode conceder à conta de serviço um acesso mais detalhado, concedendo-lhe autorização para um contentor do Cloud Storage específico:
gcloud storage buckets add-iam-policy-binding gs://BUCKET_NAME \
--member=serviceAccount:service-PROJECT_NUMBER@gcp-sa-speech.iam.gserviceaccount.com \
--role=roles/storage.admin
Pode encontrar mais informações sobre a gestão do acesso ao Cloud Storage no artigo Crie e faça a gestão de listas de controlo de acesso na documentação do Cloud Storage.
Respostas da Speech-to-Text API
Depois de o áudio ser processado, a API Speech-to-Text devolve os resultados da transcrição em mensagens SpeechRecognitionResult
para pedidos síncronos e em lote, e em mensagens StreamingRecognitionResult
para pedidos de streaming. Em pedidos síncronos e em lote, a resposta RPC contém uma lista de resultados. A lista de áudio reconhecido aparece por ordem contígua. Para respostas de streaming, todos os resultados marcados como is_final
aparecem
por ordem contígua.
Selecione alternativas
Cada resultado numa resposta de reconhecimento síncrono bem-sucedida pode conter um ou mais alternatives
(se o max_alternatives
for superior a 1
). Se o Speech-to-Text determinar que uma alternativa tem um valor de confiança suficiente, essa alternativa é incluída na resposta. A primeira alternativa na resposta é sempre a melhor (mais provável).
A definição de max_alternatives
para um valor superior a 1
não implica nem garante que serão devolvidas várias alternativas. Em geral, mais do que uma alternativa é mais adequada para fornecer opções em tempo real aos utilizadores que recebem resultados através de um pedido de reconhecimento de streaming.
Processamento de transcrições
Cada alternativa fornecida na resposta vai conter um transcript
com o texto reconhecido. Quando lhe são apresentadas alternativas sequenciais,
deve concatenar estas transcrições.
Valores de confiança
O valor de confidence
é uma estimativa entre 0,0 e 1,0. É calculado agregando os valores de "probabilidade" atribuídos a cada palavra no áudio. Um número mais elevado indica uma probabilidade estimada maior de que as palavras individuais tenham sido reconhecidas corretamente. Este campo é normalmente fornecido apenas para a hipótese principal e apenas para resultados em que is_final=true
. Por exemplo, pode usar o valor confidence
para decidir se deve mostrar resultados alternativos ao utilizador ou pedir confirmação ao utilizador.
No entanto, tenha em atenção que o modelo determina o "melhor" resultado com a classificação mais elevada com base em mais sinais do que apenas a pontuação confidence
(como o contexto da frase).
Por este motivo, existem casos ocasionais em que o resultado principal não tem a pontuação de confiança mais elevada. Se não tiver pedido vários resultados alternativos, o único resultado "melhor" devolvido pode ter um valor de confiança inferior ao esperado. Isto pode ocorrer, por exemplo, em casos em que estão a ser usadas palavras raras. A uma palavra raramente usada pode ser atribuído um valor de "probabilidade" baixo, mesmo que seja reconhecida corretamente. Se o modelo determinar que a palavra rara é a opção mais provável com base no contexto, esse resultado é devolvido na parte superior, mesmo que o valor confidence
do resultado seja inferior às opções alternativas.
O que se segue?
- Use bibliotecas cliente para transcrever áudio com a sua linguagem de programação favorita.
- Pratique a transcrição de ficheiros de áudio curtos.
- Saiba como transcrever áudio em streaming.
- Saiba como transcrever ficheiros de áudio longos.