Princípios básicos do Media Translation

Este documento é um guia sobre os princípios básicos do uso da Media Translation. Este guia conceitual aborda os tipos de solicitações que podem ser feitas para o Media Translation, como criar essas solicitações e como lidar com suas respostas. Recomendamos que todos os usuários do Media Translation leiam este guia e um dos tutoriais associados antes de usar a API.

Solicitações de tradução de fala

Até o momento, o Media Translation tem apenas um método para realizar a tradução de fala:

  • A tradução de streaming (somente gRPC) realiza a tradução de dados de áudio fornecidos em um stream bidirecional do gRPC. As solicitações de streaming são criadas para traduções em tempo real, como a captura de áudio ao vivo de um microfone. A tradução de streaming fornece resultados provisórios enquanto o áudio está sendo capturado, permitindo que o resultado apareça, por exemplo, enquanto um usuário ainda está falando. As solicitações de tradução de streaming são limitadas a dados de áudio de cinco minutos ou menos.

As solicitações contêm parâmetros de configuração ou dados de áudio. As seções a seguir descrevem com mais detalhes esses tipos de solicitações de tradução de fala, as respostas que elas geram e como lidar com essas respostas.

Solicitações de tradução de fala em streaming

Uma solicitação de streaming da API Media Translation pode ser uma configuração de tradução de fala ou dados de áudio. Veja abaixo um exemplo de solicitação de configuração:

{
    "audio_config": {
        "audio_encoding": "linear16",
        "sample_rate_hertz": 16000,
        "source_language_code": "en-US",
        "target_language_code": "zh",
        "model" : "google-provided-model/video",
    }
    "single_utterance" : False
}

Veja abaixo um exemplo de solicitação de dados de áudio:

{
    "audio_content " : "\366c\256\375jQ\r\312\205j\271\243%/u\216z\330\354\221\360\253KJ\005\"
}

O primeiro StreamingTranslateSpeechRequest precisa conter uma configuração do tipo StreamingTranslateSpeechConfig sem áudio associado. Os StreamingTranslateSpeechRequests subsequentes enviados pelo mesmo stream consistirão em frames consecutivos de bytes de áudio brutos.

Um StreamingTranslateSpeechConfig contém os seguintes campos:

  • audio_config (obrigatório): contém informações de configuração para o áudio, do tipo TranslateSpeechConfig.
  • single_utterance - (opcional, o padrão é false) indica se esta solicitação deve terminar automaticamente após a fala não ser mais detectada. Se definido, o Media Translation detectará pausas, silêncio ou áudio sem fala para determinar quando a tradução deve ser concluída. Se não estiver configurado, o streaming continuará a ouvir e processar o áudio até que seja fechado diretamente ou que o comprimento limite seja excedido. Definir single_utterance como true é útil para processar comandos de voz.

Um TranslateSpeechConfig contém os seguintes subcampos:

  • audio_encoding - (obrigatório) especifica o esquema de codificação do áudio fornecido (do tipo AudioEncoding). Se você tiver uma opção no codec, opte por uma codificação sem perdas, como FLAC ou LINEAR16, para um melhor desempenho. Para mais informações, consulte Codificações de áudio.
  • sample_rate_hertz - (obrigatório) especifica a taxa de amostragem (em Hertz) do áudio fornecido. Para mais informações sobre essa taxa, consulte as Taxas de amostragem abaixo.
  • source_language_code - (obrigatório) contém o idioma + região/localidade a serem usados para o reconhecimento de fala do áudio fornecido. O código de idioma precisa ser um identificador BCP-47. Observe que os códigos de idioma geralmente consistem em tags de idioma principais e subtags de região secundárias para indicar dialetos. No exemplo acima, "en" para inglês e "US" para os Estados Unidos. Para uma lista de idiomas compatíveis, consulte Idiomas compatíveis.
  • "target_language_code" (obrigatório): contém o idioma a ser usado na tradução de texto do áudio fornecido. O código de idioma precisa ser um identificador BCP-47. Os códigos de idioma geralmente são apenas tags de idioma principal, já que o texto de tradução não considera os dialetos. No entanto, "zh-CN" e "zh-TW" serão textos de tradução diferentes. Para ver uma lista de idiomas compatíveis, consulte Idiomas compatíveis.

O áudio é fornecido ao Media Translation por meio do campo audio_content do tipo StreamingTranslateSpeechRequest. O campo audio_content contém o áudio a ser avaliado, incorporado na solicitação. Saiba mais em Incorporação de conteúdo de áudio.

Resposta de tradução de fala em streaming

