1. Panoramica
L'API Google Cloud Text-to-Speech consente agli sviluppatori di includere sintesi vocale dal suono naturale come audio riproducibile nelle loro applicazioni. L'API Text-to-Speech converte il testo o l'input Speech Synthesis Markup Language (SSML) in dati audio in formato MP3 o LINEAR16 (la codifica utilizzata nei file WAV).
In questo codelab, ti concentrerai sull'utilizzo dell'API Text-to-Speech con Node.js. Scoprirai come elencare le voci disponibili e sintetizzare l'audio dal testo.
Cosa imparerai a fare
- Come utilizzare Cloud Shell
- Come abilitare l'API Text-to-Speech
- Come autenticare le richieste API
- Come installare la libreria client Google Cloud per Node.js
- Come elencare le voci disponibili
- Come sintetizzare l'audio dal testo
Che cosa ti serve
- Un progetto Google Cloud
- Un browser, ad esempio Chrome o Firefox
- Familiarità con l'utilizzo di Node.js
Sondaggio
Come utilizzerai questo tutorial?
Come valuteresti la tua esperienza con Node.js?
Come valuti la tua esperienza di utilizzo dei servizi Google Cloud Platform?
2. Configurazione e requisiti
Configurazione dell'ambiente autonomo
- Accedi alla console Cloud e crea un nuovo progetto o riutilizzane uno esistente. Se non hai già un account Gmail o G Suite, devi crearne uno.
Ricorda l'ID progetto, un nome univoco tra tutti i progetti Google Cloud (il nome sopra è già stato utilizzato e non funzionerà per te, mi dispiace). In questo codelab verrà chiamato PROJECT_ID.
- Successivamente, dovrai abilitare la fatturazione in Cloud Console per utilizzare le risorse Google Cloud.
L'esecuzione di questo codelab non dovrebbe costare molto, se non nulla. Assicurati di seguire le istruzioni riportate nella sezione "Pulizia", che ti consiglia come arrestare le risorse in modo da non incorrere in addebiti oltre questo tutorial. I nuovi utenti di Google Cloud possono beneficiare del programma prova senza costi di 300$.
Avvia Cloud Shell
Sebbene Google Cloud possa essere gestito da remoto dal tuo laptop, in questo codelab utilizzerai Google Cloud Shell, un ambiente a riga di comando in esecuzione nel cloud.
Attiva Cloud Shell
- Nella console Cloud, fai clic su Attiva Cloud Shell
.
Se non hai mai avviato Cloud Shell, viene visualizzata una schermata intermedia (sotto la piega) che ne descrive le funzionalità. In questo caso, fai clic su Continua e non comparirà più. Ecco come si presenta la schermata intermedia:
Bastano pochi istanti per eseguire il provisioning e connettersi a Cloud Shell.
Questa macchina virtuale è caricata con tutti gli strumenti per sviluppatori di cui avrai bisogno. Offre una home directory permanente da 5 GB e viene eseguita in Google Cloud, migliorando notevolmente le prestazioni e l'autenticazione della rete. Gran parte del lavoro per questo codelab, se non tutto, può essere svolto semplicemente con un browser o con Chromebook.
Una volta eseguita la connessione a Cloud Shell, dovresti vedere che il tuo account è già autenticato e il progetto è già impostato sul tuo ID progetto.
- Esegui questo comando in Cloud Shell per verificare che l'account sia autenticato:
gcloud auth list
Output 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
Output comando
[core] project = <PROJECT_ID>
In caso contrario, puoi impostarlo con questo comando:
gcloud config set project <PROJECT_ID>
Output comando
Updated property [core/project].
3. Abilita l'API Text-to-Speech
Prima di poter iniziare a utilizzare l'API Text-to-Speech, devi abilitarla. Puoi abilitare l'API utilizzando il seguente comando in Cloud Shell:
gcloud services enable texttospeech.googleapis.com
4. Autenticare le richieste API
Per effettuare richieste all'API Text-to-Speech, devi utilizzare un service account. Un service account appartiene al tuo progetto e viene utilizzato dalla libreria Google Client Node.js per effettuare richieste all'API Text-to-Speech. Come qualsiasi altro account utente, un service account è rappresentato da un indirizzo email. In questa sezione utilizzerai Cloud SDK per creare un service account e poi creare le credenziali necessarie per l'autenticazione come service account.
Innanzitutto, imposta una variabile di ambiente con il tuo GOOGLE_CLOUD_PROJECT che utilizzerai durante questo codelab:
export GOOGLE_CLOUD_PROJECT=$(gcloud config get-value core/project)
Successivamente, crea un nuovo service account per accedere all'API Text-to-Speech utilizzando:
gcloud iam service-accounts create my-text-to-speech-sa \
--display-name "my text-to-speech codelab service account"
Successivamente, crea le credenziali che il codice Node.js utilizzerà per accedere al nuovo service account. Utilizza il seguente comando per creare le credenziali e salvarle in un file JSON denominato "~/key.json":
gcloud iam service-accounts keys create ~/key.json \
--iam-account my-text-to-speech-sa@${GOOGLE_CLOUD_PROJECT}.iam.gserviceaccount.com
Infine, imposta la variabile di ambiente GOOGLE_APPLICATION_CREDENTIALS, utilizzata dalla libreria Node.js dell'API Text-to-Speech, trattata nel passaggio successivo, per trovare le tue credenziali. Il valore della variabile di ambiente deve essere il percorso completo del file JSON delle credenziali che hai creato, utilizzando:
export GOOGLE_APPLICATION_CREDENTIALS="/home/${USER}/key.json"
5. Installa la libreria client dell'API Google Cloud Text-to-Speech per Node.js
Innanzitutto, crea un progetto che utilizzerai per eseguire questo lab sull'API Text-to-Speech, inizializza un nuovo pacchetto Node.js in una cartella a tua scelta:
npm init
NPM pone diverse domande sulla configurazione del progetto, ad esempio nome e versione. Per ogni domanda, premi ENTER per accettare i valori predefiniti. L'entry point predefinito è un file denominato index.js.
Poi, installa la libreria Google Cloud Speech nel progetto:
npm install --save @google-cloud/text-to-speech
Per ulteriori istruzioni su come configurare uno sviluppo Node.js per Google Cloud, consulta la guida alla configurazione.
Ora puoi utilizzare l'API Text-to-Speech.
6. Elenco voci disponibili
In questa sezione, elencherai innanzitutto tutte le voci disponibili in inglese per la sintesi audio.
Vai al file index.js all'interno e sostituisci il codice con il seguente:
'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');
Prenditi un minuto o due per studiare il codice. Eseguire l'applicazione:
node .
Dovresti vedere l'output seguente:
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. Sintetizza audio dal testo
Puoi utilizzare l'API Text-to-Speech per convertire una stringa in dati audio. Puoi configurare l'output della sintesi vocale in vari modi, ad esempio selezionando una voce unica o modulando l'output in base a tono, volume, velocità del parlato e frequenza di campionamento.
Vai al file index.js all'interno di e aggiungi il seguente codice:
/**
* 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();
Dedicati un minuto o due a studiare il codice e a capire come viene utilizzato per creare un file audio dal testo.
node .
Dovresti vedere l'output seguente:
Audio content written to file "output.mp3"
8. Complimenti!
Hai imparato a utilizzare l'API Text-to-Speech utilizzando Node.js per eseguire diversi tipi di trascrizione su file audio.
Esegui la pulizia
Per evitare che al tuo account Google Cloud Platform vengano addebitate le risorse utilizzate in questa guida rapida, procedi come segue.
- Vai alla console Cloud Platform.
- Seleziona il progetto che vuoi chiudere, quindi fai clic su "Elimina" in alto: il progetto verrà pianificato per l'eliminazione.
Scopri di più
- API Google Cloud Text-to-Speech: https://cloud.google.com/text-to-speech/docs
- Node.js su Google Cloud Platform: https://cloud.google.com/nodejs/
- Client Node.js di Google Cloud: https://googlecloudplatform.github.io/google-cloud-node/
Licenza
Questo lavoro è concesso in licenza ai sensi di una licenza Creative Commons Attribution 2.0 Generic.