Este tutorial demonstra como usar a linguagem de marcação de síntese de voz (SSML) para falar um ficheiro de texto de moradas. Pode marcar uma string de texto com etiquetas SSML para personalizar o áudio sintético da conversão de texto em voz.
Texto simples | Renderização de texto simples em SSML |
---|---|
123 Street Ln |
<speak>123 Street Ln</speak> |
1 Number St |
<speak>1 Number St</speak> |
1 Piazza del Fibonacci |
<speak>1 Piazza del Fibonacci</speak> |
Objetivo
Envie um pedido de voz sintética para a API Text-to-Speech através de SSML e das bibliotecas cliente da API Text-to-Speech.
Custos
Consulte a página de preços da funcionalidade de conversão de texto em voz para ver informações sobre custos.
Antes de começar
- Certifique-se de que tem um projeto de conversão de texto em voz na Google Cloud consola.
- Este tutorial permite-lhe usar Java, Node.js ou Python. Se planeia usar Java, transfira e instale o Maven. Se planeia usar o Node.js, transfira o npm.
Transfira os exemplos de código
Para transferir os exemplos de código, clone os Google Cloud exemplos do GitHub para o linguagem de programação que pretende usar.
Java
Este tutorial usa código no diretório texttospeech/cloud-client/src/main/java/com/example/texttospeech/
do
repositório de exemplos Java da Google Cloud Platform.
Para transferir e navegar para o código deste tutorial, execute os seguintes comandos
a partir do terminal.
git clone https://github.com/GoogleCloudPlatform/java-docs-samples.git cd java-docs-samples/texttospeech/cloud-client/src/main/java/com/example/texttospeech/
Node.js
Este tutorial usa código no diretório texttospeech
do
repositório de exemplos do Node.js da Google Cloud Platform.
Para transferir e navegar para o código deste tutorial, execute os
seguintes comandos
a partir do terminal.
git clone https://github.com/GoogleCloudPlatform/nodejs-docs-samples.git cd texttospeech/
Python
Este tutorial usa código no diretório texttospeech/snippets
do
repositório de exemplos de Python da Google Cloud Platform.
Para transferir e navegar para o código deste tutorial, execute os seguintes comandos
a partir do terminal.
git clone https://github.com/GoogleCloudPlatform/python-docs-samples.git cd samples/snippets
Instale a biblioteca de cliente
Este tutorial usa a biblioteca cliente de conversão de texto em voz.
Java
Este tutorial usa as seguintes dependências.
Node.js
No terminal, execute o seguinte comando.
npm install @google-cloud/text-to-speech
Python
No terminal, execute o seguinte comando.
pip install --upgrade google-cloud-texttospeech
Configure as suas credenciais da Google Cloud Platform
Provide authentication credentials to your application code by setting the
environment variable GOOGLE_APPLICATION_CREDENTIALS
. This
variable applies only to your current shell session. If you want the variable
to apply to future shell sessions, set the variable in your shell startup file,
for example in the ~/.bashrc
or ~/.profile
file.
Linux ou macOS
export GOOGLE_APPLICATION_CREDENTIALS="KEY_PATH
"
Replace KEY_PATH
with the path of the JSON file that contains your credentials.
For example:
export GOOGLE_APPLICATION_CREDENTIALS="/home/user/Downloads/service-account-file.json"
Windows
For PowerShell:
$env:GOOGLE_APPLICATION_CREDENTIALS="KEY_PATH
"
Replace KEY_PATH
with the path of the JSON file that contains your credentials.
For example:
$env:GOOGLE_APPLICATION_CREDENTIALS="C:\Users\username\Downloads\service-account-file.json"
For command prompt:
set GOOGLE_APPLICATION_CREDENTIALS=KEY_PATH
Replace KEY_PATH
with the path of the JSON file that contains your credentials.
Importe bibliotecas
Este tutorial usa as seguintes bibliotecas de sistema e de cliente.
Java
Para saber como instalar e usar a biblioteca cliente para a API Text-to-Speech, consulte o artigo Bibliotecas cliente da API Text-to-Speech. Para mais informações, consulte a documentação de referência da API JavaText-to-Speech.
Para se autenticar na API Text-to-Speech, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
Node.js
Para saber como instalar e usar a biblioteca cliente para a API Text-to-Speech, consulte o artigo Bibliotecas cliente da API Text-to-Speech. Para mais informações, consulte a documentação de referência da API Node.jsText-to-Speech.
Para se autenticar na API Text-to-Speech, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
Python
Para saber como instalar e usar a biblioteca cliente para a API Text-to-Speech, consulte o artigo Bibliotecas cliente da API Text-to-Speech. Para mais informações, consulte a documentação de referência da API PythonText-to-Speech.
Para se autenticar na API Text-to-Speech, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
Use a API Text-to-Speech
A função seguinte usa uma string de texto etiquetada com SSML e o nome de um ficheiro MP3. A função usa o texto etiquetado com SSML para gerar áudio sintético. A função guarda o áudio sintético no nome do ficheiro MP3 designado como um parâmetro.
Toda a entrada SSML só pode ser lida por uma única voz.
Pode definir a voz no objeto
VoiceSelectionParams
.
Java
Para saber como instalar e usar a biblioteca cliente para a API Text-to-Speech, consulte o artigo Bibliotecas cliente da API Text-to-Speech. Para mais informações, consulte a documentação de referência da API JavaText-to-Speech.
Para se autenticar na API Text-to-Speech, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
Node.js
Para saber como instalar e usar a biblioteca cliente para a API Text-to-Speech, consulte o artigo Bibliotecas cliente da API Text-to-Speech. Para mais informações, consulte a documentação de referência da API Node.jsText-to-Speech.
Para se autenticar na API Text-to-Speech, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
Python
Para saber como instalar e usar a biblioteca cliente para a API Text-to-Speech, consulte o artigo Bibliotecas cliente da API Text-to-Speech. Para mais informações, consulte a documentação de referência da API PythonText-to-Speech.
Para se autenticar na API Text-to-Speech, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
Personalize o áudio sintético
A função seguinte recebe o nome de um ficheiro de texto e converte o conteúdo do ficheiro numa string de texto etiquetada com SSML.
Java
Para saber como instalar e usar a biblioteca cliente para a API Text-to-Speech, consulte o artigo Bibliotecas cliente da API Text-to-Speech. Para mais informações, consulte a documentação de referência da API JavaText-to-Speech.
Para se autenticar na API Text-to-Speech, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
Node.js
Para saber como instalar e usar a biblioteca cliente para a API Text-to-Speech, consulte o artigo Bibliotecas cliente da API Text-to-Speech. Para mais informações, consulte a documentação de referência da API Node.jsText-to-Speech.
Para se autenticar na API Text-to-Speech, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
Python
Para saber como instalar e usar a biblioteca cliente para a API Text-to-Speech, consulte o artigo Bibliotecas cliente da API Text-to-Speech. Para mais informações, consulte a documentação de referência da API PythonText-to-Speech.
Para se autenticar na API Text-to-Speech, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
Combine tudo
Este programa usa a seguinte entrada.
123 Street Ln, Small Town, IL 12345 USA 1 Jenny St & Number St, Tutone City, CA 86753 1 Piazza del Fibonacci, 12358 Pisa, Italy
A transmissão do texto acima para text_to_ssml()
gera o seguinte texto etiquetado.
<speak>123 Street Ln, Small Town, IL 12345 USA <break time="2s"/>1 Jenny St & Number St, Tutone City, CA 86753 <break time="2s"/>1 Piazza del Fibonacci, 12358 Pisa, Italy <break time="2s"/></speak>
Executar o código
Para gerar um ficheiro de áudio de voz sintética, execute o seguinte código a partir da linha de comandos.
Java
Linux ou MacOS
No diretório java-docs-samples/texttospeech/cloud-client/
,
execute o seguinte comando na linha de comandos.
$ mvn clean package
Windows
No diretório java-docs-samples/texttospeech/cloud-client/
,
execute o seguinte comando na linha de comandos.
$ mvn clean package
Node.js
Linux ou MacOS
No ficheiro hybridGlossaries.js
, remova o comentário das variáveis TODO (developer)
.
No comando seguinte, substitua projectId pelo ID do seu Google Cloud projeto.
No diretório nodejs-docs-samples/texttospeech
,
execute o seguinte comando na linha de comandos.
$ node ssmlAddresses.js projectId
Windows
No ficheiro hybridGlossaries.js
, remova o comentário das variáveis TODO (developer)
.
No comando seguinte, substitua projectId pelo ID do seu Google Cloud projeto.
No diretório nodejs-docs-samples/texttospeech
,
execute o seguinte comando na linha de comandos.
$env: C:/Node.js/node.exe C: ssmlAddresses.js projectId
Python
Linux ou MacOS
No diretório python-docs-samples/texttospeech/snippets
,
execute o seguinte comando na linha de comandos.
$ python ssml_addresses.py
Windows
No diretório python-docs-samples/texttospeech/snippets
,
execute o seguinte comando na linha de comandos.
$env: C:/Python3/python.exe C: ssml_addresses.py
Verifique o resultado
Este programa gera um ficheiro de áudio example.mp3 de voz sintética.
Java
Navegue para o diretório java-docs-samples/texttospeech/cloud-client/resources/
.
Verifique se existe um ficheiro example.mp3 no diretório resources
.
Node.js
Navegue para o diretório nodejs-docs-samples/texttospeech/resources/
.
Verifique se existe um ficheiro example.mp3 no diretório resources
.
Python
Navegar para python-docs-samples/texttospeech/snippets/resources
.
Verifique se existe um ficheiro example.mp3 no diretório resources
.
Ouça o seguinte clipe de áudio para verificar se o ficheiro example.mp3 tem o mesmo som.
Resolver problemas
Se se esquecer de definir a variável de ambiente GOOGLE_APPLICATION_CREDENTIALS na linha de comandos, é gerada a seguinte mensagem de erro:
The Application Default Credentials are not available.
A transmissão de
text_to_ssml()
o nome de um ficheiro inexistente gera a mensagem de erro:IOError: [Errno 2] No such file or directory
A transmissão de
ssml_to_audio()
a um parâmetro ssml_text que contém None gera a mensagem de erro:InvalidArgument: 400 Invalid input type. Type has to be text or SSML
Certifique-se de que está a executar o código a partir do diretório correto.
O que se segue?
- Explore outras etiquetas SSML.
- Saiba como usar SSML com a tradução e o Vision
Limpar
Para evitar incorrer em custos na sua conta da Google Cloud Platform pelos recursos usados neste tutorial, use a Google Cloud consola para eliminar o seu projeto, se não precisar dele.
Elimine 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.