Transcrição da conversão de voz em texto com a API Cloud Speech-to-Text

A API Cloud Speech faz a transcrição de arquivos de áudio em texto em mais de 80 idiomas.

Neste laboratório, vamos gravar e enviar um arquivo de áudio para a API Cloud Speech para transcrição.

O que você vai aprender

  • Como criar uma solicitação da API Speech e chamá-la com curl
  • Como chamar a API Speech com arquivos de áudio em diferentes idiomas

Pré-requisitos

  • Um projeto do Google Cloud Platform
  • Um navegador (como o Chrome ou o Firefox)

Como você usará este tutorial?

Apenas leitura Leitura e exercícios

Como você classificaria sua experiência com o Google Cloud Platform?

Iniciante Intermediário Proficiente

Configuração de ambiente personalizada

Se você ainda não tem uma Conta do Google (Gmail ou Google Apps), crie uma. Faça login no Console do Google Cloud Platform (console.cloud.google.com) e crie um novo projeto:

Captura de tela de 10/02/2016 12:45:26.png

Lembre-se do código do projeto, um nome exclusivo em todos os projetos do Google Cloud. O nome acima já foi escolhido e não servirá para você. Faremos referência a ele mais adiante neste codelab como PROJECT_ID.

Em seguida, você precisará ativar o faturamento no Console do Cloud para usar os recursos do Google Cloud.

A execução por meio deste codelab terá um custo baixo, mas poderá ser mais se você decidir usar mais recursos ou se deixá-los em execução. Consulte a seção "limpeza" no final deste documento.

Novos usuários do Google Cloud Platform estão qualificados para um teste sem custo financeiro de US$ 300.

Clique no ícone de menu no canto superior esquerdo da tela.

Selecione o painel APIs e serviços no menu suspenso.

Clique em Ativar APIs e serviços.

Depois, procure "fala" na caixa de pesquisa. Clique em API Google Cloud Speech:

Clique em Ativar para ativar a API Cloud Speech:

Aguarde até que ele seja ativado. Você verá isto quando estiver ativado:

O Google Cloud Shell é um ambiente de linha de comando executado no Cloud. Esta máquina virtual baseada em Debian tem todas as ferramentas de desenvolvimento necessárias (gcloud, bq, git e outras) e oferece um diretório principal permanente de 5 GB. Usaremos o Cloud Shell para criar nossa solicitação à API Speech.

Para começar a usar o Cloud Shell, clique no ícone "Ativar o Google Cloud Shell" Screen Shot 2015-06-08 at 5.30.32 PM.pngno canto superior direito da barra de cabeçalho.

Uma sessão do Cloud Shell é aberta em um novo frame na parte inferior do console e um prompt de linha de comando é exibido. Aguarde até que a solicitação "user@project:~$" seja exibida

Como usaremos curl para enviar uma solicitação à API Speech, precisaremos gerar uma chave de API para transmitir o URL da solicitação. Para criar uma chave de API, navegue até a seção APIs & Services > Credentials do painel do projeto:

Clique em Criar credenciais:

No menu suspenso, selecione Chave de API:

Em seguida, copie a chave que você gerou e selecione Fechar (não restrinja a chave).

Agora que você tem uma chave de API, salve-a em uma variável de ambiente para não precisar inserir o valor dela em cada solicitação. Faça isso no Cloud Shell. Lembre-se de substituir <your_api_key> pela chave que você copiou.

export API_KEY=<YOUR_API_KEY>

É possível criar sua solicitação para a API Speech em um arquivo request.json. Para criar e editar esse arquivo, você pode usar um dos seus editores de linha de comando preferidos (nano, vim, emacs) ou o editor da Web integrado no Cloud Shell:

Crie o arquivo no diretório principal para poder referenciá-lo facilmente e adicionar o seguinte ao seu arquivo request.json :

request.json (link em inglês)

{
  "config": {
      "encoding":"FLAC",
      "languageCode": "en-US"
  },
  "audio": {
      "uri":"gs://cloud-samples-tests/speech/brooklyn.flac"
  }
}

O corpo da solicitação tem um objeto config e audio. Em config, informamos à API Speech como processar a solicitação. O parâmetro encoding informa à API o tipo de codificação de áudio que você está usando para o arquivo de áudio que está enviando à API. FLAC é o tipo de codificação dos arquivos .raw. Consulte a documentação para saber mais sobre o tipo de codificação. É possível adicionar outros parâmetros ao objeto config, mas encoding é o único obrigatório. O padrão da languageCode será inglês se não for incluído na solicitação.

No objeto audio, você pode transmitir a API ao URI do nosso arquivo de áudio no Cloud Storage ou ao áudio codificado em Base64 como uma string. Estes são os URLs do Cloud Storage. A próxima etapa é chamar a API Speech.

Agora é possível transmitir o corpo da solicitação com a variável de ambiente da chave de API salva anteriormente para a API Speech com o seguinte comando curl, tudo em uma única linha de comando:

curl -s -X POST -H "Content-Type: application/json" --data-binary @request.json "https://speech.googleapis.com/v1/speech:recognize?key=${API_KEY}"

A resposta retornada por esse comando curl será semelhante a esta:

{
  "results": [
    {
      "alternatives": [
        {
          "transcript": "how old is the Brooklyn Bridge",
          "confidence": 0.98267895
        }
      ]
    }
  ]
}

O valor transcript retornará a transcrição de texto da API Speech do arquivo de áudio. O valor confidence indica o nível de precisão da API na transcrição exata do áudio.

Observe que chamamos o método recognize na solicitação acima. A API Speech é compatível com fala síncrona e assíncrona para transcrição de texto. Nesse exemplo, enviamos um arquivo de áudio completo, mas você também pode usar o método longrunningrecognize para realizar a transmissão de fala para transcrição de texto enquanto o usuário está falando.

Você fala diversos idiomas? A API Speech é compatível com a transcrição de voz em texto em mais de cem idiomas. É possível mudar o parâmetro languageCode em request.json. Veja uma lista dos idiomas compatíveis neste link.

Vamos testar um arquivo de áudio em francês. Ouça-o neste link se quiser uma prévia. Mude seu request.json para o seguinte:

request.json (link em inglês)

 {
  "config": {
      "encoding":"FLAC",
      "languageCode": "fr"
  },
  "audio": {
      "uri":"gs://speech-language-samples/fr-sample.flac"
  }
}

Você verá a seguinte resposta:

{
  "results": [
    {
      "alternatives": [
        {
          "transcript": "maître corbeau sur un arbre perché tenait en son bec un fromage",
          "confidence": 0.9710122
        }
      ]
    }
  ]
}

Essa é uma frase de um famoso conto infantil francês. Se você tiver arquivos de áudio em outro idioma, tente adicioná-los ao Cloud Storage e mude o parâmetro languageCode na solicitação.

Você aprendeu a usar a transcrição de voz em texto com a API Speech. Neste exemplo, você transmitiu para a API o URI do Google Cloud Storage do seu arquivo de áudio. Outra opção é enviar uma string codificada em base64 do conteúdo de áudio.

O que vimos

  • Como transmitir o URI de um arquivo de áudio à API Speech no Google Cloud Storage
  • Como criar uma solicitação da API Speech e chamá-la com curl
  • Como chamar a API Speech com arquivos de áudio em diferentes idiomas

Próximas etapas