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 StreamingTranslateSpeechRequest
s 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. Definirsingle_utterance
comotrue
é ú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 tipoAudioEncoding
). Se você tiver uma opção no codec, opte por uma codificação sem perdas, comoFLAC
ouLINEAR16
, 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 receberEND_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 listaresults
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.
Idiomas
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.