0Pricing
AI Prompt Engineering · Lección

Patrones de prompts TTS para un habla natural

Estructura de las frases, puntuación e indicaciones de ritmo que mejoran la salida de TTS.

Patrones de prompts TTS para un habla natural es una lección gratuita de AI Prompt Engineering en CoddyKit. Esta es la lección 1 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de AI Prompt Engineering, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de AI Prompt Engineering incluye 4 lecciones en total.

Por qué los prompts de TTS son diferentes

Los sistemas de texto a voz convierten literalmente su texto en audio. A diferencia del texto visual, en el que los lectores pueden releer las partes confusas, los oyentes experimentan el audio de forma lineal y no pueden detenerse para descifrar una frase ambigua.

Escribir para TTS implica pensar en cómo suenan las palabras: el ritmo, la longitud de las frases, la ambigüedad de la pronunciación y la ausencia de formato visual, como negrita o viñetas.

Longitud de las frases: cuanto más cortas, mejor

Las frases largas y complejas, con varias cláusulas, son difíciles de seguir en audio. Los sistemas TTS suelen romper el ritmo en puntos gramaticalmente correctos, pero poco naturales desde el punto de vista acústico. Procure que las frases tengan entre 10 y 20 palabras para lograr un discurso 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.'
)

La puntuación como señal de audio

Los motores TTS utilizan la puntuación para controlar el ritmo:

  • Punto (.): cierre completo y pausa más larga
  • Coma (,): pausa breve
  • Signo de interrogación (?): entonación ascendente
  • Signo de exclamación (!): énfasis y energía
  • Punto y coma (;): el comportamiento varía según el motor y a menudo se ignora
  • Raya larga (—): suele causar pausas poco naturales; evítela

Utilice puntos explícitos en lugar de rayas largas o puntos y coma para controlar el ritmo de forma fiable.

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)

Cómo evitar abreviaturas ambiguas

Las abreviaturas que los lectores descifran visualmente pueden provocar errores de pronunciación en TTS. Los distintos motores TTS gestionan las abreviaturas de forma incoherente.

  • Dr. → podría pronunciarse 'Doctor' o 'Drive'
  • St. → 'Saint' o 'Street'
  • vs. → 'versus' o 'vs'
  • etc. → 'et cetera' o 'etcee'

Escriba las abreviaturas completas en el texto para TTS para garantizar una pronunciación correcta.

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)

Palabras que provocan errores de pronunciación

Determinadas palabras o patrones hacen tropezar sistemáticamente a los motores TTS. Identifíquelos y utilice alternativas:

  • Homógrafos: 'read' (presente frente a pasado), 'lead' (metal frente a guiar), 'wind'. El TTS elige una de las pronunciaciones
  • Nombres propios poco frecuentes: términos técnicos, marcas y palabras extranjeras
  • Números en contextos inusuales: versiones de API, formatos de fecha y 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 y fechas para TTS

Los números son una de las principales fuentes de resultados poco naturales en TTS. Escríbalos de forma que no haya ninguna ambigüedad sobre cómo deben pronunciarse.

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
)

Eliminación del formato visual

El formato Markdown y HTML no se percibe visualmente, pero algunos motores TTS lo pronuncian en voz alta. Los asteriscos, signos de almohadilla y corchetes angulares deben eliminarse o sustituirse por equivalentes pronunciables.

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)

Ritmo mediante frases de transición

En el texto escrito, la estructura visual, como los párrafos y los encabezados, orienta al lector. En el audio TTS, necesita frases de transición verbales que ayuden a los oyentes a seguir la estructura.

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]}')

Pruebas del texto para TTS

La única prueba fiable de la calidad del TTS es escucharlo. Cree un ciclo de prueba y escucha: genere el texto → envíelo a la API de TTS → escúchelo → repita el proceso. No se base en leer el texto visualmente.

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)

Selección de voz y correspondencia con el prompt

Las distintas voces TTS tienen fortalezas diferentes. Adapte la voz al tono del contenido:

  • Cálida/narrativa: narración de historias y contenido educativo
  • Profesional/neutra: informes empresariales y documentación técnica
  • Energética/brillante: marketing, demostraciones de productos y notificaciones

Indique al LLM mediante un prompt que escriba contenido acorde con el registro natural de la 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])

Diseño de la canalización de LLM a TTS

En una canalización de producción, un LLM genera texto que después se pasa a un motor TTS. Ambos deben estar coordinados: el LLM debe saber que genera contenido para TTS, no para lectura, y cualquier prompt del sistema o procesamiento posterior debe imponer reglas compatibles con TTS antes de que el texto llegue a la API de TTS.

Añada un paso ligero de procesamiento posterior entre la salida del LLM y la entrada de TTS: elimine cualquier markdown que se haya filtrado, expanda las abreviaturas y compruebe la longitud de las frases. Así se corrigen los errores de formato del LLM antes de que se conviertan en artefactos de audio.

Compruebe sus conocimientos: estructura de las frases para TTS

¿Cuál de los siguientes textos tiene el formato más adecuado para una narración de texto a voz?

Resumen: patrones de prompts TTS para un discurso natural

El texto para TTS debe escribirse para el oído, no para la vista. Reglas clave: mantenga las frases entre 10 y 20 palabras, utilice únicamente puntos y comas para marcar el ritmo, escriba completas todas las abreviaturas y cifras, elimine todo el formato Markdown y visual, y utilice frases de transición verbales para sustituir la estructura visual. Los homógrafos, los términos técnicos y los formatos de números inusuales pueden causar errores de pronunciación. Identifíquelos y sustitúyalos. Pruebe siempre escuchando el audio generado, no leyendo el texto.

Preguntas frecuentes

¿La lección «Patrones de prompts TTS para un habla natural» es gratis?

Sí — el texto completo de «Patrones de prompts TTS para un habla natural» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de AI Prompt Engineering, actualiza a CoddyKit PRO. El curso de AI Prompt Engineering incluye 4 lecciones en total.

¿Qué aprenderé en «Patrones de prompts TTS para un habla natural»?

Estructura de las frases, puntuación e indicaciones de ritmo que mejoran la salida de TTS. Practicas AI Prompt Engineering con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar AI Prompt Engineering?

No se requiere experiencia previa. AI Prompt Engineering en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 1 de 4.

¿Cuánto tiempo toma la lección «Patrones de prompts TTS para un habla natural»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de AI Prompt Engineering?

Sí. Cada lección de AI Prompt Engineering incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Patrones de prompts TTS para un habla natural
  2. SSML y control de la prosodia
  3. Diseño de personalidades para IA de voz
  4. Agentes de voz y texto multimodales
← Volver a AI Prompt Engineering