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.
- Habilita Text-to-Speech en un Google Cloud proyecto.
- 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 Google Cloud salida.
- Creador de objetos de almacenamiento
- Visualizador de objetos de Storage
-
Instala Google Cloud CLI y, luego, accede a gcloud CLI con tu identidad federada. Después de acceder, inicializa Google Cloud CLI ejecutando el siguiente comando:
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 de salida de Google Cloud con el formato “gs://bucket_name/file_name.wav”.
• parent
: Es el elemento principal 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 Google Cloud bucket de almacenamiento 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 y escritura al bucket de salida Google Cloud .
Ejecuta la solicitud REST en la línea de comandos para sintetizar el audio a partir del texto con 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.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 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 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 bucket 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
Sigue estas instrucciones para sintetizar audio largo.
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 Google Cloud .
Python
Antes de ejecutar el ejemplo, asegúrate de haber preparado tu entorno para el desarrollo en Python.
Limpia
Para evitar cargos innecesarios de Google Cloud , usa laGoogle Cloud console 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.