En este tutorial se explica cómo usar el lenguaje de marcas de síntesis de voz (SSML) para enunciar 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 | Renderización de texto sin formato con SSML |
---|---|
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 mediante SSML y las bibliotecas de cliente de Text-to-Speech.
Costes
Consulta la página de precios de Text-to-Speech para obtener información sobre los costes.
Antes de empezar
- Asegúrate de tener un proyecto de Text-to-Speech en la consolaGoogle Cloud .
- En este tutorial puedes usar Java, Node.js o Python. Si tienes previsto usar Java, descarga e instala Maven. Si tienes previsto usar Node.js, descarga npm.
Descargar los códigos de ejemplo
Para descargar los ejemplos de código, clona los Google Cloud ejemplos de GitHub del lenguaje de programación que quieras usar.
Java
En este tutorial se usa código del directorio texttospeech/cloud-client/src/main/java/com/example/texttospeech/
del repositorio de ejemplos de Java de Google Cloud Platform.
Para descargar el código de este tutorial y desplazarte hasta él, ejecuta los siguientes comandos
en el 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 tutorial se usa código del directorio texttospeech
del
repositorio de ejemplos de Node.js de Google Cloud Platform.
Para descargar el código de este tutorial y desplazarte por él, ejecuta los siguientes comandos desde el terminal.
git clone https://github.com/GoogleCloudPlatform/nodejs-docs-samples.git cd texttospeech/
Python
En este tutorial se usa código del directorio texttospeech/snippets
del repositorio de ejemplos de Python de Google Cloud Platform.
Para descargar el código de este tutorial y desplazarte hasta él, ejecuta los siguientes comandos
en el terminal.
git clone https://github.com/GoogleCloudPlatform/python-docs-samples.git cd samples/snippets
Instalar la biblioteca cliente
En este tutorial se usa la biblioteca de cliente Text-to-Speech.
Java
En este tutorial se usan las siguientes dependencias:
Node.js
En el terminal, ejecuta el siguiente comando.
npm install @google-cloud/text-to-speech
Python
En el terminal, ejecuta el siguiente comando.
pip install --upgrade google-cloud-texttospeech
Configurar las 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.
Importar bibliotecas
En este tutorial se usan las siguientes bibliotecas de sistema y de cliente.
Java
Para saber cómo instalar y usar la biblioteca de cliente de Text-to-Speech, consulta el artículo sobre las bibliotecas de cliente de Text-to-Speech. Para obtener más información, consulta la documentación de referencia de la API Text-to-Speech Java.
Para autenticarte en Text-to-Speech, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Node.js
Para saber cómo instalar y usar la biblioteca de cliente de Text-to-Speech, consulta el artículo sobre las bibliotecas de cliente de Text-to-Speech. Para obtener más información, consulta la documentación de referencia de la API Text-to-Speech Node.js.
Para autenticarte en Text-to-Speech, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Python
Para saber cómo instalar y usar la biblioteca de cliente de Text-to-Speech, consulta el artículo sobre las bibliotecas de cliente de Text-to-Speech. Para obtener más información, consulta la documentación de referencia de la API Text-to-Speech Python.
Para autenticarte en Text-to-Speech, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Usar la API Text-to-Speech
La siguiente función toma una cadena de texto etiquetada con SSML y el nombre de un archivo MP3. La función usa el texto etiquetado con SSML para generar audio sintético. La función guarda el audio sintético en el nombre de archivo MP3 designado como parámetro.
Toda la entrada de SSML solo se puede leer con una voz.
Puedes definir la voz en el objeto
VoiceSelectionParams
.
Java
Para saber cómo instalar y usar la biblioteca de cliente de Text-to-Speech, consulta el artículo sobre las bibliotecas de cliente de Text-to-Speech. Para obtener más información, consulta la documentación de referencia de la API Text-to-Speech Java.
Para autenticarte en Text-to-Speech, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Node.js
Para saber cómo instalar y usar la biblioteca de cliente de Text-to-Speech, consulta el artículo sobre las bibliotecas de cliente de Text-to-Speech. Para obtener más información, consulta la documentación de referencia de la API Text-to-Speech Node.js.
Para autenticarte en Text-to-Speech, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Python
Para saber cómo instalar y usar la biblioteca de cliente de Text-to-Speech, consulta el artículo sobre las bibliotecas de cliente de Text-to-Speech. Para obtener más información, consulta la documentación de referencia de la API Text-to-Speech Python.
Para autenticarte en Text-to-Speech, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Personalizar el audio sintético
La siguiente función toma el nombre de un archivo de texto y convierte el contenido del archivo en una cadena de texto etiquetada con SSML.
Java
Para saber cómo instalar y usar la biblioteca de cliente de Text-to-Speech, consulta el artículo sobre las bibliotecas de cliente de Text-to-Speech. Para obtener más información, consulta la documentación de referencia de la API Text-to-Speech Java.
Para autenticarte en Text-to-Speech, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Node.js
Para saber cómo instalar y usar la biblioteca de cliente de Text-to-Speech, consulta el artículo sobre las bibliotecas de cliente de Text-to-Speech. Para obtener más información, consulta la documentación de referencia de la API Text-to-Speech Node.js.
Para autenticarte en Text-to-Speech, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Python
Para saber cómo instalar y usar la biblioteca de cliente de Text-to-Speech, consulta el artículo sobre las bibliotecas de cliente de Text-to-Speech. Para obtener más información, consulta la documentación de referencia de la API Text-to-Speech Python.
Para autenticarte en Text-to-Speech, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Analizar todos los datos en conjunto
Este programa 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
Si se envía 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>
Ejecutar 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
, descomenta las variables TODO (developer)
comentadas.
En el siguiente comando, sustituye projectId por el ID de tu proyecto. 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
, descomenta las variables TODO (developer)
comentadas.
En el siguiente comando, sustituye projectId por el ID de tu proyecto. 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
Comprobar el resultado
Este programa genera un archivo de audio example.mp3 de voz sintética.
Java
Ve al directorio java-docs-samples/texttospeech/cloud-client/resources/
.
Comprueba si hay un archivo example.mp3 en el directorio resources
.
Node.js
Ve al directorio nodejs-docs-samples/texttospeech/resources/
.
Comprueba si hay un archivo example.mp3 en el directorio resources
.
Python
Ve a python-docs-samples/texttospeech/snippets/resources
.
Comprueba si hay un archivo example.mp3 en el directorio resources
.
Escucha el siguiente clip de audio para comprobar que el sonido de tu archivo example.mp3 es el mismo.
Solucionar problemas
Si olvidas definir 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 se pasa
text_to_ssml()
el nombre de un archivo que no existe, se genera el siguiente mensaje de error:IOError: [Errno 2] No such file or directory
Si se pasa
ssml_to_audio()
a un parámetro ssml_text que contiene None, se genera el siguiente mensaje de error:InvalidArgument: 400 Invalid input type. Type has to be text or SSML
Asegúrate de ejecutar el código desde el directorio correcto.
Siguientes pasos
- Consulta otras etiquetas SSML.
- Consulta cómo usar SSML con Traducción y Vision.
Limpieza
Para evitar que los recursos utilizados en este tutorial se cobren en tu cuenta de Google Cloud Platform, usa la Google Cloud consola para eliminar tu proyecto si no lo necesitas.
Eliminar un proyecto
- En la Google Cloud consola, ve a la página Proyectos.
- En la lista de proyectos, selecciona el proyecto que quieras eliminar y haz clic en Eliminar.
- En el cuadro de diálogo, escribe el ID del proyecto y haz clic en Cerrar para eliminar el proyecto.