En este instructivo, se muestra cómo usar el lenguaje de marcación de síntesis de voz (SSML) para que se pronuncie un archivo de texto de direcciones. Puedes marcar una string de texto con etiquetas SSML a fin de 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 que tienes un proyecto de Text-to-Speech en la consola de Google 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 correspondientes al 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 Platform.
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 Platform.
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 Platform.
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 Platform
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_PATH
Replace 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 obtener información sobre cómo instalar y usar la biblioteca cliente de 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 Text-to-Speech Java.
Para autenticarte en Text-to-Speech, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Node.js
Para obtener información sobre cómo instalar y usar la biblioteca cliente de 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 Text-to-Speech Node.js.
Para autenticarte en Text-to-Speech, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Python
Para obtener información sobre cómo instalar y usar la biblioteca cliente de 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 Text-to-Speech Python.
Para autenticarte en Text-to-Speech, configura las credenciales predeterminadas de la aplicación. Si deseas 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 string 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.
Toda la entrada de SSML puede ser leída por una sola voz.
Puedes configurar la voz en el objeto VoiceSelectionParams
.
Java
Para obtener información sobre cómo instalar y usar la biblioteca cliente de 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 Text-to-Speech Java.
Para autenticarte en Text-to-Speech, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Node.js
Para obtener información sobre cómo instalar y usar la biblioteca cliente de 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 Text-to-Speech Node.js.
Para autenticarte en Text-to-Speech, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Python
Para obtener información sobre cómo instalar y usar la biblioteca cliente de 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 Text-to-Speech Python.
Para autenticarte en Text-to-Speech, configura las credenciales predeterminadas de la aplicación. Si deseas 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 string de texto etiquetado con SSML.
Java
Para obtener información sobre cómo instalar y usar la biblioteca cliente de 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 Text-to-Speech Java.
Para autenticarte en Text-to-Speech, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Node.js
Para obtener información sobre cómo instalar y usar la biblioteca cliente de 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 Text-to-Speech Node.js.
Para autenticarte en Text-to-Speech, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Python
Para obtener información sobre cómo instalar y usar la biblioteca cliente de 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 Text-to-Speech Python.
Para autenticarte en Text-to-Speech, configura las credenciales predeterminadas de la aplicación. Si deseas 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 de tu 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 de tu 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
Este programa 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
el archivo example.mp3.
Node.js
Navega al directorio nodejs-docs-samples/texttospeech/resources/
.
Busca en el directorio resources
el archivo example.mp3.
Python
Navega hasta python-docs-samples/texttospeech/snippets/resources
.
Busca en el directorio resources
el 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()
un parámetro ssml_text que contenga None 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 Platform por los recursos utilizados en este instructivo, usa la consola de Google Cloud para borrar tu proyecto si no lo necesitas.
Borra tu proyecto
- En la consola de Google 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.