As vozes em alta definição do Cloud TTS Chirp 3 representam a mais recente geração da tecnologia de conversão de texto em voz. Com a tecnologia da nossa geração mais recente de modelos generativos, essas vozes oferecem realismo e ressonância emocional.
Opções de voz
Há várias opções de vozes disponíveis, cada uma com características distintas:
| Nome | Gênero | Demonstração |
|---|---|---|
| Achernar | Feminino | |
| Achird | Masculino | |
| Algenib | Masculino | |
| Algieba | Masculino | |
| Alnilam | Masculino | |
| Aoede | Feminino | |
| Autonoe | Feminino | |
| Callirrhoe | Feminino | |
| Charon | Masculino | |
| Despina | Feminino | |
| Enceladus | Masculino | |
| Erinome | Feminino | |
| Fenrir | Masculino | |
| Gacrux | Feminino | |
| Iapetus | Masculino | |
| Kore | Feminino | |
| Laomedeia | Feminino | |
| Leda | Feminino | |
| Orus | Masculino | |
| Pulcherrima | Feminino | |
| Puck | Masculino | |
| Rasalgethi | Masculino | |
| Sadachbia | Masculino | |
| Sadaltager | Masculino | |
| Schedar | Masculino | |
| Sulafat | Feminino | |
| Umbriel | Masculino | |
| Vindemiatrix | Feminino | |
| Zephyr | Feminino | |
| Zubenelgenubi | Masculino |
Disponibilidade de idiomas
O Chirp 3: vozes em alta definição está disponível nos seguintes idiomas:
| Idioma | Código BCP-47 |
|---|---|
| Árabe (genérico) | ar-XA |
| Bengali (Índia) | bn-IN |
| Búlgaro (Bulgária) | bg-BG |
| Croata (Croácia) | hr-HR |
| Checo (República Tcheca) | cs-CZ |
| Dinamarquês (Dinamarca) | da-DK |
| Holandês (Bélgica) | nl-BE |
| Holandês (Holanda) | nl-NL |
| Inglês (Austrália) | en-AU |
| Inglês (Índia) | en-IN |
| Inglês (Reino Unido) | en-GB |
| Inglês (Estados Unidos) | en-US |
| Estoniano (Estônia) | et-EE |
| Finlandês (Finlândia) | fi-FI |
| Francês (Canadá) | fr-CA |
| Francês (França) | fr-FR |
| Alemão (Alemanha) | de-DE |
| Grego (Grécia) | el-GR |
| Gujarati (Índia) | gu-IN |
| Hebraico (Israel) | he-IL |
| Híndi (Índia) | hi-IN |
| Húngaro (Hungria) | hu-HU |
| Indonésio (Indonésia) | id-ID |
| Italiano (Itália) | it-IT |
| Japonês (Japão) | ja-JP |
| Canarês (Índia) | kn-IN |
| Coreano (Coreia do Sul) | ko-KR |
| Letão (Letônia) | lv-LV |
| Lituano (Lituânia) | lt-LT |
| Malaiala (Índia) | ml-IN |
| Mandarim (China) | cmn-CN |
| Marati (Índia) | mr-IN |
| Bokmål norueguês (Noruega) | nb-NO |
| Polonês (Polônia) | pl-PL |
| Português (Brasil) | pt-BR |
| Romeno (Romênia) | ro-RO |
| Russo (Rússia) | ru-RU |
| Sérvio (Cirílico) | sr-RS |
| Eslovaco (Eslováquia) | sk-SK |
| Esloveno (Eslovênia) | sl-SI |
| Espanhol (Espanha) | es-ES |
| Espanhol (Estados Unidos) | es-US |
| Swahili (Quênia) | sw-KE |
| Sueco (Suécia) | sv-SE |
| Tâmil (Índia) | ta-IN |
| Telugu (Índia) | te-IN |
| Tailandês (Tailândia) | th-TH |
| Turco (Turquia) | tr-TR |
| Ucraniano (Ucrânia) | uk-UA |
| Urdu (Índia) | ur-IN |
| Vietnamita (Vietnã) | vi-VN |
Disponibilidade regional
As vozes em alta definição do Chirp 3 estão disponíveis nas seguintes regiões do Google Cloud , respectivamente:
| ZonaGoogle Cloud | Prontidão para o lançamento |
|---|---|
global |
GA |
us |
GA |
eu |
GA |
asia-southeast1 |
GA |
europe-west2 |
GA |
asia-northeast1 |
GA |
Formatos de saída disponíveis
O formato de resposta padrão é LINEAR16, mas outros formatos compatíveis incluem:
| Método de API | Formato |
|---|---|
streaming |
ALAW, MULAW, OGG_OPUS e PCM |
batch |
ALAW, MULAW, MP3, OGG_OPUS e PCM |
Usar o Chirp 3: vozes em alta definição
Saiba como usar o Chirp 3: Vozes em Alta Definição para sintetizar falas.
Fazer uma solicitação de síntese de fala em streaming
Python
Para saber como instalar e usar a biblioteca de cliente da Cloud TTS, consulte Bibliotecas de cliente da Cloud TTS. Saiba mais na documentação de referência da API Cloud TTS para Python.
Para se autenticar na Cloud TTS, configure o Application Default Credentials. Se quiser mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Fazer uma solicitação de síntese de voz on-line
Python
Para saber como instalar e usar a biblioteca de cliente da Cloud TTS, consulte Bibliotecas de cliente da Cloud TTS. Saiba mais na documentação de referência da API Cloud TTS para Python.
Para se autenticar na Cloud TTS, configure o Application Default Credentials. Se quiser mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Dicas de scripting e comandos
Para criar áudios envolventes e com som natural baseando-se em textos, você precisa entender as nuances da linguagem falada e traduzi-las para um formato de script. As dicas a seguir vão ajudar você a criar scripts que forneçam um som autêntico e capturem o tom escolhido.
Entender a meta: fala natural
O objetivo principal é fazer com que a voz sintetizada soe o mais próximo possível de uma pessoa falando naturalmente. Isso envolve:
- Imitação do ritmo natural:a velocidade da fala de alguém.
- Criar um fluxo suave:garantir transições perfeitas entre frases e expressões.
- Adição de pausas realistas:incorporação de pausas para ênfase e clareza.
- Capturar o tom da conversa:fazer com que o áudio soe como uma conversa real.
Principais técnicas para fala natural
Pontuação para ritmo e fluxo
- Pontos finais (.): indicam uma pausa mais longa. Use-os para separar ideias completas e criar limites claros entre as frases.
- Vírgulas (,): indicam pausas mais curtas dentro das frases. Use-os para separar cláusulas, listar itens ou fazer pequenas pausas para respirar.
- Elipses (...): representam uma pausa mais longa e deliberada. Eles podem indicar pensamentos incompletos, hesitação ou uma pausa dramática.
- Exemplo: "E então... aconteceu."
- Hífens (-): podem ser usados para indicar uma breve pausa ou uma interrupção repentina no pensamento.
- Exemplo: "Eu queria dizer, mas não consegui".
Incorporar pausas e disfluências
- Pausas estratégicas: use reticências, vírgulas ou hífens para criar pausas em lugares onde um falante humano faria uma pausa natural para respirar ou enfatizar.
- Disfluências (ãns e uhs): embora alguns modelos do Cloud Text-to-Speech processem disfluências automaticamente, é fundamental entender a função delas. Elas adicionam autenticidade e fazem com que a fala soe menos robótica. Mesmo que o modelo os adicione, saber onde eles ocorreriam naturalmente na fala humana ajuda você a entender o fluxo geral do seu script.
Experimentação e iteração
- Resíntese: não tenha medo de resintetizar a mesma mensagem com a mesma voz várias vezes. Pequenos ajustes na pontuação, no espaçamento ou na escolha de palavras podem afetar significativamente o áudio final.
- Ouça com atenção: preste atenção ao ritmo, ao fluxo e ao tom geral do áudio sintetizado. Identifique as áreas que soam não naturais e ajuste o script de acordo.
- Variação de voz: se o sistema permitir, use vozes diferentes para ver qual delas se adapta melhor ao seu script e tom escolhido.
Dicas práticas de programação
- Leitura em voz alta: antes de sintetizar, leia seu roteiro em voz alta. Isso vai ajudar você a identificar frases estranhas, pausas não naturais e áreas que precisam de ajustes.
- Escreva de forma conversacional: use contrações (por exemplo, "it's", "we're") e linguagem informal para deixar o roteiro mais natural.
- Considere o contexto: o tom e o ritmo do seu script precisam corresponder ao contexto do áudio. Uma apresentação formal exige uma abordagem diferente de uma conversa casual.
- Divida frases complexas: frases longas e complicadas podem ser difíceis de processar para os mecanismos de TTS. Divida-as em frases mais curtas e fáceis de gerenciar.
Melhorias no exemplo de script
Script original (robótico): "O produto já está disponível. Temos novos recursos. É muito emocionante."
Script aprimorado (natural): "O produto já está disponível... e adicionamos alguns recursos novos e incríveis. É, bem, é muito emocionante."
Script original (robótico): "Esta é uma mensagem de confirmação automática. Sua reserva foi processada. Confira abaixo os detalhes da sua próxima estadia. O número da reserva é 12345. O nome do hóspede registrado é Anthony Vasquez. A data de chegada é 14 de março. A data de partida é 16 de março. O tipo de quarto é suíte de luxo. O número de hóspedes é 1. O horário de check-in é às 15h. O horário de check-out é às 11h. A política de cancelamento exige notificação 48 horas antes da chegada. Se não fizer isso dentro desse prazo, você vai receber uma cobrança referente a uma diária. Outras comodidades incluídas na sua reserva são: Wi-Fi gratuito, acesso à academia e café da manhã gratuito. Em caso de dúvidas, entre em contato diretamente com o hotel pelo número 855-555-6689. Agradecemos por escolher nosso hotel."
Script melhorado (natural): "Olá, Anthony Vasquez! Estamos muito felizes em confirmar sua reserva com a gente! Está tudo pronto para sua estadia de 14 a 16 de março na nossa linda Suíte Deluxe. Isso é para um hóspede. Seu número de confirmação é 12345, caso precise dele.
Então, só um lembrete rápido: o check-in é às 15h e o check-out é às 11h.
Agora, um aviso sobre nossa política de cancelamento: se você precisar cancelar, avise com pelo menos 48 horas de antecedência, ok? Caso contrário, será cobrada a estadia de uma noite.
Para tornar sua estadia ainda melhor, você terá Wi-Fi gratuito, acesso à nossa academia e um delicioso café da manhã de cortesia todas as manhãs!
Se tiver dúvidas, ligue para 855-555-6689. Mal podemos esperar para receber você no hotel!"
Explicação sobre as mudanças:
- As reticências (...) criam uma pausa para ênfase.
- "e nós" usa uma contração para um tom mais conversacional.
- "É, bem, é muito emocionante" adiciona um pouco de disfluência e ênfase.
- O lembrete amigável "Tudo bem?" suaviza o tom.
Seguindo estas diretrizes, você pode criar scripts de texto para áudio que soam naturais, envolventes e semelhantes a humanos. Não se esqueça de que a prática e a experimentação são fundamentais para dominar essa habilidade.
Chirp 3: compatibilidade com SSML em alta definição
As tags da Linguagem de marcação de síntese de voz (SSML) oferecem mais controle sobre como o texto é convertido em fala. Ao usar SSML, você pode especificar pronúncias, parágrafos, controlar e influenciar a estrutura geral do texto de entrada para um áudio mais natural.
Elementos SSML compatíveis
O Chirp 3: vozes em alta definição aceita um subconjunto das tags SSML disponíveis, que estão descritas aqui. As tags que não estiverem nessa lista serão ignoradas durante o processo de síntese.
<speak>: o elemento raiz do texto SSML.<say-as>: permite fornecer dicas sobre como pronunciar o texto contido.interpret-as="expletive"ouinterpret-as="bleep"não são compatíveis.<p>: representa um parágrafo.<s>: representa uma frase.<phoneme>: fornece uma pronúncia fonética para o texto contido.<sub>: pronuncia o valor do alias em vez do texto contido no elemento.
Exemplo de SynthesizeSpeechRequest usando 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 de voz em alta definição
Os recursos de controle por voz são específicos para a síntese de voz em HD. É possível gerenciar o controle de ritmo, o controle de pausa e as pronúncias personalizadas nas opções de controle de voz em alta definição do Chirp 3.
Controle de ritmo
Você pode ajustar a velocidade do áudio gerado usando o parâmetro "ritmo". O parâmetro "ritmo" permite diminuir ou aumentar a velocidade da fala, com valores que variam de 0,25x (muito lento) a 2x (muito rápido). Para definir o ritmo, use o parâmetro speaking_rate na sua solicitação. Escolha um valor entre 0,25 e 2,0. Valores abaixo de 1,0 diminuem a velocidade da fala, e valores acima de 1,0 aumentam. Um valor de 1,0 indica um ritmo não ajustado.
Exemplo de SynthesizeSpeechRequest usando controle 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",
}
}
Exemplo de StreamingSynthesizeConfig usando controle de ritmo:
{
"streaming_audio_config": {
"audio_encoding": "LINEAR16",
"speaking_rate": 2.0,
},
"voice": {
"language_code": "en-US",
"name": "en-us-Chirp3-HD-Leda",
}
}
Amostras de áudio de controle de ritmo:
| Velocidade da fala | Saída |
|---|---|
| 0,5 | |
| 1.0 | |
| 2.0 |
Controle de pausa
É possível inserir pausas na fala gerada por IA incorporando tags especiais diretamente no texto usando o campo de entrada markup. As tags de pausa só funcionam no campo markup, não no campo text.
Essas tags indicam à IA para criar silêncios, mas a duração exata dessas pausas não é fixa. A IA ajusta a duração com base no contexto, assim como a fala humana natural varia de acordo com o falante, o local e a estrutura da frase. As tags de pausa disponíveis são [pause short], [pause long] e [pause]. Para conhecer outros métodos de criar pausas sem usar tags de marcação, consulte nossas diretrizes de comando e criação.
O modelo de IA pode ignorar as tags de pausa ocasionalmente, principalmente se elas forem colocadas em posições não naturais no texto. É possível combinar várias tags de pausa para silêncios mais longos, mas o uso excessivo pode causar problemas.
Exemplo de SynthesizeSpeechRequest usando o controle 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",
}
}
Exemplo de StreamingSynthesisInput usando o controle de pausa:
{
"markup": "Let me take a look, [pause long] yes, I see it.",
}
Pausar amostras de áudio de controle:
| Entrada de marcação | Saída |
|---|---|
| "Deixe-me dar uma olhada. Sim, estou vendo." | |
| "Deixe-me dar uma olhada. [pausa longa] Sim, estou vendo." |
Pronúncias personalizadas
É possível especificar pronúncias personalizadas usando representações fonéticas IPA ou X-SAMPA para palavras no texto de entrada. Use fonemas adequados ao idioma para uma renderização precisa. Saiba mais sobre a substituição de fonemas na nossa documentação sobre fonemas.
Exemplo de SynthesizeSpeechRequest usando pronúncias 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",
}
}
Exemplo de StreamingSynthesizeConfig usando pronúncias 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",
}
}
Exemplos de áudio de pronúncias personalizadas:
| Pronúncias personalizadas aplicadas | Saída |
|---|---|
| Nenhum | |
| "dog" pronunciado como ""k{t" |
As frases substituídas podem ser formatadas de qualquer maneira, inclusive usando símbolos. Por exemplo, em caso de possível ambiguidade baseada no contexto na correspondência de frases (comum em idiomas como chinês e japonês) ou frases em que uma palavra pode ser pronunciada de maneiras diferentes, a frase pode ser formatada para remover a ambiguidade. Por exemplo, para evitar substituir acidentalmente outras instâncias da palavra ler na entrada, a frase "read" pode ser formatada como "read1", "[read]" ou "(read)" para o texto de entrada e a frase substituída.
Confira este exemplo de aplicação de pronúncias personalizadas a uma frase em que a palavra read é pronunciada de duas maneiras 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",
}
}
| Pronúncias personalizadas aplicadas | Saída |
|---|---|
| "read" substituído de duas maneiras |
Além disso, as pronúncias personalizadas podem ser usadas com entrada de marcação, o que permite o uso de tags de pausa também:
{
"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",
}
}
| Pronúncias personalizadas usadas | Saída |
|---|---|
| Substituir a pronúncia com a tag de pausa |
Disponibilidade de idiomas para controles de voz
O controle de ritmo está disponível em todas as localidades.
O controle de pausa está disponível em todas as localidades, exceto: bg-bg, cs-cz, el-gr, et-ee, he-il, hr-hr, hu-hu, lt-lt, lv-lv, ro-ro, sk-sk, sl-si e sr-rs.
As pronúncias personalizadas estão disponíveis em todas as localidades, exceto: bg-bg, bn-in, cs-cz, da-dk, el-gr, et-ee, fi-fi, gu-in, he-il, hr-hr, hu-hu, lt-lt, lv-lv, nb-no, nl-be, ro-ro, sk-sk, sl-si, sr-rs, sv-se, sw-ke, th-th, uk-ua, ur-in e vi-vn.
Perguntas frequentes
Perguntas comuns e respostas:
Como controlar o ritmo e o fluxo para melhorar a saída de voz?
Você pode usar nossas diretrizes de comandos e criação e melhorar seu comando de texto para melhorar a saída de voz.
Como faço para acessar as vozes nos idiomas disponíveis?
Os nomes de voz seguem um formato específico, permitindo o uso em todos os idiomas compatíveis ao especificar a voz de maneira exclusiva. O formato segue \<locale\>-\<model\>-\<voice\>. Por exemplo, para usar a voz Kore em inglês (Estados Unidos) com o modelo Chirp 3: vozes em alta definição, especifique en-US-Chirp3-HD-Kore.