O Gemini-TTS é a mais recente evolução da nossa tecnologia Text-to-Speech, que vai além da fala com som natural e oferece controle granular sobre o áudio gerado usando comandos baseados em texto. Com o Gemini-TTS, você pode sintetizar falas de um ou vários falantes, de pequenos trechos a longas narrativas, ditando com precisão o estilo, o sotaque, o ritmo, o tom e até a expressão emocional com comandos em linguagem natural.
Modelos disponíveis
O Gemini TTS inclui os seguintes modelos disponíveis:
Gemini 2.5 Flash TTS
| ID do modelo | gemini-2.5-flash-tts |
|---|---|
| Otimizado para | Geração de áudio da Text-to-Speech controlável e de baixa latência com um ou vários falantes para aplicativos econômicos do dia a dia. |
| Modalidades de entrada e saída |
|
| Suporte para número de falantes | Único, vários falantes |
| Formatos de áudio de saída compatíveis* | LINEAR16 (padrão), ALAW, MULAW, MP3, OGG_OPUS, PCM |
| Suporte a regiões | global |
| Opções de voz | Consulte Opções de voz |
| Idiomas disponíveis | Veja os idiomas disponíveis |
| Exemplo |
model: "gemini-2.5-flash-tts"
prompt: "Say the following"
text: "[extremely fast] Availability and terms may vary.
Check our website or your local store for complete
details and restrictions."
speaker: "Kore"
|
Gemini 2.5 Pro TTS
| ID do modelo | gemini-2.5-pro-tts |
|---|---|
| Otimizado para | Alto controle para fluxos de trabalho estruturados, como geração de podcasts, audiolivros, suporte ao cliente e muito mais. |
| Modalidades de entrada e saída |
|
| Suporte para número de falantes | Único, vários falantes |
| Formatos de áudio de saída compatíveis* | LINEAR16 (padrão), ALAW, MULAW, MP3, OGG_OPUS, PCM |
| Suporte a regiões | global |
| Opções de voz | Consulte Opções de voz |
| Idiomas disponíveis | Veja os idiomas disponíveis |
| Exemplo |
model: "gemini-2.5-pro-tts"
prompt: "You are having a casual conversation with a friend.
Say the following in a friendly and amused way."
text: "hahah I did NOT expect that. Can you believe it!."
speaker: "Callirrhoe"
|
* apenas batch. streaming não é compatível.
Controles adicionais
Outros controles e recursos incluem:
Conversa natural: interações por voz de qualidade notável, com expressividade e padrões de ritmo mais adequadas, além de latência muito baixa para conversar com fluidez.
Controle de estilo: com comandos de linguagem natural, você pode adaptar a maneira como a conversa ocorre, direcionando-a para adotar sotaques específicos e produzir diversos tons e expressões, incluindo sussurros.
Desempenho dinâmico: esses modelos dão vida ao texto com leituras expressivas de poesias, noticiários e narrativas envolventes. Eles também podem produzir emoções específicas e sotaques, quando solicitado.
Controle aprimorado de ritmo e pronúncia: controlar a velocidade da fala ajuda a garantir mais precisão na pronúncia, incluindo palavras específicas.
Para saber como usar essas vozes no seu aplicativo, consulte Usar o Gemini-TTS.
Opções de voz
O Gemini-TTS oferece diversas opções de vozes semelhantes ao Chirp 3: vozes em alta definição, 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 |
Idiomas disponíveis
O Gemini-TTS aceita os seguintes idiomas:
| Idioma | Código BCP-47 | Prontidão para o lançamento |
|---|---|---|
| Árabe (Egito) | ar-EG | GA |
| Holandês (Holanda) | nl-NL | GA |
| Inglês (Índia) | en-IN | GA |
| Inglês (Estados Unidos) | en-US | GA |
| Francês (França) | fr-FR | GA |
| Alemão (Alemanha) | de-DE | GA |
| Hindi (Índia) | hi-IN | GA |
| Indonésio (Indonésia) | id-ID | GA |
| Italiano (Itália) | it-IT | GA |
| Japonês (Japão) | ja-JP | GA |
| Coreano (Coreia do Sul) | ko-KR | GA |
| Marathi (Índia) | mr-IN | GA |
| Polonês (Polônia) | pl-PL | GA |
| Português (Brasil) | pt-BR | GA |
| Romeno (Romênia) | ro-RO | GA |
| Russo (Rússia) | ru-RU | GA |
| Espanhol (Espanha) | es-ES | GA |
| Tamil (Índia) | ta-IN | GA |
| Telugu (Índia) | te-IN | GA |
| Tailandês (Tailândia) | th-TH | GA |
| Turco (Turquia) | tr-TR | GA |
| Ucraniano (Ucrânia) | uk-UA | GA |
| Vietnamita (Vietnã) | vi-VN | GA |
| Afrikaans (África do Sul) | af-ZA | Visualizar |
| Albanês (Albânia) | sq-AL | Visualizar |
| Amárico (Etiópia) | am-ET | Visualizar |
| Árabe (mundo) | ar-001 | Visualizar |
| Armênio (Armênia) | hy-AM | Visualizar |
| Azerbaijano (Azerbaijão) | az-AZ | Visualizar |
| Bengali (Bangladesh) | bn-BD | Visualizar |
| Basco (Espanha) | eu-ES | Visualizar |
| Bielorrusso (Bielorrússia) | be-BY | Visualizar |
| Búlgaro (Bulgária) | bg-BG | Visualizar |
| Birmanês (Mianmar) | my-MM | Visualizar |
| Catalão (Espanha) | ca-ES | Visualizar |
| Cebuano (Filipinas) | ceb-PH | Visualizar |
| Chinês, mandarim (China) | cmn-CN | Visualizar |
| Chinês, mandarim (Taiwan) | cmn-tw | Visualizar |
| Croata (Croácia) | hr-HR | Visualizar |
| Checo (República Tcheca) | cs-CZ | Visualizar |
| Dinamarquês (Dinamarca) | da-DK | Visualizar |
| Inglês (Austrália) | en-AU | Visualizar |
| Inglês (Reino Unido) | en-GB | Visualizar |
| Estoniano (Estônia) | et-EE | Visualizar |
| Filipino (Filipinas) | fil-PH | Visualizar |
| Finlandês (Finlândia) | fi-FI | Visualizar |
| Francês (Canadá) | fr-CA | Visualizar |
| Galego (Espanha) | gl-ES | Visualizar |
| Georgiano (Geórgia) | ka-GE | Visualizar |
| Grego (Grécia) | el-GR | Visualizar |
| Gujarati (Índia) | gu-IN | Visualizar |
| Crioulo haitiano (Haiti) | ht-HT | Visualizar |
| Hebraico (Israel) | he-IL | Visualizar |
| Húngaro (Hungria) | hu-HU | Visualizar |
| Islandês (Islândia) | is-IS | Visualizar |
| Javanês (Java) | jv-JV | Visualizar |
| Canarês (Índia) | kn-IN | Visualizar |
| Concani (Índia) | kok-IN | Visualizar |
| Lao (Laos) | lo-LA | Visualizar |
| Latim (Cidade do Vaticano) | la-VA | Visualizar |
| Letão (Letônia) | lv-LV | Visualizar |
| Lituano (Lituânia) | lt-LT | Visualizar |
| Luxemburguês (Luxemburgo) | lb-LU | Visualizar |
| Macedônio (Macedônia do Norte) | mk-MK | Visualizar |
| Maithili (Índia) | mai-IN | Visualizar |
| Malgaxe (Madagascar) | mg-MG | Visualizar |
| Malaio (Malásia) | ms-MY | Visualizar |
| Malaiala (Índia) | ml-IN | Visualizar |
| Mongol (Mongólia) | mn-MN | Visualizar |
| Nepalês (Nepal) | ne-NP | Visualizar |
| Bokmål norueguês (Noruega) | nb-NO | Visualizar |
| Nynorsk norueguês (Noruega) | nn-NO | Visualizar |
| Oriá (Índia) | or-IN | Visualizar |
| Pashto (Afeganistão) | ps-AF | Visualizar |
| Persa (Irã) | fa-IR | Visualizar |
| Português (Portugal) | pt-PT | Visualizar |
| Punjabi (Índia) | pa-IN | Visualizar |
| Sérvio (Sérvia) | sr-RS | Visualizar |
| Sindi (Índia) | sd-IN | Visualizar |
| Cingalês (Sri Lanka) | si-LK | Visualizar |
| Eslovaco (Eslováquia) | sk-SK | Visualizar |
| Esloveno (Eslovênia) | sl-SI | Visualizar |
| Espanhol (América Latina) | es-419 | Visualizar |
| Espanhol (México) | es-MX | Visualizar |
| Swahili (Quênia) | sw-KE | Visualizar |
| Sueco (Suécia) | sv-SE | Visualizar |
| Urdu (Paquistão) | ur-PK | Visualizar |
Usar o Gemini-TTS
Saiba como usar os modelos Gemini-TTS para sintetizar falas de uma ou várias pessoas.
| Descrição | Limite | Tipo |
|---|---|---|
| Campo de texto | Menor ou igual a 4.000 bytes. | Entrada |
| Campo de comando | Menor ou igual a 4.000 bytes. | Entrada |
| Campos de texto e comando | Menor ou igual a 8.000 bytes. | Entrada |
| Duração do áudio de saída | Aproximadamente 655 segundos. Se o texto de entrada resultar em um áudio com mais de 655 segundos, ele ficará truncado. | Saída |
Antes de começar
Antes de começar a usar a Text-to-Speech, siga estas etapas para ativar a API no console doGoogle Cloud :
- Ativar a Text-to-Speech em um projeto.
- Verificar se o faturamento está ativado para a Text-to-Speech.
- Configure a autenticação para o ambiente de desenvolvimento.
Configurar o projeto do Google Cloud
Acessar a página do seletor de projetos.
É possível escolher um projeto existente ou criar um novo. Para saber mais sobre a criação de um projeto, consulte a documentação doGoogle Cloud .
Quando você cria um projeto, recebe uma mensagem que informa que é necessário vincular uma conta de faturamento. Ao usar um projeto atual, você precisa ativar o faturamento.
Aprenda a confirmar se o faturamento está ativado para o projeto.
Depois de selecionar um projeto e vincular uma conta de faturamento a ele, é possível ativar a API Text-to-Speech. Acesse a barra Pesquisar produtos e recursos na parte de cima da página e digite speech. Selecione a API Cloud Text-to-Speech na lista de resultados.
Para testar a Text-to-Speech sem vinculação ao projeto, escolha a opção Testar esta API. Para ativar a API Text-to-Speech para uso no projeto, clique em Ativar.
Configure a autenticação para o ambiente de desenvolvimento. Para instruções, consulte Configurar a autenticação para a Text-to-Speech.
Realizar a síntese síncrona de falante único
Python
# google-cloud-texttospeech minimum version 2.29.0 is required.
import os
from google.cloud import texttospeech
PROJECT_ID = os.getenv("GOOGLE_CLOUD_PROJECT")
def synthesize(prompt: str, text: str, output_filepath: str = "output.mp3"):
"""Synthesizes speech from the input text and saves it to an MP3 file.
Args:
prompt: Styling instructions on how to synthesize the content in
the text field.
text: The text to synthesize.
output_filepath: The path to save the generated audio file.
Defaults to "output.mp3".
"""
client = texttospeech.TextToSpeechClient()
synthesis_input = texttospeech.SynthesisInput(text=text, prompt=prompt)
# Select the voice you want to use.
voice = texttospeech.VoiceSelectionParams(
language_code="en-US",
name="Charon", # Example voice, adjust as needed
model_name="gemini-2.5-pro-tts"
)
audio_config = texttospeech.AudioConfig(
audio_encoding=texttospeech.AudioEncoding.MP3
)
# Perform the text-to-speech request on the text input with the selected
# voice parameters and audio file type.
response = client.synthesize_speech(
input=synthesis_input, voice=voice, audio_config=audio_config
)
# The response's audio_content is binary.
with open(output_filepath, "wb") as out:
out.write(response.audio_content)
print(f"Audio content written to file: {output_filepath}")
CURL
# Make sure to install gcloud cli, and sign in to your project.
# Make sure to use your PROJECT_ID value.
# The available models are gemini-2.5-flash-tts and gemini-2.5-pro-tts.
# To parse the JSON output and use it directly see the last line of the command.
# Requires JQ and ffplay library to be installed.
PROJECT_ID=YOUR_PROJECT_ID
curl -X POST \
-H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
-H "x-goog-user-project: $PROJECT_ID" \
-H "Content-Type: application/json" \
-d '{
"input": {
"prompt": "Say the following in a curious way",
"text": "OK, so... tell me about this [uhm] AI thing."
},
"voice": {
"languageCode": "en-us",
"name": "Kore",
"model_name": "gemini-2.5-flash-tts"
},
"audioConfig": {
"audioEncoding": "LINEAR16"
}
}' \
"https://texttospeech.googleapis.com/v1/text:synthesize" \
| jq -r '.audioContent' | base64 -d | ffplay - -autoexit
Realizar a síntese síncrona de vários falantes com entradas de texto livre
| Descrição | Restrições e limites | Tipo |
|---|---|---|
| Campo de texto | Menor ou igual a 4.000 bytes | Entrada |
| Campo de comando | Menor ou igual a 4.000 bytes | Entrada |
| Campos de texto e comando | Menor ou igual a 8.000 bytes | Entrada |
| Aliases de falantes | Caracteres alfanuméricos e sem espaços em branco | Entrada |
| Duração do áudio de saída | Aproximadamente 655 segundos. Se o texto de entrada resultar em um áudio com mais de 655 segundos, ele ficará truncado. | Saída |
Python
# google-cloud-texttospeech minimum version 2.31.0 is required.
import os
from google.cloud import texttospeech
PROJECT_ID = os.getenv("GOOGLE_CLOUD_PROJECT")
def synthesize_multispeaker_freeform(
prompt: str,
text: str,
output_filepath: str = "output_non_turn_based.wav",
):
"""Synthesizes speech from non-turn-based input and saves it to a WAV file.
Args:
prompt: Styling instructions on how to synthesize the content in the
text field.
text: The text to synthesize, containing speaker aliases to indicate
different speakers. Example: "Sam: Hi Bob!\nBob: Hi Sam!"
output_filepath: The path to save the generated audio file. Defaults to
"output_non_turn_based.wav".
"""
client = texttospeech.TextToSpeechClient()
synthesis_input = texttospeech.SynthesisInput(text=text, prompt=prompt)
multi_speaker_voice_config = texttospeech.MultiSpeakerVoiceConfig(
speaker_voice_configs=[
texttospeech.MultispeakerPrebuiltVoice(
speaker_alias="Speaker1",
speaker_id="Kore",
),
texttospeech.MultispeakerPrebuiltVoice(
speaker_alias="Speaker2",
speaker_id="Charon",
),
]
)
voice = texttospeech.VoiceSelectionParams(
language_code="en-US",
model_name="gemini-2.5-pro-tts",
multi_speaker_voice_config=multi_speaker_voice_config,
)
audio_config = texttospeech.AudioConfig(
audio_encoding=texttospeech.AudioEncoding.LINEAR16,
sample_rate_hertz=24000,
)
response = client.synthesize_speech(
input=synthesis_input, voice=voice, audio_config=audio_config
)
with open(output_filepath, "wb") as out:
out.write(response.audio_content)
print(f"Audio content written to file: {output_filepath}")
CURL
# Make sure to install gcloud cli, and sign in to your project.
# Make sure to use your PROJECT_ID value.
# The available models are gemini-2.5-flash-tts and gemini-2.5-pro-tts
# To parse the JSON output and use it directly see the last line of the command.
# Requires JQ and ffplay library to be installed.
# google-cloud-texttospeech minimum version 2.31.0 is required.
PROJECT_ID=YOUR_PROJECT_ID
curl -X POST \
-H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
-H "x-goog-user-project: $PROJECT_ID" \
-H "Content-Type: application/json" \
-d '{
"input": {
"prompt": "Say the following as a conversation between friends.",
"text": "Sam: Hi Bob, how are you?\\nBob: I am doing well, and you?"
},
"voice": {
"languageCode": "en-us",
"modelName": "gemini-2.5-flash-tts",
"multiSpeakerVoiceConfig": {
"speakerVoiceConfigs": [
{
"speakerAlias": "Sam",
"speakerId": "Kore"
},
{
"speakerAlias": "Bob",
"speakerId": "Charon"
}
]
}
},
"audioConfig": {
"audioEncoding": "LINEAR16",
"sampleRateHertz": 24000
}
}' \
"https://texttospeech.googleapis.com/v1/text:synthesize" \
| jq -r '.audioContent' | base64 -d | ffplay - -autoexit
Realizar a síntese síncrona de vários falantes com entradas de texto estruturadas
A entrada de texto estruturada com vários falantes permite a verbalização inteligente de textos de maneira semelhante à humana. Por exemplo, esse tipo de entrada é útil para endereços e datas. A entrada de texto livre fala o texto exatamente como ele foi escrito.
| Descrição | Restrições e limites | Tipo |
|---|---|---|
| Campo MultiSpeakerMarkUp | Menor ou igual a 4.000 bytes | Entrada |
| Campo de comando | Menor ou igual a 4.000 bytes | Entrada |
| MultiSpeakerMarkUp e campos de solicitação | Menor ou igual a 8.000 bytes | Entrada |
| Aliases de falantes | Caracteres alfanuméricos e sem espaços em branco | Entrada |
| Duração do áudio de saída | Aproximadamente 655 segundos. Se o texto de entrada resultar em um áudio com mais de 655 segundos, ele ficará truncado. | Saída |
Python
# google-cloud-texttospeech minimum version 2.31.0 is required.
import os
from google.cloud import texttospeech
PROJECT_ID = os.getenv("GOOGLE_CLOUD_PROJECT")
def synthesize_multispeaker_structured(
prompt: str,
turns: list[texttospeech.MultiSpeakerMarkup.Turn],
output_filepath: str = "output_turn_based.wav",
):
"""Synthesizes speech from turn-based input and saves it to a WAV file.
Args:
prompt: Styling instructions on how to synthesize the content in the
text field.
turns: A list of texttospeech.MultiSpeakerMarkup.Turn objects representing
the dialogue turns.
output_filepath: The path to save the generated audio file. Defaults to
"output_turn_based.wav".
"""
client = texttospeech.TextToSpeechClient()
synthesis_input = texttospeech.SynthesisInput(
multi_speaker_markup=texttospeech.MultiSpeakerMarkup(turns=turns),
prompt=prompt,
)
multi_speaker_voice_config = texttospeech.MultiSpeakerVoiceConfig(
speaker_voice_configs=[
texttospeech.MultispeakerPrebuiltVoice(
speaker_alias="Speaker1",
speaker_id="Kore",
),
texttospeech.MultispeakerPrebuiltVoice(
speaker_alias="Speaker2",
speaker_id="Charon",
),
]
)
voice = texttospeech.VoiceSelectionParams(
language_code="en-US",
model_name="gemini-2.5-pro-tts",
multi_speaker_voice_config=multi_speaker_voice_config,
)
audio_config = texttospeech.AudioConfig(
audio_encoding=texttospeech.AudioEncoding.LINEAR16,
sample_rate_hertz=24000,
)
response = client.synthesize_speech(
input=synthesis_input, voice=voice, audio_config=audio_config
)
with open(output_filepath, "wb") as out:
out.write(response.audio_content)
print(f"Audio content written to file: {output_filepath}")
CURL
# Make sure to install gcloud cli, and sign in to your project.
# Make sure to use your PROJECT_ID value.
# The available models are gemini-2.5-flash-tts and gemini-2.5-pro-tts.
# To parse the JSON output and use it directly see the last line of the command.
# Requires JQ and ffplay library to be installed.
# google-cloud-texttospeech minimum version 2.31.0 is required.
PROJECT_ID=YOUR_PROJECT_ID
curl -X POST \
-H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
-H "x-goog-user-project: $PROJECT_ID" \
-H "Content-Type: application/json" \
-d '{
"input": {
"prompt": "Say the following as a conversation between friends.",
"multiSpeakerMarkup": {
"turns": [
{
"speaker": "Sam",
"text": "Hi Bob, how are you?"
},
{
"speaker": "Bob",
"text": "I am doing well, and you?"
}
]
}
},
"voice": {
"languageCode": "en-us",
"modelName": "gemini-2.5-flash-tts",
"multiSpeakerVoiceConfig": {
"speakerVoiceConfigs": [
{
"speakerAlias": "Sam",
"speakerId": "Kore"
},
{
"speakerAlias": "Bob",
"speakerId": "Charon"
}
]
}
},
"audioConfig": {
"audioEncoding": "LINEAR16",
"sampleRateHertz": 24000
}
}' \
"https://texttospeech.googleapis.com/v1/text:synthesize" \
| jq -r '.audioContent' | base64 -d | ffplay - -autoexit
Realizar a síntese de voz no Media Studio
Use o Media Studio no console do Google Google Cloud para testar modelos de conversão de texto em voz. Nele, você acessa uma interface do usuário para gerar, ouvir áudios sintetizados e testar diferentes parâmetros e instruções de estilo com rapidez.
No console do Google Google Cloud , acesse a página Vertex AI Studio > Media Studio.
Selecione Fala no menu suspenso de mídia.
No campo de texto, digite o texto que você quer sintetizar em fala.
No painel Configurações, defina o seguinte:
- Modelo: selecione o modelo da Text-to-Speech (TTS) que você quer usar, como
Gemini 2.5 Pro TTS. Para saber mais sobre os modelos disponíveis, consulte Modelos da Text-to-Speech. - Instruções de estilo (opcional): insira um comando de texto que descreva o estilo de fala, o tom e a emoção selecionados. Com isso, é possível orientar o desempenho do modelo além da narração padrão. Por exemplo: Narração em um tom calmo e profissional para um documentário.
- Idioma: selecione o idioma e a região do texto de entrada. O modelo gera a fala no idioma e no sotaque selecionados. Por exemplo, Inglês (Estados Unidos).
- Voz: escolha uma voz predefinida para a narração. A lista contém as vozes disponíveis para o modelo e o idioma selecionados, como Acherner (feminino).
- Modelo: selecione o modelo da Text-to-Speech (TTS) que você quer usar, como
Opcional: expanda a seção Opções avançadas para configurar as opções técnicas de áudio:
- Codificação de áudio: selecione a codificação do arquivo de áudio de saída.
LINEAR16é um formato sem perdas e sem compressão adequado para processamento de áudio de alta qualidade.MULAWtambém está disponível para saídas de áudio com compressão. - Taxa de amostragem de áudio: selecione a taxa de amostragem em hertz (Hz). Isso determina a qualidade do áudio. Valores mais altos, como 44.100 Hz, representam um áudio de maior fidelidade, equivalente à qualidade de um CD.
- Velocidade: ajuste a taxa de fala movendo o controle deslizante ou inserindo um valor. Valores menores que 1 diminuem a velocidade da fala e valores maiores que 1 aumentam. O padrão é 1.
- Ganho de volume (dB): ajuste o volume do áudio de saída em decibéis (dB). Valores positivos aumentam o volume e valores negativos diminuem. O padrão é 0.
- Codificação de áudio: selecione a codificação do arquivo de áudio de saída.
Clique no ícone Enviar à direita da caixa de texto para gerar o áudio.
O áudio gerado aparece no player de mídia. Clique no botão de reprodução para ouvir a saída. Você pode continuar ajustando as configurações e gerando novas versões conforme necessário.
Dicas de 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.
Os três fatores do controle de fala
Para ter resultados mais previsíveis e detalhados, verifique se os três componentes a seguir são consistentes com a saída pretendida.
Comando de estilo O principal fator do tom emocional geral e da maneira como a fala ocorre. Esse comando define o contexto para todo o segmento de fala.
Exemplo:
You are an AI assistant speaking in a friendly and helpful tone.Exemplo:
Narrate this in the calm, authoritative tone of a nature documentary narrator.
Conteúdo do texto O significado semântico das palavras que você está sintetizando. Uma frase evocativa que seja emocionalmente consistente com o comando de estilo vai produzir resultados muito mais confiáveis do que um texto neutro.
Bom: um comando para um tom assustado funciona melhor com textos como
I think someone is in the house.Menos eficaz: um comando para um tom assustado vai gerar resultados ambíguos com um texto como
The meeting is at 4 PM..
Tags de marcação
Tags entre colchetes, como [sigh], são mais adequadas para inserir uma ação específica e localizada ou uma modificação de estilo, não para definir o tom geral. Elas funcionam com o comando de estilo e o conteúdo do texto.
Guia de tags de marcação
Nossa pesquisa mostra que as tags de marcação entre colchetes operam em um de três modos distintos. Entender o modo de uma tag é fundamental para usá-la de maneira eficaz.
Modo 1: sons que não são de fala
A marcação é substituída por uma vocalização audível e não verbal, como um suspiro ou uma risada. A tag em si não é falada. Elas são excelentes para adicionar hesitações e reações realistas e semelhantes às humanas.
| Tag | Comportamento | Confiabilidade | Orientação |
|---|---|---|---|
[sigh] |
Insere um som de suspiro. | Alta | A qualidade emocional do suspiro é influenciada pelo comando. |
[laughing] |
Insere uma risada. | Alta | Para ter os melhores resultados, use um comando específico. Por exemplo, um comando genérico pode gerar uma risada de choque, enquanto "reaja com uma risada divertida" cria uma risada de diversão. |
[uhm] |
Insere um som de hesitação. | Alta | Útil para criar uma sensação mais natural e um clima de conversa. |
Modo 2: modificadores de estilo
A marcação não é falada, mas modifica a maneira como a fala seguinte ocorre. O escopo e a duração da modificação podem variar.
| Tag | Comportamento | Confiabilidade | Orientação |
|---|---|---|---|
[sarcasm] |
Dá um tom sarcástico à frase seguinte. | Alta | Essa tag é um modificador eficiente. Ela ajuda a demonstrar que conceitos abstratos podem direcionar a forma como o modelo produz a fala. |
[robotic] |
Faz com que a fala seguinte soe robótica. | Alta | O efeito pode se estender por toda uma frase. Um comando de estilo de apoio (por exemplo, "Diga isso de maneira robótica") ainda é recomendado para ter resultados melhores. |
[shouting] |
Aumenta o volume da fala seguinte. | Alta | Mais eficaz quando combinado com um comando de estilo correspondente (por exemplo, "Grite a próxima parte") e um texto que implica gritos. |
[whispering] |
Diminui o volume da fala seguinte. | Alta | Os melhores resultados são alcançados quando o comando de estilo também é explícito (por exemplo, "agora sussurre esta parte o mais baixo possível"). |
[extremely fast] |
Aumenta a velocidade da fala seguinte. | Alta | Ideal para avisos legais ou diálogos rápidos. Não é necessário ter muitos comandos de apoio. |
Modo 3: marcação vocalizada (adjetivos)
A tag de marcação é falada como uma palavra, além de influenciar o tom de toda a frase. Em geral, esse comportamento se aplica a adjetivos emocionais.
Aviso: como a tag é falada, esse modo provavelmente é um efeito colateral indesejado para a maioria dos casos de uso. Prefira usar o comando de estilo para definir esses tons emocionais.
| Tag | Comportamento | Confiabilidade | Orientação |
|---|---|---|---|
[scared] |
A palavra "assustado" é falada e a frase adota um tom assustado. | Alta | O desempenho depende muito do conteúdo do texto. A frase "Acabei de ouvir uma janela quebrar" produz um resultado genuinamente assustado. Uma frase neutra produz um resultado "assustador", mas menos autêntico. |
[curious] |
A palavra "curioso" é falada, e a frase adota um tom curioso. | Alta | Use uma frase inquisitiva para apoiar a intenção da tag. |
[bored] |
A palavra "entediado" é falada e a frase adota uma entonação monótona e entediada. | Alta | Use com textos comuns ou repetitivos para ter o melhor efeito. |
Modo 4: ritmo e pausas
Essas tags inserem silêncio no áudio gerado, oferecendo controle granular sobre ritmo, tempo e andamento. A pontuação padrão (vírgulas, pontos, ponto e vírgulas) também cria pausas naturais, mas essas tags oferecem um controle mais explícito.
| Tag | Comportamento | Confiabilidade | Orientação |
|---|---|---|---|
[short pause] |
Insere uma breve pausa, semelhante a uma vírgula (~250 ms). | Alta | Use para separar cláusulas ou itens de uma lista de modo a melhorar a clareza. |
[medium pause] |
Insere uma pausa padrão, semelhante a uma quebra de frase (~500 ms). | Alta | Eficaz para separar frases ou ideias distintas. |
[long pause] |
Insere uma pausa significativa para efeito dramático (~1000 ms ou mais). | Alta | Use para um efeito dramático. Por exemplo: "A resposta é… [long pause]... não." Evite o uso excessivo para não soar artificial. |
Principais estratégias para promover resultados confiáveis
Alinhar todos os três fatores Para ter previsibilidade máxima, garanta que o comando de estilo, o conteúdo do texto e as tags de marcação sejam semanticamente consistentes e trabalhem em alinhamento para atingir a mesma meta.
Usar textos ricos emocionalmente Não dependa apenas de comandos e tags. Forneça ao modelo um texto descritivo e rico. Isso é especialmente importante para emoções sutis, como sarcasmo, medo ou animação.
Escrever comandos específicos e detalhados Quanto mais específico for o comando de estilo, mais confiável será o resultado. "Reaja com uma risada divertida" é melhor do que apenas
[laughing]. "Fale como um locutor de rádio dos anos 1940" é melhor do que "Fale de um jeito antigo".Testar e verificar novas tags O comportamento de uma tag nova ou não testada nem sempre é previsível. Uma tag que você acredita ser um modificador de estilo pode ser vocalizada. Sempre teste uma nova tag ou combinação de comandos para confirmar o comportamento antes de implantar na produção.