TTS-promptmönster för naturligt tal
Meningsstruktur, interpunktion och tempomarkörer som förbättrar TTS-utdata.
TTS-promptmönster för naturligt tal är en gratis lektion i AI-promptteknik på CoddyKit. Detta är lektion 1 av 4. Du kan läsa vilka 3 lektioner som helst i den här lärvägen kostnadsfritt i sin helhet – därefter låser CoddyKit PRO upp alla lektioner, plus praktisk övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Den ingår i lärvägen för AI-promptteknik, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i AI-promptteknik innehåller totalt 4 lektioner.
Varför promptning för TTS är annorlunda
Text-till-tal-system omvandlar text till ljud bokstavligen. Till skillnad från visuell text, där läsaren kan läsa om förvirrande delar, upplever lyssnaren ljudet linjärt och kan inte stanna upp för att tolka en tvetydig mening.
Att skriva för TTS innebär att tänka på hur orden låter. Ta hänsyn till rytm, meningslängd, tvetydigt uttal och avsaknaden av visuell formatering som fetstil eller punktlistor.
Kortare meningar är bättre
Långa och komplexa meningar med flera bisatser är svåra att följa i ljud. TTS-system bryter ofta rytmen vid punkter som är grammatiskt korrekta men låter onaturliga. Sikta på meningar med 10–20 ord för ett naturligt tal.
# 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.'
)Skiljetecken som ljudsignaler
TTS-motorer använder skiljetecken för att styra tempot:
- Punkt (.): Avslutning och längre paus
- Komma (,): Kort paus
- Frågetecken (?): Stigande intonation
- Utropstecken (!): Betoning och energi
- Semikolon (;): Beteendet varierar mellan motorer och ignoreras ofta
- Tankstreck (—): Orsakar ofta onaturliga pauser och bör undvikas
Använd uttryckliga punkter i stället för tankstreck eller semikolon för att styra tempot på ett tillförlitligt sätt.
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)Undvik tvetydiga förkortningar
Förkortningar som läsare tolkar visuellt kan leda till feluttal i TTS. Olika TTS-motorer hanterar förkortningar på olika sätt.
Dr.→ kan uttalas som 'Doctor' eller 'Drive'St.→ 'Saint' eller 'Street'?vs.→ 'versus' eller 'vs'?etc.→ 'et cetera' eller 'etcee'?
Skriv ut förkortningar i TTS-texten för att säkerställa rätt uttal.
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)Ord som orsakar feluttal
Vissa ord eller mönster får regelbundet TTS-motorer att uttala fel. Lär känna dem och använd alternativ:
- Homografer: 'read' (presens respektive dåtid), 'lead' (metall respektive vägleda), 'wind' — TTS väljer ett av uttalen
- Ovanliga egennamn: Tekniska termer, varumärkesnamn och främmande ord
- Tal i ovanliga sammanhang: API-versioner, datumformat och måttenheter
# 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')Tal och datum för TTS
Tal är en stor källa till onaturligt TTS-ljud. Skriv dem på ett sätt som inte lämnar någon tvekan om hur de ska uttalas.
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
)Ta bort visuell formatering
Markdown- och HTML-formatering är tyst för ögat, men läses upp av vissa TTS-motorer. Asterisker, hashtecken och vinkelparenteser måste tas bort eller ersättas med motsvarande uttalade formuleringar.
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)Styr tempot med övergångsfraser
I skriven text hjälper visuell struktur, som stycken och rubriker, läsaren. I TTS-ljud behöver ni använda verbala övergångsfraser för att hjälpa lyssnarna att följa strukturen.
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]}')Testa TTS-texten
Det enda tillförlitliga sättet att testa TTS-kvalitet är att lyssna på resultatet. Bygg en loop för testning och lyssning: generera text → skicka den till TTS-API:t → lyssna → iterera. Förlita er inte på att läsa texten visuellt.
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)Välj röst och anpassa prompten
Olika TTS-röster har olika styrkor. Anpassa rösten efter innehållets ton:
- Varm och berättande: Berättelser och utbildningsinnehåll
- Professionell och neutral: Affärsrapporter och teknisk dokumentation
- Energisk och livfull: Marknadsföring, produktdemonstrationer och aviseringar
Instruera LLM:en att skriva innehåll som passar röstens naturliga register.
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])Design av LLM-till-TTS-pipelinen
I en produktionspipeline genererar en LLM text som sedan skickas till en TTS-motor. De två delarna måste samordnas. LLM:en måste veta att texten genereras för TTS, inte för läsning, och systemprompten eller efterbearbetningen måste tillämpa TTS-vänliga regler innan texten når TTS-API:t.
Lägg till ett enkelt efterbearbetningssteg mellan LLM-utdata och TTS-indata. Ta bort eventuell markdown som slunkit igenom, skriv ut förkortningar och kontrollera meningslängden. På så sätt fångas formateringsfel från LLM:en upp innan de blir ljudartefakter.
Kunskapskontroll: meningsstruktur för TTS
Vilken av följande texter är bäst formaterad för text-till-tal-narration?
Sammanfattning: TTS-promptmönster för naturligt tal
TTS-text måste skrivas för örat, inte ögat. Viktiga regler: håll meningarna till 10–20 ord, använd endast punkter och komman för att styra tempot, skriv ut alla förkortningar och tal, ta bort all markdown och visuell formatering och använd verbala övergångsfraser i stället för visuell struktur. Ord som homografer, tekniska termer och ovanliga talformat orsakar feluttal. Upptäck och ersätt dem. Testa alltid genom att lyssna på det genererade ljudet, inte genom att läsa texten.
Lär dig AI-promptteknik med en AI-lärare – gratis
Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.
- Kurser
- 53
- Lektioner
- 199
Vanliga frågor
Är lektionen ”TTS-promptmönster för naturligt tal” gratis?
Ja – du kan läsa vilka 3 lektioner som helst i lärvägen AI-promptteknik, inklusive ”TTS-promptmönster för naturligt tal”, kostnadsfritt i sin helhet här på webben. Därefter låser CoddyKit PRO upp alla lektioner, plus interaktiv övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Kursen i AI-promptteknik innehåller totalt 4 lektioner.
Vad lär jag mig i ”TTS-promptmönster för naturligt tal”?
Meningsstruktur, interpunktion och tempomarkörer som förbättrar TTS-utdata. Ni övar på AI-promptteknik med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.
Behöver jag någon erfarenhet för att börja lära mig AI-promptteknik?
Du behöver inga förkunskaper. Utbildningen i AI-promptteknik på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 1 av 4.
Hur lång tid tar lektionen ”TTS-promptmönster för naturligt tal”?
De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.
Kan jag skriva och köra kod i den här AI-promptteknik-lektionen?
Ja. Varje AI-promptteknik-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.
Alla lektioner i den här kursen
- TTS-promptmönster för naturligt tal
- SSML och prosodikontroll
- Utforma personas för röstbaserad AI
- Multimodala röst- och textagenter