Creare contenuti audio nel formato lungo
Questo documento illustra la procedura di sintesi di contenuti audio nel formato lungo. La sintesi audio lunga sintetizza in modo asincrono fino a 1 milione di byte di input. Per saperne di più sui concetti fondamentali di Text-to-Speech, consulta Nozioni di base sulla sintesi vocale.
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.
- Attivare Text-to-Speech in un progetto Google Cloud.
- Assicurati che la fatturazione sia attivata per Text-to-Speech.
- Assicurati di disporre dei seguenti ruoli IAM (Identity and Access Management) nel bucket GCS di output.
- Creatore oggetti Storage
- Storage Object Viewer
-
After installing the Google Cloud CLI, configure the gcloud CLI to use your federated identity and then initialize it by running the following command:
gcloud init
Sintetizza audio lungo dal testo tramite la riga di comando
Puoi convertire il testo nel formato lungo in audio inviando una richiesta POST HTTP all'endpointhttps://texttospeech.googleapis.com/v1beta1/projects/{$project_number}/locations/global:synthesizeLongAudio
.
Nel corpo del comando POST, specifica i seguenti campi.
• voice
: il tipo di voce da sintetizzare.
• input.text
: il testo da sintetizzare.
• audioConfig
: il tipo di audio da creare.
• output_gcs_uri
: il percorso del file di output GCS sotto forma di "gs://nome_bucket/nome_file.wav".
• parent
: il progetto principale nel formato "projects/{YOUR PROJECT NUMBER}/locations/{YOUR PROJECT LOCATION}".
L'input può contenere fino a 1 MB di caratteri, il limite esatto può variare in base agli input.
Crea un bucket Google Cloud Storage nel progetto utilizzato per eseguire la sintesi. Assicurati che l'account di servizio utilizzato per eseguire la sintesi abbia accesso in lettura/scrittura al bucket GCS di output.
Esegui la richiesta REST riportata di seguito nella 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.Assicurati che l'account di servizio che esegue l'operazione GET abbia il ruolo Editor di Text-to-Speech.
Metodo HTTP e URL:
POST https://texttospeech.googleapis.com/v1beta1/projects/12345/locations/global:synthesizeLongAudio
Corpo JSON della richiesta:
{ "parent": "projects/12345/locations/global", "audio_config":{ "audio_encoding":"LINEAR16" }, "input":{ "text":"hello" }, "voice":{ "language_code":"en-us", "name":"en-us-Standard-A" }, "output_gcs_uri": "gs://bucket_name/file_name.wav" }
Per inviare la richiesta, espandi una di queste opzioni:
curl (Linux, macOS o Cloud Shell)
Salva il corpo della richiesta in un file denominato
request.json
, quindi esegui il comando seguente:curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://texttospeech.googleapis.com/v1beta1/projects/12345/locations/global:synthesizeLongAudio"PowerShell (Windows)
Salva il corpo della richiesta in un file denominato
request.json
, quindi esegui il comando seguente:$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://texttospeech.googleapis.com/v1beta1/projects/12345/locations/global:synthesizeLongAudio" | Select-Object -Expand ContentDovresti ricevere una risposta JSON simile alla seguente:
{ "name": "23456", "metadata": { "@type": "type.googleapis.com/google.cloud.texttospeech.v1beta1.SynthesizeLongAudioMetadata", "progressPercentage": 0, "startTime": "2022-12-20T00:46:56.296191037Z", "lastUpdateTime": "2022-12-20T00:46:56.296191037Z" }, "done": false }
L'output JSON per il comando REST contiene il nome lungo dell'operazione nel
name
campo. Esegui la richiesta REST riportata di seguito nella riga di comando per eseguire query sullo stato dell'operazione a lungo termine.Assicurati che il account di servizio che esegue l'operazione GET provenga dallo stesso progetto utilizzato per la sintesi.
Metodo HTTP e URL:
GET https://texttospeech.googleapis.com/v1beta1/projects/12345/locations/global/operations/23456
Per inviare la richiesta, espandi una di queste opzioni:
curl (Linux, macOS o Cloud Shell)
Esegui questo comando:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://texttospeech.googleapis.com/v1beta1/projects/12345/locations/global/operations/23456"PowerShell (Windows)
Esegui questo comando:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://texttospeech.googleapis.com/v1beta1/projects/12345/locations/global/operations/23456" | Select-Object -Expand ContentDovresti ricevere una risposta JSON simile alla seguente:
{ "name": "projects/12345/locations/global/operations/23456", "metadata": { "@type": "type.googleapis.com/google.cloud.texttospeech.v1beta1.SynthesizeLongAudioMetadata", "progressPercentage": 100 }, "done": true }
Esegui una query sull'elenco di tutte le operazioni in esecuzione in un determinato progetto ed esegui la richiesta REST riportata di seguito.
Assicurati che il service account che esegue l'operazione LIST provenga dallo stesso progetto utilizzato per la sintesi.
Metodo HTTP e URL:
GET https://texttospeech.googleapis.com/v1beta1/projects/12345/locations/global/operations
Per inviare la richiesta, espandi una di queste opzioni:
curl (Linux, macOS o Cloud Shell)
Esegui questo comando:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://texttospeech.googleapis.com/v1beta1/projects/12345/locations/global/operations"PowerShell (Windows)
Esegui questo comando:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://texttospeech.googleapis.com/v1beta1/projects/12345/locations/global/operations" | Select-Object -Expand ContentDovresti ricevere una risposta JSON simile alla seguente:
{ "operations": [ { "name": "12345", "done": false }, { "name": "23456", "done": false } ], "nextPageToken": "" }
Una volta completata l'operazione a lunga esecuzione, individua il file audio di output nell'URI del bucket specificato nel campo
output_gcs_uri
. Se l'operazione non è andata a buon fine, individua l'errore eseguendo una query utilizzando il comando GET REST, correggi l'errore ed esegui di nuovo l'RPC.
Sintetizzare audio lungo dal testo utilizzando le librerie client
installa la libreria client
Prima di installare la libreria, assicurati di aver preparato l'ambiente per lo sviluppo Python.
pip install --upgrade google-cloud-texttospeech
Creare dati audio
Puoi utilizzare Text-to-Speech per creare un file audio lungo di parlato umano sintetico. Utilizza il seguente codice per creare un file audio lungo nel tuo bucket GCS.
Prima di eseguire l'esempio, assicurati di aver preparato l'ambiente per lo sviluppo Python.
Esegui la pulizia
Per evitare addebiti non necessari Google Cloud Platform, utilizza la console Google Cloud 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.