Objetivos
Transmita texto reconhecido pela Cloud Vision API para a Cloud Translation API.
Crie e use glossários do Cloud Translation para personalizar as traduções da Cloud Translation API.
Crie uma representação de áudio do texto traduzido através da API Text-to-Speech.
Custos
Cada Google Cloud API usa uma estrutura de preços separada.Para ver detalhes sobre os preços, consulte o guia de preços do Cloud Vision, o guia de preços do Cloud Translation e o guia de preços do Text-to-Speech.
Antes de começar
Certifique-se de que tem:- Um projeto na Google Cloud consola com a API Vision, a API Cloud Translation e a API Text-to-Speech ativadas
- Uma familiaridade básica com a programação em Python
Transferir os exemplos de código
Este tutorial usa código no diretório samples/snippets/hybrid_glossaries
das
bibliotecas cliente do Google Cloud para Python.
Para transferir e navegar para o código deste tutorial, execute os seguintes comandos a partir do terminal.
git clone https://github.com/googleapis/python-translate.git cd samples/snippets/hybrid_glossaries/
Configurar bibliotecas de cliente
Este tutorial usa as bibliotecas de cliente Vision, Translation, e Text-to-Speech.
Para instalar as bibliotecas de cliente relevantes, execute os seguintes comandos a partir do terminal.
pip install --upgrade google-cloud-vision pip install --upgrade google-cloud-translate pip install --upgrade google-cloud-texttospeech
Configurar autorizações para a criação de glossários
A criação de glossários de tradução requer a utilização de uma chave de conta de serviço com autorizações de "Editor da Cloud Translation API".
Para configurar uma chave de conta de serviço com autorizações de editor da Cloud Translation API, faça o seguinte:
Crie uma conta de serviço:
Na Google Cloud consola, aceda à página Contas de serviço.
Selecione o seu projeto.
Clique em
Criar conta de serviço.No campo Nome da conta de serviço, introduza um nome. A Google Cloud consola preenche o campo ID da conta de serviço com base neste nome.
Opcional: no campo Descrição da conta de serviço, introduza uma descrição para a conta de serviço.
Clique em Criar e continuar.
Clique no campo Selecionar uma função e selecione Cloud Translation > Editor da API Cloud Translation
Clique em Concluído para terminar de criar a conta de serviço.
Não feche a janela do navegador. Vai usá-lo no passo seguinte.
Transfira uma chave JSON para a conta de serviço que acabou de criar:
- Na Google Cloud consola, clique no endereço de email da conta de serviço que criou.
- Clique em Chaves.
- Clique em Adicionar chave e, de seguida, em Criar nova chave.
Clique em Criar. É transferido um ficheiro de chave JSON para o seu computador.
Certifique-se de que armazena o ficheiro de chave em segurança, uma vez que pode ser usado para autenticar como a sua conta de serviço. Pode mover e mudar o nome deste ficheiro como quiser.
Clique em Fechar.
Na pasta
hybrid_glossaries
no terminal, defina a variávelGOOGLE_APPLICATION_CREDENTIALS
com o seguinte comando. Substituapath_to_key
pelo caminho para o ficheiro JSON transferido que contém a chave da nova conta de serviço.Linux ou macOS
export GOOGLE_APPLICATION_CREDENTIALS=path_to_key
Windows
set GOOGLE_APPLICATION_CREDENTIALS=path_to_key
Importar bibliotecas
Este tutorial usa as seguintes importações do sistema e importações da biblioteca cliente.
Definir o ID do projeto
Tem de associar um Google Cloud projeto a cada pedido a uma Google Cloud API. Designe o seu Google Cloud projeto
definindo a variável de ambiente GOOGLE_CLOUD_PROJECT
a partir do
terminal.
No comando seguinte, substitua PROJECT_NUMBER_OR_ID pelo número ou ID do seu Google Cloud projeto. Execute o seguinte comando a partir do terminal.
Linux ou macOS
export GOOGLE_CLOUD_PROJECT=PROJECT_NUMBER_OR_ID
Windows
set GOOGLE_CLOUD_PROJECT=PROJECT_NUMBER_OR_ID
Este tutorial usa a seguinte variável de ID do projeto global.
Usar a API Vision para detetar texto a partir de uma imagem
Use a API Vision para detetar e extrair texto de uma imagem.
A API Vision usa o reconhecimento ótico de carateres (OCR)
para suportar duas funcionalidades de deteção de texto:
deteção de texto denso ou DOCUMENT_TEXT_DETECTION
,
e deteção de texto esparso ou
TEXT_DETECTION
.
O código seguinte mostra como usar a funcionalidade
DOCUMENT_TEXT_DETECTION
da API Vision para detetar
texto numa foto com texto denso.
Usar a tradução com glossários
Depois de extrair texto de uma imagem, use glossários de tradução para personalizar a tradução do texto extraído. Os glossários oferecem traduções predefinidas que substituem as traduções da Cloud Translation API de termos designados.
Os exemplos de utilização do glossário incluem:
Nomes dos produtos: por exemplo, "Google Home" tem de ser traduzido como "Google Home".
Palavras ambíguas: por exemplo, a palavra "morcego" pode significar um animal ou um objeto usado para praticar desporto. Se souber que está a traduzir palavras sobre desporto, pode querer usar um glossário para fornecer à API Cloud Translation a tradução desportiva de "bat" e não a tradução do animal.
Palavras emprestadas: por exemplo, "bouillabaisse" em francês traduz-se para "bouillabaisse" em inglês; a língua inglesa emprestou a palavra "bouillabaisse" à língua francesa. Um falante de inglês sem contexto cultural francês pode não saber que a bouillabaisse é um prato francês de guisado de peixe. Os glossários podem substituir uma tradução para que "bouillabaisse" em francês seja traduzido como "caldeirada de peixe" em inglês.
Criar um ficheiro de glossário
A API Cloud Translation aceita ficheiros de glossário TSV, CSV ou TMX. Este tutorial usa um ficheiro CSV carregado para o Cloud Storage para definir conjuntos de termos equivalentes.
Para criar um ficheiro CSV de glossário:
Designe o idioma de uma coluna através dos códigos de idioma ISO-639 ou BCP-47 na primeira linha do ficheiro CSV.
fr,en,
Liste pares de termos equivalentes em cada linha do ficheiro CSV. Separe os termos com vírgulas. O exemplo seguinte define a tradução para inglês de várias palavras francesas relacionadas com culinária.
fr,en, chèvre,goat cheese, crème brulée,crème brulée, bouillabaisse,fish stew, steak frites,steak with french fries,
Definir variantes de uma palavra. A API Cloud Translation é sensível a maiúsculas e minúsculas e a carateres especiais, como palavras com acentos. Certifique-se de que o glossário processa as variações de uma palavra definindo explicitamente as diferentes grafias da palavra.
fr,en, chevre,goat cheese, Chevre,Goat cheese, chèvre,goat cheese, Chèvre,Goat cheese, crème brulée,crème brulée, Crème brulée,Crème brulée, Crème Brulée,Crème Brulée, bouillabaisse,fish stew, Bouillabaisse,Fish stew, steak frites,steak with french fries, Steak frites,Steak with french fries, Steak Frites,Steak with French Fries,
Carregue o glossário para um contentor do Cloud Storage. Para os fins deste tutorial, não tem de carregar um ficheiro de glossário para um contentor do Cloud Storage nem criar um contentor do Cloud Storage. Em alternativa, use o ficheiro de glossário disponível publicamente criado para este tutorial para evitar incorrer em custos do Cloud Storage. Envie o URI de um ficheiro de glossário no Cloud Storage para a Cloud Translation API para criar um recurso de glossário. O URI do ficheiro de glossário disponível publicamente para este tutorial é gs://cloud-samples-data/translation/bistro_glossary.csv. Para transferir o glossário, clique no link URI acima, mas não o abra num novo separador.
Criar um recurso de glossário
Para usar um glossário, tem de criar um recurso de glossário com a Cloud Translation API. Para criar um recurso de glossário, envie o URI de um ficheiro de glossário no Cloud Storage para a Cloud Translation API.
Certifique-se de que está a usar uma chave de conta de serviço com autorizações de "Editor da API Cloud Translation" e certifique-se de que definiu o ID do projeto a partir do terminal.
A função seguinte cria um recurso de glossário. Com este recurso de glossário, pode personalizar o pedido de tradução no passo seguinte deste tutorial.
Tradução com glossários
Depois de criar um recurso de glossário, pode usá-lo para personalizar as traduções de texto que envia para a API Cloud Translation.
A função seguinte usa o recurso de glossário criado anteriormente para personalizar a tradução de texto.
Usar a conversão de texto em voz com a linguagem de marcação de síntese de voz
Agora que personalizou uma tradução de texto detetado em imagens, tem tudo pronto para usar a API Text-to-Speech. A API Text-to-Speech pode criar áudio sintético do seu texto traduzido.
A API Text-to-Speech gera áudio sintético a partir de uma string de texto simples ou uma string de texto marcado com Speech Synthesis Markup Language (SSML). O SSML é uma linguagem de marcação que suporta a anotação de texto com etiquetas SSML. Pode usar etiquetas SSML para influenciar a forma como a API Text-to-Speech formata a criação de voz sintética.
A seguinte função converte uma string de SSML num ficheiro MP3 de voz sintética.
A reunir tudo
Nos passos anteriores, definiu funções em hybrid_glossaries.py
que usam o Vision, o Translation e o Text-to-Speech. Agora, está pronto para usar estas funções para gerar voz sintética do texto traduzido da seguinte foto.
O código seguinte chama funções definidas em hybrid_glossaries.py
para:
criar um recurso de glossário da Cloud Translation API
usar a API Vision para detetar texto na imagem acima
realizar uma tradução de glossário da API Cloud Translation do texto detetado
gerar voz sintética de conversão de texto em voz do texto traduzido
Executar o código
Para executar o código, introduza o seguinte comando no terminal no diretório hybrid_glossaries clonado:
python hybrid_tutorial.py
É apresentado o seguinte resultado:
Created glossary bistro-glossary. Audio content written to file resources/example.mp3
Depois de executar hybrid_glossaries.py
, navegue para o diretório resources a partir do diretório hybrid_glossaries.
Verifique se existe um ficheiro example.mp3
no diretório de recursos.
Ouça o seguinte clipe de áudio para verificar se o seu ficheiro example.mp3
tem o mesmo som.
Resolução de problemas de mensagens de erro
403 IAM permission 'cloudtranslate.glossaries.create' denied.
A utilização de uma chave de conta de serviço sem autorizações de "Editor da API Cloud Translation" gera esta exceção.
KeyError: 'GOOGLE_CLOUD_PROJECT'
A não definição da variável GOOGLE_CLOUD_PROJECT gera este erro.
400 Invalid resource name project id
A utilização de um nome de glossário que contenha carateres que não sejam letras minúsculas, dígitos, pontos finais, dois pontos ou hífenes, ou a utilização de uma chave de conta de serviço sem autorizações de "Editor da API Cloud Translation" gera esta exceção.
File filename was not found.
Definir a variável GOOGLE_APPLICATION_CREDENTIALS para um caminho de ficheiro inválido gera esta exceção.
Could not automatically determine credentials. Please set GOOGLE_APPLICATION_CREDENTIALS or explicitly create credentials and re-run the application
Não definir a variável GOOGLE_APPLICATION_CREDENTIALS gera esta exceção.
Forbidden: 403 POST API has not been used or is disabled
A chamada da API Cloud Translation, da API Cloud Vision ou da API Text-to-Speech sem ativar as respetivas APIs gera este aviso.
AttributeError: 'module' object has no attribute 'escape'
O Python 2.7.10 ou anterior não é compatível com o
HTML
. Para corrigir este erro, use um ambiente virtual do Python. O ambiente virtual vai usar a versão mais recente do Python.UnicodeEncodeError
O Python 2.7.10 ou anterior não é compatível com o
HTML
. Para corrigir este erro, use um ambiente virtual do Python. O ambiente virtual vai usar a versão mais recente do Python.
Limpar
Use a Google Cloud consola para eliminar o seu projeto se não precisar dele. A eliminação do projeto impede a incorrência de encargos adicionais na sua conta do Cloud Billing pelos recursos usados neste tutorial.
Eliminar o projeto
- Na Google Cloud consola, aceda à página Projetos.
- Na lista de projetos, selecione o projeto que quer eliminar e clique em Eliminar.
- Na caixa de diálogo, escreva o ID do projeto e clique em Encerrar para eliminar o projeto.
O que se segue?
Parabéns! Acabou de usar o OCR da API Vision para detetar texto numa imagem. Em seguida, criou um glossário de tradução e fez uma tradução com esse glossário. Posteriormente, usou a tecnologia de conversão de texto em voz para gerar áudio sintético do texto traduzido.
Para desenvolver os seus conhecimentos sobre o Vision, o Cloud Translation e o Text-to-Speech:
- Crie o seu próprio glossário. Saiba como criar um contentor do Cloud Storage e carregar o ficheiro CSV do glossário para o contentor.
- Experimente outras formas de usar os glossários de tradução.
- Saiba como usar o Cloud Storage com o OCR do Cloud Vision.
- Saiba como usar SSML com a funcionalidade de conversão de texto em voz.
- Saiba como usar o campo
imageContext
da API Vision para transmitir contexto adicional sobre uma foto quando usar o OCR da Vision. - Explore tutoriais da comunidade.