Crear audio de formato largo
En este documento se explica el proceso de síntesis de audio de formato largo. La función de síntesis de audios largos sintetiza de forma asíncrona hasta 1 millón de bytes de entrada. Para obtener más información sobre los conceptos fundamentales de Text-to-Speech, consulta el artículo Conceptos básicos de Text-to-Speech.
Antes de empezar
Antes de enviar una solicitud a la API Text-to-Speech, debes haber completado las siguientes acciones. Consulta la página Antes de empezar para obtener más información.
- Habilita Text-to-Speech en un Google Cloud proyecto.
- Asegúrate de que la facturación esté habilitada en Text-to-Speech.
- Asegúrate de que tienes los siguientes roles de Gestión de Identidades y Accesos (IAM) en el segmento Google Cloud de salida.
- Creador de objetos de Storage
- Visor de objetos de Storage
-
Instala Google Cloud CLI y, a continuación, inicia sesión en gcloud CLI con tu identidad federada. Después de iniciar sesión, inicializa la CLI de Google Cloud ejecutando el siguiente comando:
gcloud init
Sintetizar audio largo a partir de texto mediante la línea de comandos
Puedes convertir texto largo en audio haciendo una solicitud HTTP POST al endpoint https://texttospeech.googleapis.com/v1beta1/projects/{$project_number}/locations/global:synthesizeLongAudio
.
En el cuerpo del comando POST, especifica los siguientes campos.
• voice
: el tipo de voz que se va a sintetizar.
• input.text
: el texto que se va a sintetizar.
• audioConfig
: el tipo de audio que se va a crear.
• output_gcs_uri
: la Google Cloud ruta de salida con el formato "gs://nombre_del_cubo/nombre_del_archivo.wav".
• parent
: el elemento superior 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 en función de la entrada.
Crea un Google Cloud segmento 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 segmento de salida. Google Cloud
Ejecuta la solicitud REST en la línea de comandos para sintetizar el audio del texto con Text-to-Speech. El comando usa el comando
gcloud auth application-default print-access-token
para 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, despliega una de estas opciones:
Deberías recibir una respuesta JSON similar a la siguiente:
{ "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 }
La salida JSON del comando REST contiene el nombre de la operación larga 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 pertenezca al 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, despliega una de estas opciones:
Deberías recibir una respuesta JSON similar a la siguiente:
{ "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 están ejecutando 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 usa para la síntesis.
Método HTTP y URL:
GET https://texttospeech.googleapis.com/v1beta1/projects/12345/locations/global/operations
Para enviar tu solicitud, despliega una de estas opciones:
Deberías recibir una respuesta JSON similar a la siguiente:
{ "operations": [ { "name": "12345", "done": false }, { "name": "23456", "done": false } ], "nextPageToken": "" }
Una vez que se haya completado correctamente la operación de larga duración, busca el archivo de audio de salida en el URI del bucket proporcionado en el campo
output_gcs_uri
. Si la operación no se ha completado correctamente, busque el error consultando con el comando GET REST, corríjalo y vuelva a emitir la RPC.
Sintetizar audio largo a partir de texto con bibliotecas de cliente
Sigue estas instrucciones para sintetizar audio de larga duración.
Instalar la biblioteca cliente
Python
Antes de instalar la biblioteca, prepara el entorno para las tareas de desarrollo en Python.
pip install --upgrade google-cloud-texttospeech
Crear datos de audio
Puedes usar Text-to-Speech para crear un archivo de audio largo con una voz humana sintética. Usa el siguiente código para crear un archivo de audio largo en tu Google Cloud segmento.
Python
Antes de ejecutar el ejemplo, prepara el entorno para las tareas de desarrollo en Python.
Limpieza
Para evitar cargos innecesarios, usa la Google Cloud console para eliminar tu proyecto si no lo necesitas. Google Cloud
Siguientes pasos
- Consulta más información sobre Cloud Text-to-Speech en la sección de conceptos básicos.
- Consulta la lista de voces disponibles que puedes usar para la síntesis de voz.