En este instructivo, se muestra cómo usar el lenguaje de marcado de síntesis de voz (SSML) para que se pronuncie un archivo de texto de direcciones. Puedes marcar una cadena de texto con etiquetas SSML para personalizar el audio sintético de Text-to-Speech.
| Texto sin formato | Procesamiento SSML de texto sin formato |
|---|---|
123 Street Ln |
<speak>123 Street Ln</speak> |
1 Number St |
<speak>1 Number St</speak> |
1 Piazza del Fibonacci |
<speak>1 Piazza del Fibonacci</speak> |
Objetivo
Envía una solicitud de voz sintética a Text-to-Speech con SSML y las bibliotecas cliente de Text-to-Speech.
Costos
Para obtener información sobre los costos, consulta la página de precios de Text-to-Speech.
Antes de comenzar
- Asegúrate de tener un proyecto de Text-to-Speech en la consola deGoogle Cloud .
- Con este instructivo, puedes usar Java, Node.js o Python. Si planeas usar Java, descarga y, luego, instala Maven. Si planeas usar Node.js, descarga npm.
Descarga las muestras de código
Para descargar las muestras de código, clona las muestras de GitHub de Google Cloud del lenguaje de programación que pretendes usar.
Java
En este instructivo, se usa código en el directorio texttospeech/cloud-client/src/main/java/com/example/texttospeech/ del
repositorio de muestras de Java de Google Cloud.
Para descargar y navegar hasta el código de este instructivo, ejecuta los siguientes comandos desde la terminal.
git clone https://github.com/GoogleCloudPlatform/java-docs-samples.git cd java-docs-samples/texttospeech/cloud-client/src/main/java/com/example/texttospeech/
Node.js
En este instructivo, se usa código en
el directorio texttospeech
del repositorio de muestras de Node.js de Google Cloud.
Para descargar y navegar hasta el código de este instructivo, ejecuta los siguientes comandos desde la terminal.
git clone https://github.com/GoogleCloudPlatform/nodejs-docs-samples.git cd texttospeech/
Python
En este instructivo, se usa código en el directorio texttospeech/snippets del
repositorio de muestras de Python de Google Cloud.
Para descargar y navegar hasta el código de este instructivo, ejecuta los siguientes comandos desde la terminal.
git clone https://github.com/GoogleCloudPlatform/python-docs-samples.git cd samples/snippets
Instala la biblioteca cliente
En este instructivo, se usa la biblioteca cliente de Text-to-Speech.
Java
En este instructivo, se usan las siguientes dependencias.
Node.js
Desde la terminal, ejecuta el siguiente comando.
npm install @google-cloud/text-to-speech
Python
Desde la terminal, ejecuta el siguiente comando.
pip install --upgrade google-cloud-texttospeech
Configura tus credenciales de Google Cloud
Provide authentication credentials to your application code by setting the
environment variable GOOGLE_APPLICATION_CREDENTIALS. This
variable applies only to your current shell session. If you want the variable
to apply to future shell sessions, set the variable in your shell startup file,
for example in the ~/.bashrc or ~/.profile file.
Linux o macOS
export GOOGLE_APPLICATION_CREDENTIALS="KEY_PATH"Replace KEY_PATH with the path of the JSON file that contains your credentials.
For example:
export GOOGLE_APPLICATION_CREDENTIALS="/home/user/Downloads/service-account-file.json"
Windows
For PowerShell:
$env:GOOGLE_APPLICATION_CREDENTIALS="KEY_PATH"Replace KEY_PATH with the path of the JSON file that contains your credentials.
For example:
$env:GOOGLE_APPLICATION_CREDENTIALS="C:\Users\username\Downloads\service-account-file.json"
For command prompt:
set GOOGLE_APPLICATION_CREDENTIALS=KEY_PATHReplace KEY_PATH with the path of the JSON file that contains your credentials.
Importa las bibliotecas
En este instructivo, se usan las siguientes bibliotecas cliente y del sistema.
Java
Para aprender cómo instalar y usar la biblioteca cliente para Text-to-Speech, consulta las bibliotecas cliente de Text-to-Speech. Para obtener más información, consulta la documentación de referencia de la API de Java de Text-to-Speech.
Para autenticarte en Text-to-Speech, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Node.js
Para aprender cómo instalar y usar la biblioteca cliente para Text-to-Speech, consulta las bibliotecas cliente de Text-to-Speech. Para obtener más información, consulta la documentación de referencia de la API de Node.js de Text-to-Speech.
Para autenticarte en Text-to-Speech, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Python
Para aprender cómo instalar y usar la biblioteca cliente para Text-to-Speech, consulta las bibliotecas cliente de Text-to-Speech. Para obtener más información, consulta la documentación de referencia de la API de Python de Text-to-Speech.
Para autenticarte en Text-to-Speech, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Usa la API de Text-to-Speech
La siguiente función toma una cadena de texto etiquetado con SSML y el nombre de un archivo MP3. En esta función, se usa el texto etiquetado con SSML para generar audio sintético. La función guarda el audio sintético con el nombre de archivo MP3 designado como parámetro.
Solo una voz puede leer toda la entrada de SSML.
Puedes configurar la voz en
el objeto
VoiceSelectionParams.
Java
Para aprender cómo instalar y usar la biblioteca cliente para Text-to-Speech, consulta las bibliotecas cliente de Text-to-Speech. Para obtener más información, consulta la documentación de referencia de la API de Java de Text-to-Speech.
Para autenticarte en Text-to-Speech, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Node.js
Para aprender cómo instalar y usar la biblioteca cliente para Text-to-Speech, consulta las bibliotecas cliente de Text-to-Speech. Para obtener más información, consulta la documentación de referencia de la API de Node.js de Text-to-Speech.
Para autenticarte en Text-to-Speech, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Python
Para aprender cómo instalar y usar la biblioteca cliente para Text-to-Speech, consulta las bibliotecas cliente de Text-to-Speech. Para obtener más información, consulta la documentación de referencia de la API de Python de Text-to-Speech.
Para autenticarte en Text-to-Speech, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Personaliza el audio sintético
Con la siguiente función, se toma el nombre de un archivo de texto y se convierte el contenido del archivo en una cadena de texto etiquetado con SSML.
Java
Para aprender cómo instalar y usar la biblioteca cliente para Text-to-Speech, consulta las bibliotecas cliente de Text-to-Speech. Para obtener más información, consulta la documentación de referencia de la API de Java de Text-to-Speech.
Para autenticarte en Text-to-Speech, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Node.js
Para aprender cómo instalar y usar la biblioteca cliente para Text-to-Speech, consulta las bibliotecas cliente de Text-to-Speech. Para obtener más información, consulta la documentación de referencia de la API de Node.js de Text-to-Speech.
Para autenticarte en Text-to-Speech, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Python
Para aprender cómo instalar y usar la biblioteca cliente para Text-to-Speech, consulta las bibliotecas cliente de Text-to-Speech. Para obtener más información, consulta la documentación de referencia de la API de Python de Text-to-Speech.
Para autenticarte en Text-to-Speech, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Combina todas las opciones
En este programa, se usa la siguiente entrada.
123 Street Ln, Small Town, IL 12345 USA 1 Jenny St & Number St, Tutone City, CA 86753 1 Piazza del Fibonacci, 12358 Pisa, Italy
Cuando se pasa el texto anterior a text_to_ssml(), se genera el siguiente texto etiquetado.
<speak>123 Street Ln, Small Town, IL 12345 USA <break time="2s"/>1 Jenny St & Number St, Tutone City, CA 86753 <break time="2s"/>1 Piazza del Fibonacci, 12358 Pisa, Italy <break time="2s"/></speak>
Ejecuta el código
Para generar un archivo de audio de voz sintética, ejecuta el siguiente código desde la línea de comandos.
Java
Linux o MacOS
En el directorio java-docs-samples/texttospeech/cloud-client/, ejecuta el siguiente comando en la línea de comandos.
$ mvn clean package
Windows
En el directorio java-docs-samples/texttospeech/cloud-client/, ejecuta el siguiente comando en la línea de comandos.
$ mvn clean package
Node.js
Linux o MacOS
En el archivo hybridGlossaries.js, quita el comentario de las variables comentadas de TODO (developer).
En el siguiente comando, reemplaza projectId por el ID del proyecto de Google Cloud .
En el directorio nodejs-docs-samples/texttospeech, ejecuta el siguiente comando en la línea de comandos.
$ node ssmlAddresses.js projectId
Windows
En el archivo hybridGlossaries.js, quita el comentario de las variables comentadas de TODO (developer).
En el siguiente comando, reemplaza projectId por el ID del proyecto de Google Cloud .
En el directorio nodejs-docs-samples/texttospeech, ejecuta el siguiente comando en la línea de comandos.
$env: C:/Node.js/node.exe C: ssmlAddresses.js projectId
Python
Linux o MacOS
En el directorio python-docs-samples/texttospeech/snippets, ejecuta el siguiente comando en la línea de comandos.
$ python ssml_addresses.py
Windows
En el directorio python-docs-samples/texttospeech/snippets, ejecuta el siguiente comando en la línea de comandos.
$env: C:/Python3/python.exe C: ssml_addresses.py
Comprueba el resultado
En este programa, se genera un archivo de audio example.mp3 de voz sintética.
Java
Navega al directorio java-docs-samples/texttospeech/cloud-client/resources/.
Busca en el directorio resources un archivo example.mp3.
Node.js
Navega al directorio nodejs-docs-samples/texttospeech/resources/.
Busca en el directorio resources un archivo example.mp3.
Python
Navega hasta python-docs-samples/texttospeech/snippets/resources.
Busca en el directorio resources un archivo example.mp3.
Escucha el siguiente clip de audio para comprobar que tu archivo example.mp3 suene igual.
Solucionar problemas
Si olvidas establecer la variable de entorno GOOGLE_APPLICATION_CREDENTIALS en la línea de comandos, se generará el siguiente mensaje de error:
The Application Default Credentials are not available.
Si pasas el nombre de un archivo que no existe a
text_to_ssml(), se genera el siguiente mensaje de error:IOError: [Errno 2] No such file or directory
Pasar
ssml_to_audio()al parámetro None de ssml_text genera el siguiente mensaje de error:InvalidArgument: 400 Invalid input type. Type has to be text or SSML
Asegúrate de que estás ejecutando el código desde el directorio correcto.
¿Qué sigue?
- Explora otras etiquetas de SSML.
- Aprende a usar SSML con Translation y Vision
Limpia
Para evitar que se apliquen cargos a tu cuenta de Google Cloud por los recursos que se emplearon en este instructivo, usa la consola deGoogle Cloud para borrar el proyecto si no lo necesitas.
Borra tu proyecto
- En la consola deGoogle Cloud , ve a la página Proyectos.
- En la lista de proyectos, selecciona el proyecto que deseas borrar y haz clic en Borrar.
- En el cuadro de diálogo, escribe el ID del proyecto y haz clic en Cerrar para borrar el proyecto.