Os resultados da tradução de fala em streaming são retornados em uma série de respostas do tipo StreamingTranslateSpeechResponse. Essa resposta consiste nos seguintes campos:

  • speech_event_type contém eventos do tipo SpeechEventType. O valor desses eventos indicará quando uma única fala for determinada como concluída. Os eventos de fala servem como marcadores dentro da resposta de streaming. Ao receber END_OF_SINGLE_UTTERANCE, o usuário precisa parar de enviar solicitações enquanto aguarda as demais respostas de tradução.
  • results contém a lista de resultados, que podem ser resultados provisórios ou finais, do tipo StreamingTranslateSpeechResult. A lista results contém os seguintes subcampos:
    • translation contém texto de tradução.
    • isFinal indica se os resultados obtidos nessa entrada da lista são intermediários ou finais.

Mais informações sobre esses parâmetros de resposta e solicitação são exibidas abaixo.

Taxas de amostra

Especifique a taxa de amostragem do áudio no campo sample_rate_hertz da solicitação de configuração. Ela precisa corresponder à taxa de amostragem do conteúdo ou stream de áudio associado. Taxas de amostragem entre 8.000 Hz e 48.000 Hz são compatíveis com o Media Translation.

Se for possível, ao codificar o material de origem, faça a captura de áudio usando uma taxa de amostragem de 16.000 Hz. Valores menores que isso podem prejudicar a precisão do reconhecimento de fala. Como consequência, a qualidade da tradução será reduzida. Além disso, uma taxa de amostragem superior não melhora a qualidade do reconhecimento de fala e pode aumentar a latência.

No entanto, se os dados de áudio já foram gravados a uma taxa de amostra existente que não seja 16.000 Hz, não recrie seu áudio para 16.000 Hz. A maior parte do áudio de telefonia legado, por exemplo, usa taxas de amostra de 8.000 Hz, que pode oferecer resultados menos precisos. Se você precisar usar um áudio assim, forneça-o à API Media Translation com a taxa de amostragem nativa.

Linguagens

O mecanismo de reconhecimento/tradução do Media Translation é compatível com vários pares de idiomas/dialetos. Especifique o idioma (e o dialeto nacional ou regional) do áudio nos campos source_language_code e target_language_code da configuração da solicitação, usando um identificador BCP-47.

Veja uma lista completa de idiomas compatíveis para cada recurso na página Suporte a idiomas.

Como selecionar modelos

O Media Translation pode usar um dos vários modelos de machine learning para traduzir seu arquivo de áudio. O Google treinou esses modelos para fontes e tipos específicos de áudio.

Ao enviar uma solicitação de tradução de áudio para o Media Translation, você pode melhorar os resultados recebidos especificando o modelo. Isso permite que a API Media Translation processe seus arquivos de áudio usando um modelo de machine learning treinado para reconhecer o áudio de fala desse tipo específico de fonte.

Para especificar um modelo para tradução de fala, inclua o campo model no objeto TranslateSpeechConfig da solicitação, especificando o modelo que você quer usar.

O Media Translation pode usar os seguintes tipos de modelos de machine learning para traduzir seus arquivos de áudio.

Tipo Nome da string Descrição
Vídeo google-provided-model/video

Use este modelo para transcrever áudio em clipes de vídeo ou que inclua vários interlocutores. Para conseguir melhores resultados, forneça áudio gravado a uma taxa de amostragem de 16.000 Hz ou mais.

Observação: este é um modelo especial que custa mais do que a taxa padrão.

Chamada telefônica google-provided-model/(enhanced-)phone-call

Use este modelo para transcrever áudio de uma chamada telefônica. Normalmente, o áudio do smartphone é gravado a uma taxa de amostragem de 8.000 Hz.

Observação: este é um modelo premium que custa mais do que a taxa padrão.

Conversão de mídia: padrão google-provided-model/default

Use este modelo se o áudio não se encaixar em um dos modelos descritos anteriormente. Por exemplo, você pode usá-lo para gravações de áudio de formato longo que apresentam apenas um único interlocutor. O ideal é que o áudio seja de alta fidelidade, gravado a uma taxa de amostragem de 16.000 Hz ou mais.

Como incorporar conteúdo de áudio

O áudio incorporado é incluído na solicitação de tradução de fala em streaming ao transmitir um campo audio_content na solicitação de streaming. O áudio incorporado apresentado como conteúdo dentro de uma solicitação gRPC precisa ser compatível com a serialização Proto3 e fornecido como dados binários.

Ao criar uma solicitação usando uma biblioteca de cliente do Google Cloud, esses dados binários costumam ser gravados diretamente no campo audio_content.

Para ver exemplos de código, consulte Como traduzir streaming de áudio.