Padrões de prompts TTS para fala natural
Estrutura de frases, pontuação e indicações de ritmo que melhoram a saída do TTS.
Padrões de prompts TTS para fala natural é uma aula grátis de AI Prompt Engineering no CoddyKit. Esta é a aula 1 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de AI Prompt Engineering, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de AI Prompt Engineering inclui 4 aulas no total.
Por que criar instruções para síntese de fala é diferente
Os sistemas de síntese de fala convertem seu texto literalmente em áudio. Ao contrário do texto visual, que os leitores podem reler quando uma parte é confusa, os ouvintes vivenciam o áudio de forma linear e não podem pausá-lo para interpretar uma frase ambígua.
Escrever para síntese de fala significa pensar em como as palavras soam: ritmo, comprimento das frases, ambiguidade de pronúncia e ausência de formatação visual, como negrito ou marcadores.
Comprimento das frases: quanto mais curtas, melhor
Frases longas e complexas, com várias orações, são difíceis de acompanhar em áudio. Os sistemas de síntese de fala frequentemente quebram o ritmo em pontos gramaticalmente corretos, mas acusticamente estranhos. Procure usar frases de 10 a 20 palavras para obter uma fala natural.
# Prompt a model to generate TTS-optimized text
TTS_SYSTEM_PROMPT = (
'You are writing text that will be read aloud by a text-to-speech system.\n\n'
'Rules:\n'
'- Use short, clear sentences (10-20 words each).\n'
'- Avoid complex nested clauses.\n'
'- End each sentence with a period for clear pause signals.\n'
'- Avoid parenthetical asides in the middle of sentences.\n'
'- Use conversational vocabulary — write as you would speak.\n'
'- Never use bullet points, headers, or markdown formatting.'
)
# Bad (long, nested):
BAD = (
'The transformer architecture, which was introduced in the landmark 2017 paper '
'"Attention is All You Need" by Vaswani et al. at Google, fundamentally changed '
'natural language processing by replacing recurrence with self-attention.'
)
# Good (TTS-friendly):
GOOD = (
'The transformer architecture changed natural language processing. '
'It was introduced in 2017 by researchers at Google. '
'Their key innovation was replacing recurrence with self-attention.'
)Pontuação como sinalização de áudio
Os mecanismos de síntese de fala usam a pontuação para controlar o ritmo:
- Ponto (.): ponto final, pausa mais longa
- Vírgula (,): pausa breve
- Ponto de interrogação (?): entonação ascendente
- Exclamação (!): ênfase e energia
- Ponto e vírgula (;): o comportamento varia conforme o mecanismo, sendo frequentemente ignorado
- Travessão (—): costuma causar pausas estranhas; evite-o
Use pontos finais explícitos em vez de travessões ou pontos e vírgulas para controlar o ritmo de forma confiável.
TTS_PUNCTUATION_PROMPT = (
'Write the following content for text-to-speech narration. '
'Use only periods, commas, and question marks for punctuation. '
'Avoid em dashes, semicolons, colons, and parentheses. '
'Break complex thoughts into multiple short sentences.\n\n'
'Content to rewrite: {content}'
)
# Example transformation
original = (
'There are three main factors to consider: cost, quality, and speed — '
'and often, you can only optimize for two of them (this is sometimes '
'called the project management triangle).'
)
for_tts = (
'There are three main factors to consider. The first is cost. '
'The second is quality. The third is speed. '
'Usually, you can only optimize for two of these at once. '
'This is sometimes called the project management triangle.'
)
print(for_tts)Como evitar abreviações ambíguas
Abreviações que os leitores decodificam visualmente se transformam em armadilhas de pronúncia incorreta para a síntese de fala. Diferentes mecanismos de síntese de fala tratam as abreviações de maneiras inconsistentes.
Dr.→ pode dizer 'Doutor' ou 'Drive'St.→ 'Santo' ou 'Rua'?vs.→ 'versus' ou 'vê esses'?etc.→ 'et cetera' ou 'etcê'?
Escreva as abreviações por extenso no texto destinado à síntese de fala para garantir a pronúncia correta.
TTS_ABBREVIATION_RULES = (
'When writing for text-to-speech:\n'
'- Write "Doctor" not "Dr."\n'
'- Write "Street" or "Saint" not "St."\n'
'- Write "versus" not "vs."\n'
'- Write "et cetera" not "etc."\n'
'- Write "for example" not "e.g."\n'
'- Write "that is" not "i.e."\n'
'- Write out years: "twenty twenty-five" not "2025" when narrated in prose\n'
'- Write out numbers under 10: "three" not "3" in conversational text\n'
'- Spell out acronyms on first use: '
'"Application Programming Interface, or API"\n'
)
print(TTS_ABBREVIATION_RULES)Palavras que causam pronúncias incorretas
Certas palavras ou padrões confundem constantemente os mecanismos de síntese de fala. Conheça-os e use alternativas:
- Homógrafos: 'read' (presente ou passado), 'lead' (metal ou guiar), 'wind' — a síntese de fala escolhe uma das pronúncias
- Nomes próprios incomuns: termos técnicos, nomes de marcas e palavras estrangeiras
- Números em contextos incomuns: versões de API, formatos de data e medidas
# Prompting LLM to detect and fix TTS pronunciation issues
TTS_REVIEW_PROMPT = (
'Review the following text for text-to-speech pronunciation issues.\n'
'Identify words that might be mispronounced by a TTS engine because they:\n'
'1. Are homographs with multiple pronunciations\n'
'2. Are technical terms, brand names, or foreign words\n'
'3. Are abbreviations or acronyms\n'
'4. Are numbers in unusual formats\n\n'
'For each issue, provide the original text and a TTS-safe replacement.\n\n'
'Text to review: {text}'
)
# Example issues and fixes
ISSUES = {
'She read the docs': 'She read (past tense - ambiguous) -> She finished reading the docs',
'Lead developer': 'Lead (metal or guide?) -> Lead (rhymes with feed) developer',
'API v2.3.1': 'v2.3.1 -> version 2 point 3 point 1',
'The .env file': 'dot E N V file (may say .env) -> the environment config file',
'Re-init': 'may say Ray-in-it -> reinitialize',
}
for problem, fix in ISSUES.items():
print(f'Issue: {problem}\nFix: {fix}\n')Números e datas para síntese de fala
Os números são uma grande fonte de estranheza na síntese de fala. Escreva-os de uma forma que não deixe dúvidas sobre como devem ser pronunciados.
NUMBER_TTS_RULES = (
'When writing numbers for TTS narration:\n'
'- Dates: write "January fifteenth, 2025" not "01/15/2025"\n'
'- Time: write "3 in the afternoon" not "15:00" in casual speech\n'
'- Percentages: write "forty-five percent" not "45%" in narration\n'
'- Large numbers: write "one point two million" not "1.2M"\n'
'- Phone numbers: spell with hyphens "555-123-4567" (TTS reads each digit)\n'
'- Currency: write "twelve dollars and fifty cents" not "$12.50" in speech\n'
'- Fractions: write "three quarters" not "3/4"\n'
'- Ordinals: write "first" not "1st" (TTS may say "one S T")\n'
)
# Apply when prompting the LLM to generate TTS scripts
TTS_SCRIPT_PROMPT = (
'Write a 30-second product announcement for text-to-speech.\n'
'Product: TaskFlow Pro, $49/month, 10,000 users worldwide, '
'launched January 2025.\n\n'
+ NUMBER_TTS_RULES
)Remoção da formatação visual
A formatação Markdown e HTML é silenciosa para os olhos, mas alguns mecanismos de síntese de fala a pronunciam em voz alta. Asteriscos, sinais de cerquilha e sinais de maior e menor devem ser removidos ou substituídos por equivalentes falados.
TTS_FORMAT_CONVERSION_PROMPT = (
'Convert the following markdown text into plain prose suitable '
'for text-to-speech narration.\n\n'
'Rules:\n'
'- Remove all markdown formatting (**, *, #, -, etc.)\n'
'- Convert bullet lists into spoken sequences '
'("First... Second... Third...")\n'
'- Convert headers into topic introduction sentences\n'
'- Remove any hyperlinks or URLs\n'
'- Convert code snippets into descriptions '
'("a Python function that...")\n\n'
'Markdown text:\n'
'{markdown_text}'
)
EXAMPLE_MARKDOWN = (
'## Getting Started\n'
'- Install the package with 'pip install mylib'\n'
'- Set your **API key** in '.env'\n'
'- Run 'python main.py' to start\n'
)
EXAMPLE_TTS = (
'To get started, install the package using pip. '
'Next, set your API key in your environment configuration file. '
'Finally, run the main Python script to start.'
)
print(EXAMPLE_TTS)Controle do ritmo com frases de transição
No texto escrito, a estrutura visual, como parágrafos e cabeçalhos, orienta o leitor. No áudio de síntese de fala, você precisa de frases de transição faladas para ajudar os ouvintes a acompanhar a estrutura.
TRANSITION_PHRASES = {
'starting_new_topic': ['Let us now talk about', 'Moving on to', 'Next,'],
'adding_information': ['Additionally,', 'Also worth noting,', 'Furthermore,'],
'contrasting': ['However,', 'On the other hand,', 'That said,'],
'concluding': ['To summarize,', 'In short,', 'To wrap up,'],
'sequencing': ['First,', 'Second,', 'Then,', 'Finally,'],
'emphasizing': ['Importantly,', 'Keep in mind that', 'Note that'],
}
TTS_STRUCTURE_PROMPT = (
'Write a two-minute explainer on {topic} for text-to-speech narration.\n'
'Use verbal transition phrases to guide listeners through each point. '
'Avoid headers or bullet points. '
'Structure the content with clear spoken signposts '
'("First...", "Moving on...", "To summarize...").'
)
print('Available transitions:')
for category, phrases in TRANSITION_PHRASES.items():
print(f' {category}: {phrases[0]}')Testando seu texto para síntese de fala
O único teste confiável da qualidade da síntese de fala é ouvir o resultado. Crie um ciclo de teste e escuta: gerar o texto → enviá-lo à API de síntese de fala → ouvir → repetir. Não dependa da leitura visual do texto.
import openai
import pathlib
client = openai.OpenAI(api_key='sk-...')
def generate_and_test_tts(text, output_file='test_audio.mp3'):
"""Generate TTS audio from text for auditory review."""
response = client.audio.speech.create(
model='tts-1-hd',
voice='alloy', # alloy, echo, fable, onyx, nova, shimmer
input=text,
speed=1.0 # 0.25 to 4.0
)
audio_path = pathlib.Path(output_file)
response.stream_to_file(audio_path)
print(f'Audio saved to {audio_path}')
print(f'Text length: {len(text)} chars, {len(text.split())} words')
return audio_path
# Generate and listen before shipping
tts_text = (
'Welcome to our weekly update. '
'This week, the engineering team shipped three major features. '
'First, we improved search speed by forty percent. '
'Second, we added support for twelve new languages. '
'Third, we launched our new mobile application.'
)
path = generate_and_test_tts(tts_text)Seleção de voz e correspondência de instruções
Diferentes vozes de síntese de fala têm pontos fortes distintos. Combine a voz com o tom do conteúdo:
- Acolhedora/narrativa: narração de histórias e conteúdo educacional
- Profissional/neutra: relatórios empresariais e documentação técnica
- Energética/brilhante: marketing, demonstrações de produtos e notificações
Instrua o LLM a escrever um conteúdo que corresponda ao registro natural da voz.
VOICE_SPECIFIC_PROMPTS = {
'professional': (
'Write in a clear, neutral, professional tone. '
'Use complete sentences. Avoid contractions. '
'Suitable for business reports and documentation.'
),
'warm_narrative': (
'Write in a warm, engaging, conversational tone. '
'Use contractions naturally. '
'Speak directly to the listener using "you" and "we". '
'Suitable for educational content and storytelling.'
),
'energetic': (
'Write in an upbeat, enthusiastic tone. '
'Use shorter sentences for impact. '
'Include emphasis words like "amazing", "incredible", "now". '
'Suitable for marketing and product announcements.'
),
}
# Select based on use case
use_case = 'warm_narrative'
print(VOICE_SPECIFIC_PROMPTS[use_case])Projeto do fluxo de LLM para síntese de fala
Em um fluxo de produção, um LLM gera texto que depois é enviado a um mecanismo de síntese de fala. Os dois precisam ser coordenados: o LLM deve saber que está gerando conteúdo para síntese de fala, e não para leitura, e qualquer instrução do sistema ou pós-processamento deve impor regras adequadas à síntese de fala antes que o texto chegue à API de síntese de fala.
Adicione uma etapa leve de pós-processamento entre a saída do LLM e a entrada da síntese de fala: aplique strip a qualquer Markdown que tenha passado, expanda as abreviações e verifique o comprimento das frases. Isso detecta erros de formatação do LLM antes que se transformem em artefatos de áudio.
Verificação de conhecimento: estrutura de frases para síntese de fala
Qual dos textos a seguir está melhor formatado para uma narração de síntese de fala?
Recapitulação: padrões de instruções para uma fala natural
O texto para síntese de fala deve ser escrito para os ouvidos, não para os olhos. Regras principais: mantenha as frases entre 10 e 20 palavras, use apenas pontos finais e vírgulas para controlar o ritmo, escreva todas as abreviações e os números por extenso, remova toda a formatação Markdown e visual e use frases de transição faladas para substituir a estrutura visual. Homógrafos, termos técnicos e formatos incomuns de números causam pronúncias incorretas: detecte-os e substitua-os. Sempre faça o teste ouvindo o áudio gerado, não lendo o texto.
Aprenda AI Prompt Engineering com um tutor de IA — grátis
Escreva e execute código real no seu navegador, obtenha ajuda instantânea de um tutor de IA 24/7 e continue de onde parou na web ou no app.
- Cursos
- 53
- Aulas
- 199
Perguntas Frequentes
A aula “Padrões de prompts TTS para fala natural” é grátis?
Sim — o texto completo de “Padrões de prompts TTS para fala natural” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de AI Prompt Engineering, atualize para CoddyKit PRO. O curso de AI Prompt Engineering inclui 4 aulas no total.
O que vou aprender em “Padrões de prompts TTS para fala natural”?
Estrutura de frases, pontuação e indicações de ritmo que melhoram a saída do TTS. Você pratica AI Prompt Engineering com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar AI Prompt Engineering?
Nenhuma experiência prévia é necessária. AI Prompt Engineering no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 1 de 4.
Quanto tempo leva a aula “Padrões de prompts TTS para fala natural”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de AI Prompt Engineering?
Sim. Cada aula de AI Prompt Engineering inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Padrões de prompts TTS para fala natural
- SSML e controle da prosódia
- Design de personas para IA de voz
- Agentes multimodais de voz e texto