1. Visão geral
A API Cloud Text-to-Speech do Google Cloud permite que os desenvolvedores incluam fala humana sintética, de sonoridade natural, como áudio que pode ser tocado em aplicativos. A API Text-to-Speech converte a entrada de texto ou Linguagem de marcação de síntese de fala (SSML) em dados de áudio como MP3 ou LINEAR16 (a codificação usada em arquivos WAV).
Neste codelab, você vai se concentrar no uso da API Text-to-Speech com Node.js. Você vai aprender a listar as vozes disponíveis e sintetizar áudio a partir de texto.
O que você vai aprender
- Como usar o Cloud Shell
- Como ativar a API Text-to-Speech
- Como autenticar solicitações de API
- Como instalar a biblioteca de cliente do Google Cloud para Node.js
- Como listar as vozes disponíveis
- Como sintetizar áudio a partir de texto
O que é necessário
- Um projeto do Google Cloud Platform
- Um navegador, como o Chrome ou o Firefox
- Familiaridade com o uso do Node.js
Pesquisa
Como você vai usar este tutorial?
Como você classificaria sua experiência com o Node.js?
Como você classificaria sua experiência com o uso dos serviços do Google Cloud Platform?
2. Configuração e requisitos
Configuração de ambiente autoguiada
- Faça login no Console do Cloud e crie um novo projeto ou reutilize um existente. Crie uma se você ainda não tiver uma conta do Gmail ou do G Suite.
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, será necessário ativar o faturamento no Console do Cloud para usar os recursos do Google Cloud.
A execução deste codelab não será muito cara, se for o caso. Siga todas as instruções na seção "Limpeza", que orienta você sobre como encerrar recursos para não incorrer em cobranças além deste tutorial. Novos usuários do Google Cloud estão qualificados para o programa de US$ 300 de avaliação sem custos.
Inicie o Cloud Shell
Embora o Google Cloud e o Spanner possam ser operados remotamente do seu laptop, neste codelab usaremos o Google Cloud Shell, um ambiente de linha de comando executado no Cloud.
Ativar o Cloud Shell
- No Console do Cloud, clique em Ativar o Cloud Shell
.
Se você nunca tiver iniciado o Cloud Shell, verá uma tela intermediária (abaixo da dobra) com a descrição do que ele é. Se esse for o caso, clique em Continuar e você não o verá novamente. Esta é uma tela única:
Leva apenas alguns instantes para provisionar e se conectar ao Cloud Shell.
Essa máquina virtual contém todas as ferramentas de desenvolvimento necessárias. Ela oferece um diretório principal persistente de 5 GB, além de ser executada no Google Cloud. Isso aprimora o desempenho e a autenticação da rede. Praticamente todo o seu trabalho neste codelab pode ser feito em um navegador ou no seu Chromebook.
Depois de se conectar ao Cloud Shell, você já estará autenticado e o projeto já estará configurado com seu ID do projeto.
- Execute o seguinte comando no Cloud Shell para confirmar que você está autenticado:
gcloud auth list
Resposta ao comando
Credentialed Accounts
ACTIVE ACCOUNT
* <my_account>@<my_domain.com>
To set the active account, run:
$ gcloud config set account `ACCOUNT`
gcloud config list project
Resposta ao comando
[core] project = <PROJECT_ID>
Se o projeto não estiver configurado, configure-o usando este comando:
gcloud config set project <PROJECT_ID>
Resposta ao comando
Updated property [core/project].
3. Ativar a API Text-to-Speech
Antes de começar a usar a API Text-to-Speech, você precisa ativá-la. Para ativar a API, use o seguinte comando no Cloud Shell:
gcloud services enable texttospeech.googleapis.com
4. Autenticar as solicitações de API
Para fazer solicitações à API Text-to-Speech, você precisa usar uma conta de serviço. Uma conta de serviço pertence ao seu projeto. Ela é usada pela biblioteca Node.js do cliente do Google para fazer solicitações da API Text-to-Speech. Como qualquer outra conta de usuário, uma conta de serviço é representada por um endereço de e-mail. Nesta seção, você vai usar o SDK Cloud para criar uma conta de serviço e, em seguida, criar as credenciais necessárias para realizar a autenticação.
Primeiro, defina uma variável de ambiente com o GOOGLE_CLOUD_PROJECT que você usará em todo este codelab:
export GOOGLE_CLOUD_PROJECT=$(gcloud config get-value core/project)
Em seguida, crie uma conta de serviço para acessar a API Text-to-Speech usando:
gcloud iam service-accounts create my-text-to-speech-sa \
--display-name "my text-to-speech codelab service account"
Em seguida, crie credenciais que o código Node.js vai usar para fazer login como a nova conta de serviço. Crie e salve essas credenciais como um arquivo JSON "~/key.json" usando o seguinte comando:
gcloud iam service-accounts keys create ~/key.json \
--iam-account my-text-to-speech-sa@${GOOGLE_CLOUD_PROJECT}.iam.gserviceaccount.com
Por fim, defina a variável de ambiente GOOGLE_APPLICATION_CREDENTIALS, que é usada pela biblioteca Node.js da API Text-to-Speech, abordada na próxima etapa, para encontrar suas credenciais. A variável de ambiente deve ser definida para o caminho completo do arquivo JSON de credenciais que você criou. Para isso, use:
export GOOGLE_APPLICATION_CREDENTIALS="/home/${USER}/key.json"
5. Instalar a biblioteca de cliente da API Cloud Text-to-Speech do Google Cloud para Node.js
Primeiro, crie um projeto que será usado para executar este laboratório da API Text-to-Speech e inicialize um novo pacote Node.js em uma pasta de sua escolha:
npm init
O NPM faz várias perguntas sobre a configuração do projeto, como nome e versão. Para cada pergunta, pressione ENTER para aceitar os valores padrão. O ponto de entrada padrão é um arquivo chamado index.js.
Em seguida, instale a biblioteca do Google Cloud Speech no projeto:
npm install --save @google-cloud/text-to-speech
Para mais instruções sobre como configurar um desenvolvimento do Node.js para o Google Cloud, consulte o guia de configuração.
Agora você já pode usar a API Text-to-Speech.
6. Listar vozes disponíveis
Nesta seção, você vai listar todas as vozes disponíveis em inglês para síntese de áudio.
Navegue até o arquivo index.js dentro de e substitua o código pelo seguinte:
'use strict';
/**
* Lists available voices for the specified language.
*
* @param {string} languageCode - The language code.
*/
async function listVoices(languageCode) {
const textToSpeech = require('@google-cloud/text-to-speech');
const client = new textToSpeech.TextToSpeechClient();
const [result] = await client.listVoices({languageCode});
const voices = result.voices;
voices.forEach((voice) => {
console.log(`${voice.name} (${voice.ssmlGender}): ${voice.languageCodes}`);
});
}
listVoices('en');
Reserve um ou dois minutos para estudar o código. Execute o app:
node .
Você verá esta resposta:
en-US-Standard-A (MALE): en-US
en-US-Standard-B (MALE): en-US
en-US-Standard-C (FEMALE): en-US
en-US-Standard-D (MALE): en-US
en-US-Standard-E (FEMALE): en-US
en-US-Standard-F (FEMALE): en-US
...
7. Sintetizar áudio de texto
Você pode usar a API Text-to-Speech para converter uma string em dados de áudio. É possível configurar a saída da síntese de fala de várias maneiras, incluindo selecionar uma voz exclusiva ou modular o tom, o volume, a taxa de fala e a taxa de amostragem da saída.
Navegue até o arquivo index.js dentro de e adicione o seguinte código:
/**
* Sythesizes sample text into an .mp3 file.
*/
async function synthesize() {
const textToSpeech = require('@google-cloud/text-to-speech');
const fs = require('fs');
const util = require('util');
const client = new textToSpeech.TextToSpeechClient();
const text = 'This is a demonstration of the Google Cloud Text-to-Speech API';
const request = {
input: {text: text},
voice: {languageCode: 'en-US', ssmlGender: 'NEUTRAL'},
audioConfig: {audioEncoding: 'MP3'},
};
const [response] = await client.synthesizeSpeech(request);
// Write the binary audio content to a local file
const writeFile = util.promisify(fs.writeFile);
await writeFile('output.mp3', response.audioContent, 'binary');
console.log('Audio content written to file: output.mp3');
}
synthesize();
Reserve um ou dois minutos para estudar o código e ver como ele é usado para criar um arquivo de áudio com base em texto.
node .
Você verá esta resposta:
Audio content written to file "output.mp3"
8. Parabéns!
Você aprendeu a usar a API Text-to-Speech com Node.js para realizar diferentes tipos de transcrição em arquivos de áudio.
Limpar
Para evitar a cobrança na sua conta do Google Cloud Platform pelo uso de recursos neste guia de início rápido, siga estas etapas:
- Acesse o Console do Cloud Platform.
- Selecione o projeto que você quer encerrar e clique em "Excluir" na parte de cima. Isso programa a exclusão do projeto.
Saiba mais
- API Cloud Text-to-Speech do Google: https://cloud.google.com/text-to-speech/docs
- Node.js no Google Cloud Platform: https://cloud.google.com/nodejs/
- Cliente Node.js do Google Cloud: https://googlecloudplatform.github.io/google-cloud-node/
Licença
Este conteúdo está sob a licença Atribuição 2.0 Genérica da Creative Commons.