Probar un notebook de Colab
|
Ver el notebook en GitHub
|
Chirp 3: Voces en HD de Text-to-Speech representa la última generación de la tecnología de Text-to-Speech. Gracias a nuestra última generación de modelos generativos, estas voces ofrecen realismo y resonancia emocional.
Para explorar y experimentar con nuestros modelos de voz en la consola Google Cloud , revisa Media Studio.
Prueba Chirp 3: Voces en HD en Vertex AI Studio
Opciones de voz
Hay un rango de opciones de voz disponibles, cada una con características distintas:
| Nombre | Género | Demostración |
|---|---|---|
| Achernar | Femenino | |
| Achird | Masculino | |
| Algenib | Masculino | |
| Algieba | Masculino | |
| Alnilam | Masculino | |
| Aoede | Femenino | |
| Autonoe | Femenino | |
| Callirrhoe | Femenino | |
| Caronte | Masculino | |
| Despina | Femenino | |
| Encélado | Masculino | |
| Erinome | Femenino | |
| Fenrir | Masculino | |
| Gacrux | Femenino | |
| Jápeto | Masculino | |
| Kore | Femenino | |
| Laomedeia | Femenino | |
| Leda | Femenino | |
| Orus | Masculino | |
| Pulcherrima | Femenino | |
| Puck | Masculino | |
| Rasalgethi | Masculino | |
| Sadachbia | Masculino | |
| Sadaltager | Masculino | |
| Schedar | Masculino | |
| Sulafat | Femenino | |
| Umbriel | Masculino | |
| Vindemiatrix | Femenino | |
| Zephyr | Femenino | |
| Zubenelgenubi | Masculino |
Idiomas disponibles
Las voces en HD de Chirp 3 son compatibles con los siguientes idiomas:
| Idioma | Código BCP-47 |
|---|---|
| Árabe (genérico) | ar-XA |
| Bengalí (India) | bn-IN |
| Danés (Dinamarca) | da-DK |
| Holandés (Bélgica) | nl-BE |
| Holandés (Países Bajos) | nl-NL |
| Inglés (Australia) | en-AU |
| Inglés (India) | en-IN |
| Inglés (Reino Unido) | en-GB |
| Inglés (Estados Unidos) | en-US |
| Finés (Finlandia) | fi-FI |
| Francés (Canadá) | fr-CA |
| Francés (Francia) | fr-FR |
| Alemán (Alemania) | de-DE |
| Guyaratí (India) | gu-IN |
| Hindi (India) | hi-IN |
| Indonesio (Indonesia) | id-ID |
| Italiano (Italia) | it-IT |
| Japonés (Japón) | ja-JP |
| Canarés (India) | kn-IN |
| Coreano (Corea del Sur) | ko-KR |
| Malabar (India) | ml-IN |
| Chino mandarín (China) | cmn-CN |
| Maratí (India) | mr-IN |
| Noruego bokmål (Noruega) | nb-NO |
| Polaco (Polonia) | pl-PL |
| Portugués (Brasil) | pt-BR |
| Ruso (Rusia) | ru-RU |
| Español (España) | es-ES |
| Español (Estados Unidos) | es-US |
| Suajili (Kenia) | sw-KE |
| Sueco (Suecia) | sv-SE |
| Tamil (India) | ta-IN |
| Telugu (India) | te-IN |
| Tailandés (Tailandia) | th-TH |
| Turco (Türkiye) | tr-TR |
| Ucraniano (Ucrania) | uk-UA |
| Urdu (India) | ur-IN |
| Vietnamita (Vietnam) | vi-VN |
Disponibilidad regional
Las voces en HD de Chirp 3 están disponibles en las siguientes Google Cloud regiones, respectivamente:
| Google Cloud Zona | Preparación para el lanzamiento |
|---|---|
global |
DG |
us |
DG |
eu |
DG |
asia-southeast1 |
DG |
europe-west2 |
DG |
asia-northeast1 |
DG |
Formatos de resultado compatibles
El formato de respuesta predeterminado es LINEAR16, pero se admiten otros formatos, como los siguientes:
| Método de API | Formato |
|---|---|
streaming |
ALAW, MULAW, OGG_OPUS y PCM |
batch |
ALAW, MULAW, MP3, OGG_OPUS y PCM |
Usa Chirp 3: Voces en HD
Descubre cómo usar Chirp 3: Voces en HD para sintetizar voz.
Realiza una solicitud de síntesis de voz de transmisión
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.
Realiza una solicitud de síntesis de voz en línea
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.
Sugerencias para escribir instrucciones y guiones
Para crear un audio atractivo y natural a partir de texto, es necesario comprender los matices del lenguaje hablado y traducirlos a formato de guion. Las siguientes sugerencias te ayudarán a crear guiones que suenen auténticos y capten el tono elegido.
Comprende el objetivo: Voz natural
El objetivo principal es que la voz sintetizada suene lo más parecida posible a la de un orador humano. Esto incluye lo siguiente:
- Imitar el ritmo natural: Se refiere a la velocidad con la que habla una persona.
- Crear un flujo fluido: Se refiere a garantizar transiciones fluidas entre oraciones y frases.
- Agregar pausas realistas: Se refiere a incorporar pausas para enfatizar y aclarar.
- Capturar el tono conversacional: Se refiere a hacer que el audio suene como una conversación real.
Técnicas clave para la voz natural
Puntuación para el ritmo y el flujo
- Puntos (.): Indican el final de la oración y una pausa más larga. Úsalos para separar ideas completas y crear límites claros entre las oraciones.
- Comas (,): Indican pausas más cortas dentro de las oraciones. Úsalas para separar cláusulas, enumerar elementos o ingresar pausas breves para respirar.
- Puntos suspensivos (…): Representan una pausa más larga y deliberada. Pueden indicar pensamientos rezagados, dudas o una pausa drástica.
- Ejemplo: “Y entonces… sucedió”.
- Guiones (-): Se pueden usar para indicar una pausa breve o una interrupción repentina en el pensamiento.
- Ejemplo: “Quería decir algo, pero no pude”.
Incorporar pausas y disfluencias
- Pausas estratégicas: Usa puntos suspensivos, comas o guiones con el objetivo de crear pausas en lugares donde un orador humano haría una pausa de forma natural para respirar o hacer énfasis.
- Disfluencias (eh y um): Si bien algunos modelos de Text-to-Speech manejan las disfluencias de manera automática, es fundamental comprender su rol. Agregan autenticidad y hacen que el discurso suene menos robótico. Incluso si el modelo los agrega, saber dónde ocurrirían de forma natural en el habla humana te ayuda a comprender el flujo general de tu guion.
Iteración y experimentación
- Volver a sintetizar: No dudes en volver a sintetizar el mismo mensaje con la misma voz varias veces. Los ajustes pequeños en la puntuación, el espaciado o la elección de palabras pueden afectar el audio final de manera significativa.
- Escuchar de forma crítica: Presta mucha atención al ritmo, el flujo y el tono general del audio sintetizado. Identifica las áreas que suenan poco naturales y ajusta al guion según corresponda.
- Variación de voz: Si el sistema lo permite, usa diferentes voces para ver cuál se adapta mejor a tu guion y al tono elegido.
Sugerencias prácticas para escritura de secuencias de comandos
- Lee en voz alta: Antes de sintetizar, lee el guion en voz alta. Esto te ayudará a identificar frases raras, pausas poco naturales y áreas que necesitan ajustes.
- Escribe de forma conversacional: Usa lenguaje informal para que el guion suene más natural.
- Ten en cuenta el contexto: El tono y el ritmo de la secuencia de comandos deben coincidir con el contexto del audio. Una presentación formal requerirá un enfoque diferente al de una conversación informal.
- Desglosa oraciones complejas: Las oraciones largas y complejas pueden ser difíciles de manejar para los motores de TTS. Desglósalas en oraciones más cortas y fáciles de manejar.
Mejoras en el guion de muestra
Guion original (robótico): “El producto ya está disponible. Tenemos funciones nuevas. Es muy emocionante”.
Guion mejorado (natural): “El producto ya está disponible… y agregamos algunas funciones nuevas emocionantes. Es, bueno, es muy emocionante”.
Guion original (robótico): “Este es un mensaje de confirmación automatizado. Se procesó tu reserva. Los siguientes detalles corresponden a tu próxima estadía. El número de reserva es 12345. El nombre del huésped registrado es Anthony Vasquez y la fecha de llegada es el 14 de marzo. La fecha de salida es el 16 de marzo. El tipo de habitación es una suite de lujo. La cantidad de huéspedes es 1. La hora de entrada es a las 3 p.m. La hora de salida es a las 11 a.m. Ten en cuenta que la política de cancelación requiere una notificación 48 horas antes de la llegada. Si no lo haces dentro de este plazo, se te cobrará una noche de estadía. Las comodidades adicionales incluidas en tu reserva son Wi-Fi sin costo adicional, acceso al gimnasio y desayuno incluido. Si tienes alguna consulta, comunícate directamente con el hotel al 855-555-6689. Gracias por elegir nuestro hotel”.
Guion mejorado (natural): “Hola Anthony Vasquez: Nos complace confirmar tu reserva con nosotros. Todo está listo para tu estadía del 14 al 16 de marzo en nuestra hermosa suite de lujo. Es para 1 huésped. Tu número de confirmación es 12345, en caso de que lo necesites.
Te recordamos que la entrada es a las 3 p.m. y la salida es a las 11 a.m.
Ahora bien, con respecto a nuestra política de cancelación… si necesitas cancelar, avísanos al menos 48 horas antes de tu llegada, ¿de acuerdo? De lo contrario, se te cobrará la estadía por una noche.
Y para que tu estadía sea aún mejor, tendrás Wi-Fi sin costo adicional, acceso a nuestro gimnasio y un delicioso desayuno incluido todas las mañanas.
Si tienes alguna pregunta, no dudes en llamarnos al 855-555-6689. Te esperamos en el hotel”.
Explicación de los cambios:
- Los puntos suspensivos (…) crean una pausa para enfatizar.
- La frase “y agregamos” continúa desde la oración anterior para lograr un tono más conversacional.
- “Es, bueno, es muy emocionante” agrega una pequeña cantidad de disfluencia y énfasis.
- El recordatorio amigable “¿de acuerdo?” suaviza el tono.
Seguir estos lineamientos permite crear guiones de texto a audio que suenen naturales, atractivos y similares al discurso humano. Recuerda que la práctica y la experimentación son clave para dominar esta habilidad.
Chirp 3: Compatibilidad con SSML en HD
Las etiquetas del lenguaje de marcado de síntesis de voz (SSML) te ofrecen más control sobre cómo se convierte el texto en voz. Cuando usas SSML, puedes especificar pronunciaciones, párrafos, influir y controlar en la estructura general del texto de entrada para obtener un audio con un sonido más natural.
Elementos de SSML compatibles
Chirp 3: Las voces en HD admiten un subconjunto de las etiquetas de SSML disponibles, que se describen aquí. Las etiquetas que no estén en esta lista se ignorarán durante el proceso de síntesis.
<speak>: Es el elemento raíz de la respuesta de SSML.<say-as>: Te permite proporcionar sugerencias sobre cómo pronunciar el texto incluido. Ten en cuenta que no se admiteninterpret-as="expletive"niinterpret-as="bleep".<p>: Representa un párrafo.<s>: Representa una oración.<phoneme>: Proporciona una pronunciación fonética para el texto incluido.<sub>: Pronuncia el valor del alias en lugar del texto contenido del elemento.
Ejemplo de SynthesizeSpeechRequest con SSML:
{
"audio_config": {
"audio_encoding": "LINEAR16",
},
"input": {
"ssml": "<speak>Here are <say-as interpret-as=\"characters\">SSML</say-as> samples. I can also substitute phrases, like the <sub alias=\"World Wide Web Consortium\">W3C</sub>. Hi,<phoneme alphabet=\"ipa\" ph=\"ˌmænɪˈtoʊbə\">manitoba<phoneme>! Finally, I can speak a paragraph with two sentences. <p><s>This is sentence one.</s><s>This is sentence two.</s></p></speak>",
},
"voice": {
"language_code": "en-US",
"name": "en-us-Chirp3-HD-Leda",
}
}
Chirp 3: Controles por voz en HD
Las funciones de control por voz son específicas para la síntesis de voz en HD. Puedes administrar el control de ritmo, el control de pausas y las pronunciaciones personalizadas con Chirp 3: Opciones de control por voz en HD.
Control de ritmo
Puedes ajustar la velocidad del audio generado con el parámetro de ritmo. El parámetro de ritmo te permite ralentizar o acelerar el discurso, con valores que van desde 0.25x (muy lento) hasta 2x (muy rápido). Para establecer el ritmo, usa el parámetro speaking_rate en tu solicitud. Elige un valor entre 0.25 y 2.0. Los valores inferiores a 1.0 ralentizan el habla y los valores superiores a 1.0 la aceleran. Un valor de 1.0 indica un ritmo sin ajustar.
Ejemplo de SynthesizeSpeechRequest con el control de ritmo:
{
"audio_config": {
"audio_encoding": "LINEAR16",
"speaking_rate": 2.0,
},
"input": {
"text": "Once upon a time, there was a cute cat. He was so cute that he got lots of treats.",
},
"voice": {
"language_code": "en-US",
"name": "en-us-Chirp3-HD-Leda",
}
}
Ejemplo de StreamingSynthesizeConfig con el control de ritmo:
{
"streaming_audio_config": {
"audio_encoding": "LINEAR16",
"speaking_rate": 2.0,
},
"voice": {
"language_code": "en-US",
"name": "en-us-Chirp3-HD-Leda",
}
}
Muestras de audio con control de ritmo:
| Velocidad del habla | Salida |
|---|---|
| 0.5 | |
| 1.0 | |
| 2.0 |
Control de pausa
Puedes insertar pausas en el discurso generado por IA incorporando etiquetas especiales directamente en el texto con el campo de entrada markup. Ten en cuenta que las etiquetas de pausa solo funcionarán en el campo markup y no en el text.
Estas etiquetas indican a la IA que cree silencios, pero la duración precisa de estas pausas no es fija. La IA ajusta la duración según el contexto, de manera similar a la forma en que el habla humana varía según el orador, la ubicación y la estructura de la oración. Las etiquetas de pausa disponibles son [pause short], [pause long] y [pause]. Si quieres conocer otros métodos con el objetivo de crear pausas sin usar etiquetas de marcado, consulta nuestros lineamientos para escribir instrucciones y redactar contenido.
En ocasiones, el modelo de IA puede ignorar las etiquetas de pausa, en especial si se colocan en posiciones poco naturales en el texto. Puedes combinar varias etiquetas de pausa para lograr silencios más largos, pero el uso excesivo puede generar problemas.
Ejemplo de SynthesizeSpeechRequest con el control de pausa:
{
"audio_config": {
"audio_encoding": "LINEAR16",
},
"input": {
"markup": "Let me take a look, [pause long] yes, I see it.",
},
"voice": {
"language_code": "en-US",
"name": "en-us-Chirp3-HD-Leda",
}
}
Ejemplo de StreamingSynthesisInput con el control de pausa:
{
"markup": "Let me take a look, [pause long] yes, I see it.",
}
Muestras de audio con el control de pausa:
| Entrada de etiqueta de marcado | Salida |
|---|---|
| “Let me take a look, yes, I see it”. | |
| “Let me take a look, [pause long] yes, I see it.” |
Pronunciaciones personalizadas
Puedes especificar pronunciaciones personalizadas con representaciones fonéticas de IPA o X-SAMPA para las palabras del texto de entrada. Asegúrate de usar fonemas adecuados para el idioma y lograr una renderización exacta. Puedes obtener más información sobre la anulación de fonemas en la documentación sobre fonemas.
Ejemplo de SynthesizeSpeechRequest con pronunciaciones personalizadas:
{
"audio_config": {
"audio_encoding": "LINEAR16",
},
"input": {
"text": "There is a dog in the boat",
"custom_pronunciations": {
"phrase": "dog",
"phonetic_encoding": "PHONETIC_ENCODING_X_SAMPA",
"pronunciation": "\"k{t",
}
},
"voice": {
"language_code": "en-US",
"name": "en-us-Chirp3-HD-Leda",
}
}
Ejemplo de StreamingSynthesizeConfig con pronunciaciones personalizadas:
{
"streaming_audio_config": {
"audio_encoding": "LINEAR16",
},
"voice": {
"language_code": "en-US",
"name": "en-us-Chirp3-HD-Leda",
}
"custom_pronunciations": {
"phrase": "dog",
"phonetic_encoding": "PHONETIC_ENCODING_X_SAMPA",
"pronunciation": "\"k{t",
}
}
Muestras de audio de pronunciaciones personalizadas:
| Se aplicaron pronunciaciones personalizadas | Salida |
|---|---|
| Ninguno | |
| “dog” pronunciado como “k{t” |
Las frases anuladas se pueden formatear de cualquier manera, incluso con símbolos. Por ejemplo, en el caso de una posible ambigüedad basada en el contexto en la concordancia de frases, que es común en idiomas como el chino y el japonés, o en oraciones en las que una palabra se puede pronunciar de diferentes maneras, la frase se puede formatear para quitar la ambigüedad. Por ejemplo, si quieres evitar anular accidentalmente otras instancias de la palabra read en la entrada, la frase "read" se podría formatear como "read1", "[read]" o "(read)" en el texto de entrada y en la frase anulada.
Mira este ejemplo sobre cómo aplicar pronunciaciones personalizadas a una oración en la que la palabra read se pronuncia de dos maneras diferentes:
{
"audio_config": {
"audio_encoding": "LINEAR16",
},
"input": {
"text": "I read1 a book, and I will now read2 it to you.",
"custom_pronunciations": {
"phrase": "read1",
"phonetic_encoding": "PHONETIC_ENCODING_IPA",
"pronunciation": "rɛd",
}
"custom_pronunciations": {
"phrase": "read2",
"phonetic_encoding": "PHONETIC_ENCODING_IPA",
"pronunciation": "riːd",
}
},
"voice": {
"language_code": "en-US",
"name": "en-us-Chirp3-HD-Leda",
}
}
| Se aplicaron pronunciaciones personalizadas | Salida |
|---|---|
| La palabra “read” se anula de dos maneras |
Además, las pronunciaciones personalizadas se pueden usar con entrada de etiquetas de marcado, lo que también permite el uso de etiquetas de pausa:
{
"audio_config": {
"audio_encoding": "LINEAR16",
},
"input": {
"markup": "Did you [pause long] read this book?",
"custom_pronunciations": {
"phrase": "read",
"phonetic_encoding": "PHONETIC_ENCODING_IPA",
"pronunciation": "riːd",
}
},
"voice": {
"language_code": "en-US",
"name": "en-us-Chirp3-HD-Leda",
}
}
| Pronunciaciones personalizadas usadas | Salida |
|---|---|
| Anula la pronunciación con la etiqueta de pausa |
Disponibilidad de idiomas para los controles por voz
El control de ritmo está disponible en todos los parámetros de configuración regionales.
El control de pausa está disponible en todos los parámetros de configuración regionales.
Las pronunciaciones personalizadas están disponibles en todos los parámetros de configuración regionales, excepto en los siguientes: bn-in, gu-in, nl-be, sw-ke, th-th, uk-ua, ur-in y vi-vn.
Preguntas frecuentes
Preguntas frecuentes y sus respuestas:
¿Cómo puedo controlar el ritmo y el flujo para mejorar la respuesta hablada?
Puedes usar nuestros lineamientos para escribir instrucciones y redactar contenido y mejorar las instrucciones del texto con el objetivo de mejorar la respuesta hablada.
¿Cómo accedo a las voces en los idiomas compatibles?
Los nombres de las voces siguen un formato específico, lo que permite usarlas en todos los idiomas compatibles especificando la voz de manera única. El formato es \<locale\>-\<model\>-\<voice\>. Por ejemplo, para usar la voz de Kore en inglés (Estados Unidos) con el modelo de Chirp 3: Modelos de voces en HD, la especificarías como en-US-Chirp3-HD-Kore.
Probar un notebook de Colab
Ver el notebook en GitHub