Creare audio dal testo utilizzando la riga di comando
Questo documento descrive la procedura per effettuare una richiesta a Text-to-Speech utilizzando la riga di comando. Per scoprire di più sui concetti fondamentali di Text-to-Speech, leggi Nozioni di base di Text-to-Speech.
Prima di iniziare
Prima di poter inviare una richiesta all'API Text-to-Speech, devi aver completato le seguenti azioni. Per informazioni dettagliate, consulta la pagina Prima di iniziare.
- Attiva Text-to-Speech in un progetto GCP.
- Assicurati che la fatturazione sia attivata per Text-to-Speech.
-
Installa Google Cloud CLI. Dopo l'installazione, inizializza Google Cloud CLI eseguendo il seguente comando:
gcloud init
Se utilizzi un provider di identità (IdP) esterno, devi prima accedere alla gcloud CLI con la tua identità federata.
Sintetizza audio dal testo
Puoi convertire il testo in audio effettuando una richiesta HTTP POST all'endpoint https://texttospeech.googleapis.com/v1/text:synthesize
. Nel corpo del comando POST, specifica il tipo di voce da sintetizzare nella sezione di configurazione voice
, specifica il testo da sintetizzare nel campo text
della sezione input
e specifica il tipo di audio da creare nella sezione audioConfig
.
Esegui la richiesta REST riportata di seguito dalla riga di comando per sintetizzare l'audio dal testo utilizzando Text-to-Speech. Il comando utilizza il comando
gcloud auth application-default print-access-token
per recuperare un token di autorizzazione per la richiesta.Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- PROJECT_ID: l'ID alfanumerico del tuo progetto Google Cloud .
Metodo HTTP e URL:
POST https://texttospeech.googleapis.com/v1/text:synthesize
Corpo JSON della richiesta:
{ "input": { "text": "Android is a mobile operating system developed by Google, based on the Linux kernel and designed primarily for touchscreen mobile devices such as smartphones and tablets." }, "voice": { "languageCode": "en-gb", "name": "en-GB-Standard-A", "ssmlGender": "FEMALE" }, "audioConfig": { "audioEncoding": "MP3" } }
Per inviare la richiesta, espandi una di queste opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
{ "audioContent": "//NExAASCCIIAAhEAGAAEMW4kAYPnwwIKw/BBTpwTvB+IAxIfghUfW.." }
L'output JSON per il comando REST contiene l'audio sintetizzato in formato con codifica Base64. Copia i contenuti del campo
audioContent
in un nuovo file denominatosynthesize-output-base64.txt
. Il nuovo file sarà simile al seguente://NExAARqoIIAAhEuWAAAGNmBGMY4EBcxvABAXBPmPIAF//yAuh9Tn5CEap3/o ... VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV
Decodifica i contenuti del file
synthesize-output-base64.txt
in un nuovo file denominatosynthesized-audio.mp3
. Per informazioni sulla decodifica Base64, vedi Decodifica del contenuto audio codificato in Base64.Linux
Copia solo i contenuti codificati in Base64 in un file di testo.
Decodifica il file di testo di origine utilizzando lo strumento a riga di comando base64 utilizzando il flag
-d
:
$ base64 SOURCE_BASE64_TEXT_FILE -d > DESTINATION_AUDIO_FILE
Mac OSX
Copia solo i contenuti codificati in Base64 in un file di testo.
Decodifica il file di testo di origine utilizzando lo strumento a riga di comando base64:
$ base64 --decode SOURCE_BASE64_TEXT_FILE > DESTINATION_AUDIO_FILE
Windows
Copia solo i contenuti codificati in Base64 in un file di testo.
Decodifica il file di testo di origine utilizzando il comando
certutil
.
certutil -decode SOURCE_BASE64_TEXT_FILE DESTINATION_AUDIO_FILE
Riproduci i contenuti di
synthesized-audio.mp3
in un'applicazione audio o su un dispositivo audio. Puoi anche apriresynthesized-audio.mp3
nel browser Chrome per riprodurre l'audio passando alla cartella che contiene il file, ad esempiofile://my_file_path/synthesized-audio.mp3
Esegui la pulizia
Per evitare addebiti Google Cloud non necessari, utilizzaGoogle Cloud console per eliminare il progetto se non ti serve.
Passaggi successivi
- Scopri di più su Cloud Text-to-Speech leggendo le nozioni di base.
- Consulta l'elenco delle voci disponibili che puoi utilizzare per la sintesi vocale.