Crea audio de formato largo
En este documento, se explica el proceso de sintetizar audio de formato largo. La síntesis de audio larga sintetiza de forma asíncrona hasta 1 millón de bytes en la entrada. Para obtener más información sobre los conceptos básicos de Text-to-Speech, consulta Conceptos básicos de Text-to-Speech.
Antes de comenzar
Antes de enviar una solicitud a la API de Text-to-Speech, debes completar las siguientes acciones. Consulta la página antes de comenzar para obtener más detalles.
- Habilitar Text-to-Speech en un proyecto de GCP
- Asegúrate de que la facturación esté habilitada para Text-to-Speech.
- Asegúrate de tener los siguientes roles de Identity and Access Management (IAM) en el bucket de GCS de salida.
- Creador de objetos de almacenamiento
- Visualizador de objetos de Storage
-
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
Sintetiza audio a partir de texto con la línea de comandos
Para convertir texto en audio de formato largo, realiza una solicitud HTTP POST al extremo https://texttospeech.googleapis.com/v1beta1/projects/{$project_number}/locations/global:synthesizeLongAudio
.
En el cuerpo de tu comando POST, especifica los siguientes campos.
• voice
: El tipo de voz que se debe sintetizar.
• input.text
: El texto que se debe sintetizar.
• audioConfig
: El tipo de audio que se creará.
• output_gcs_uri
: La ruta de acceso del archivo de salida de GCS con la forma “gs://bucket_name/file_name.wav”.
• parent
: El elemento, con el formato “projects/{YOUR PROJECT NUMBER}/locations/{YOUR PROJECT LOCATION}”.
La entrada puede contener hasta 1 MB de caracteres; el límite exacto puede variar según la entrada.
Crea un bucket de Google Cloud Storage en el proyecto que se usa para ejecutar la síntesis. Asegúrate de que la cuenta de servicio que se usa para ejecutar la síntesis tenga acceso de lectura/escritura al bucket de salida de GCS.
Ejecuta la solicitud REST que aparece a continuación en la línea de comandos para sintetizar audio a partir de texto mediante Text-to-Speech. La operación usa el comando
gcloud auth application-default print-access-token
a fin de recuperar un token de autorización para la solicitud.Asegúrate de que la cuenta de servicio que ejecuta la operación GET tenga la función de Editor Text-to-Speech.
Método HTTP y URL:
POST https://texttospeech.googleapis.com/v1beta1/projects/12345/locations/global:synthesizeLongAudio
Cuerpo JSON de la solicitud:
{ "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" }
Para enviar tu solicitud, expande una de estas opciones:
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
{ "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 }
El resultado de JSON para el comando de REST contiene el nombre de la operación de formato largo en el campo
name
. Ejecuta la solicitud REST que aparece a continuación en la línea de comandos para consultar el estado de la operación de larga duración.Asegúrate de que la cuenta de servicio que ejecuta la operación GET sea del mismo proyecto que la que se usa para la síntesis.
Método HTTP y URL:
GET https://texttospeech.googleapis.com/v1beta1/projects/12345/locations/global/operations/23456
Para enviar tu solicitud, expande una de estas opciones:
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
{ "name": "projects/12345/locations/global/operations/23456", "metadata": { "@type": "type.googleapis.com/google.cloud.texttospeech.v1beta1.SynthesizeLongAudioMetadata", "progressPercentage": 100 }, "done": true }
Consulta la lista de todas las operaciones que se ejecutan en un proyecto determinado y ejecuta la siguiente solicitud REST.
Asegúrate de que la cuenta de servicio que ejecuta la operación LIST sea del mismo proyecto que la que se usó para la síntesis.
Método HTTP y URL:
GET https://texttospeech.googleapis.com/v1beta1/projects/12345/locations/global/operations
Para enviar tu solicitud, expande una de estas opciones:
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
{ "operations": [ { "name": "12345", "done": false }, { "name": "23456", "done": false } ], "nextPageToken": "" }
Una vez que se complete la operación de larga duración de forma correcta, busca el archivo de audio de salida en el URI del depósito determinado en el campo
output_gcs_uri
. Si la operación no se completó correctamente, busca el error mediante la consulta con el comando GET de REST, corrige el error y vuelve a emitir la RPC.
Sintetiza audio largo a partir de texto con bibliotecas cliente
Instala la biblioteca cliente
Python
Antes de instalar la biblioteca, asegúrate de haber preparado tu entorno para el desarrollo en Python.
pip install --upgrade google-cloud-texttospeech
Crea datos de audio
Puedes usar Text-to-Speech para crear un archivo de audio largo de voz humana sintética. Usa el siguiente código para crear un archivo de audio largo en tu bucket de GCS.
Python
Antes de ejecutar el ejemplo, asegúrate de haber preparado tu entorno para el desarrollo en Python.
Limpia
A fin de evitar cargos innecesarios de Google Cloud Platform, usa la consola de Google Cloud para borrar tu proyecto si no lo necesitas.
¿Qué sigue?
- Obtén más información sobre Cloud Text-to-Speech en el artículo de Conceptos básicos.
- Revisa la lista de las voces disponibles que puedes usar como voz sintética.