Vista geral do Cloud Speech-to-Text

O Cloud Speech-to-Text é uma API que lhe permite integrar as tecnologias de reconhecimento de voz da Google nas suas aplicações de programador. Este documento aborda os princípios básicos da utilização do Cloud Speech-to-Text, incluindo os tipos de pedidos que pode fazer ao Cloud STT, como criar esses pedidos e como processar as respetivas respostas. Antes de começar a usar a API, leia este guia e um dos tutoriais associados.

Pedidos de reconhecimento do Cloud Speech-to-Text

O Cloud Speech-to-Text (STT) tem três métodos principais para realizar o reconhecimento de voz. Estão disponíveis os seguintes métodos:

  • O reconhecimento síncrono (REST e gRPC) envia dados de áudio para a API Cloud 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íncrono processam dados de áudio de 1 minuto ou menos.

  • Reconhecimento assíncrono (REST e gRPC) envia dados de áudio para a API Cloud Speech-to-Text e inicia uma operação de longa duração. Com esta operação, pode sondar 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) executa 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 em streaming fornece resultados provisórios à medida que o áudio é capturado. Por exemplo, os resultados podem aparecer enquanto um utilizador ainda está a falar.

Os pedidos contêm parâmetros de configuração, bem como dados de áudio. Os pedidos 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 Cloud Speech-to-Text pode deduzir automaticamente os metadados de áudio. O STT na nuvem analisa o cabeçalho do ficheiro e descodifica-o de acordo com essas informações. Consulte a página de codificação para ver os tipos de ficheiros compatíveis.

Para ficheiros de áudio sem cabeçalho, a API Cloud Speech-to-Text permite-lhe especificar os metadados de áudio explicitamente na configuração de reconhecimento. Consulte a página de codificação para ver 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 amostrar o á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 Cloud Speech-to-Text à taxa de amostragem original.

Idiomas

O motor de reconhecimento do STT do Cloud 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 Idiomas suportados.

Funcionalidades de reconhecimento

A Cloud Speech-to-Text API tem funcionalidades de reconhecimento adicionais, como pontuação automática e confiança ao nível da palavra. Ativa estas funcionalidades na configuração de reconhecimento em pedidos. Consulte o código de exemplo nos links fornecidos e a página de idiomas para ver a disponibilidade de funcionalidades.

Seleção de modelo

O STT na nuvem 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

Inclui áudio incorporado no pedido de reconhecimento de voz transmitindo um parâmetro content no campo audio_source do pedido. Para o áudio incorporado que faculta como conteúdo num pedido gRPC, o áudio tem de ser compatível com a serialização Proto3 e facultado como dados binários. Para áudio incorporado que fornece como conteúdo num pedido REST, o áudio tem de ser compatível com a serialização JSON e estar primeiro 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, geralmente, escreve estes dados binários (ou codificados em Base64) diretamente no campo content.

Transmita áudio referenciado por um URI

Normalmente, passa um parâmetro uri no campo audio_source do pedido da API Cloud Speech-to-Text, que aponta para um ficheiro de áudio (em formato binário, não Base64) localizado no Cloud Storage no seguinte formato:

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 [Agente do serviço Speech-to-Text][speech-service-agent] 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 de IAM do projeto em [Gerir o acesso a projetos, pastas e organizações][manage-access].

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 em [Crie e faça a gestão de listas de controlo de acesso][buckets-manage-acl] na documentação do Cloud Storage.

Respostas da Cloud Speech-to-Text API

Depois de a Cloud Speech-to-Text API processar o áudio, 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 Cloud STT determinar que uma alternativa tem um valor de confiança suficiente, o Cloud STT inclui essa alternativa na resposta. A primeira alternativa na resposta é sempre a melhor (mais provável) alternativa.

A definição de max_alternatives para um valor superior a 1 não implica nem garante que são devolvidas várias alternativas. Em geral, mais do que uma alternativa é mais adequada para oferecer 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 na resposta contém um transcript com o texto reconhecido. Quando receber alternativas sequenciais, concatene estas transcrições.

Valores de confiança

O valor de confidence é uma estimativa entre 0,0 e 1,0. É calculado através da agregação dos valores de "probabilidade" atribuídos a cada palavra no áudio. Um número mais elevado indica uma maior probabilidade estimada de as palavras individuais serem reconhecidas corretamente. Normalmente, este campo só é fornecido para a hipótese principal e apenas para resultados em que is_final=true. Por exemplo, pode usar o valor confidence para decidir se quer mostrar resultados alternativos ou pedir a sua confirmação.

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 "melhor" resultado pode ter um valor de confiança inferior ao previsto. Isto pode ocorrer, por exemplo, quando são usadas palavras raras. Mesmo que o sistema reconheça corretamente uma palavra raramente usada, pode ser-lhe atribuído um valor de "probabilidade" baixo. Se o modelo determinar que a palavra rara é a opção mais provável com base no contexto, devolve esse resultado na parte superior, mesmo que o valor do resultado seja inferior ao das opções alternativas.confidence

O que se segue?