1. Visão geral
Com a API Google Cloud Text-to-Speech, os desenvolvedores podem incluir fala humana sintética e natural como áudio que pode ser tocado nos aplicativos. A API Text-to-Speech converte texto ou entrada de linguagem de marcação de síntese de fala (SSML, na sigla em inglês) 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 o Node.js. Você vai aprender a listar as vozes disponíveis e a sintetizar áudio de um 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 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 avaliação gratuita de US$ 300.
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. É possível ativar a API usando 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 e é usada pela biblioteca cliente Node.js 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 autenticar como a conta de serviç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 nova 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 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 Google Cloud Text-to-Speech para Node.js
Primeiro, crie um projeto que você vai usar 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 em 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 sintetização de áudio.
Navegue até o arquivo index.js
dentro do 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 alguns 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. Você pode configurar a saída da síntese de fala de várias maneiras, incluindo selecionando uma voz exclusiva ou modulando o tom, o volume, a velocidade de fala e a taxa de amostragem da saída.
Navegue até o arquivo index.js
dentro do e anexe 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 alguns minutos para estudar o código e conferir como ele é usado para criar um arquivo de áudio com base em textos.
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 superior: isso programa a exclusão do projeto.
Saiba mais
- API Google Cloud Text-to-Speech: 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.