0Pricing
AI Prompt Engineering · Pelajaran

Pola Prompt TTS untuk Ucapan Alami

Struktur kalimat, tanda baca, dan petunjuk tempo yang meningkatkan output TTS.

Pola Prompt TTS untuk Ucapan Alami adalah pelajaran AI Prompt Engineering gratis di CoddyKit. Ini adalah pelajaran 1 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar AI Prompt Engineering, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus AI Prompt Engineering mencakup 4 pelajaran total.

Mengapa Pemberian Prompt TTS Berbeda

Sistem Text-to-Speech mengubah teks Anda menjadi audio secara harfiah. Tidak seperti teks visual yang dapat dibaca ulang oleh pembaca saat menemukan bagian yang membingungkan, pendengar mengalami audio secara linear dan tidak dapat berhenti sejenak untuk menguraikan kalimat yang ambigu.

Menulis untuk TTS berarti memikirkan bagaimana kata-kata terdengar — ritme, panjang kalimat, ambiguitas pelafalan, serta tidak adanya pemformatan visual seperti teks tebal atau poin-poin.

Panjang Kalimat: Lebih Pendek Lebih Baik

Kalimat panjang dan rumit dengan banyak klausa sulit diikuti dalam audio. Sistem TTS sering memutus ritme pada titik yang benar secara tata bahasa, tetapi janggal secara akustik. Usahakan kalimat terdiri dari 10–20 kata agar ucapan terdengar alami.

# 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.'
)

Tanda Baca sebagai Petunjuk Audio

Mesin TTS menggunakan tanda baca untuk mengatur jeda:

  • Titik (.): Akhir kalimat, jeda lebih panjang
  • Koma (,): Jeda singkat
  • Tanda tanya (?): Intonasi menaik
  • Tanda seru (!): Penekanan dan energi
  • Titik koma (;): Perilakunya berbeda-beda pada setiap mesin — sering diabaikan
  • Garis pisah panjang (—): Sering menyebabkan jeda yang janggal — hindari

Gunakan titik secara eksplisit, bukan garis pisah panjang atau titik koma, agar ritme dapat diatur secara konsisten.

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)

Menghindari Singkatan yang Ambigu

Singkatan yang dapat diuraikan pembaca secara visual dapat menyebabkan kesalahan pelafalan oleh TTS. Setiap mesin TTS menangani singkatan secara berbeda-beda.

  • Dr. → mungkin dibaca 'Doctor' atau 'Drive'
  • St. → 'Saint' atau 'Street'?
  • vs. → 'versus' atau 'vs'?
  • etc. → 'et cetera' atau 'etcee'?

Tuliskan singkatan secara lengkap dalam teks TTS untuk memastikan pelafalan yang benar.

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)

Kata-Kata yang Menyebabkan Kesalahan Pelafalan

Kata atau pola tertentu secara konsisten menyulitkan mesin TTS. Kenali kata-kata tersebut dan gunakan alternatifnya:

  • Homograf: 'read' (masa kini atau lampau), 'lead' (logam atau membimbing), 'wind' — TTS akan memilih salah satu pelafalan
  • Nama diri yang jarang ditemui: Istilah teknis, nama merek, kata asing
  • Angka dalam konteks yang tidak umum: Versi API, format tanggal, pengukuran
# 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')

Angka dan Tanggal untuk TTS

Angka merupakan sumber utama kejanggalan pada TTS. Tulislah angka dengan cara yang tidak menimbulkan keraguan tentang cara membacanya.

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
)

Menghapus Pemformatan Visual

Pemformatan Markdown dan HTML tidak terlihat oleh mata, tetapi dapat dibacakan oleh beberapa mesin TTS. Tanda bintang, tanda pagar, dan tanda kurung sudut harus dihapus atau diganti dengan padanan yang diucapkan.

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)

Mengatur Ritme dengan Frasa Transisi

Dalam teks tertulis, struktur visual (paragraf, judul) membantu pembaca. Dalam audio TTS, Anda memerlukan frasa transisi yang diucapkan untuk membantu pendengar mengikuti strukturnya.

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

Menguji Teks TTS Anda

Satu-satunya pengujian yang dapat diandalkan untuk kualitas TTS adalah mendengarkannya. Buat siklus uji-dengar: buat teks → kirim ke API TTS → dengarkan → ulangi. Jangan mengandalkan pembacaan teks secara visual.

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)

Pemilihan Suara dan Pencocokan Prompt

Setiap suara TTS memiliki keunggulan yang berbeda. Sesuaikan suara dengan nuansa konten Anda:

  • Hangat/naratif: Penceritaan, konten edukatif
  • Profesional/netral: Laporan bisnis, dokumentasi teknis
  • Energik/cerah: Pemasaran, demonstrasi produk, notifikasi

Berikan prompt kepada LLM agar menulis konten yang sesuai dengan ragam bahasa alami suara tersebut.

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

Desain Pipeline LLM-ke-TTS

Dalam pipeline produksi, LLM menghasilkan teks yang kemudian diteruskan ke mesin TTS. Keduanya harus dikoordinasikan: LLM harus mengetahui bahwa teks tersebut dibuat untuk TTS (bukan untuk dibaca), dan setiap prompt sistem atau pemrosesan pasca harus menerapkan aturan yang sesuai untuk TTS sebelum teks mencapai API TTS.

Tambahkan langkah pemrosesan pasca yang ringan di antara keluaran LLM dan masukan TTS: hapus Markdown yang masih lolos, uraikan singkatan, dan periksa panjang kalimat. Langkah ini menangkap kesalahan pemformatan LLM sebelum menjadi artefak audio.

Uji Pemahaman: Struktur Kalimat TTS

Manakah dari teks berikut yang paling baik diformat untuk narasi text-to-speech?

Ringkasan: Pola Prompt TTS untuk Ucapan Alami

Teks TTS harus ditulis untuk didengar, bukan untuk dilihat. Aturan utamanya: batasi kalimat hingga 10–20 kata, gunakan hanya titik dan koma untuk mengatur ritme, tuliskan semua singkatan dan angka secara lengkap, hapus semua Markdown dan pemformatan visual, serta gunakan frasa transisi yang diucapkan untuk menggantikan struktur visual. Kata homograf, istilah teknis, dan format angka yang tidak umum dapat menyebabkan kesalahan pelafalan — kenali dan ganti kata-kata tersebut. Selalu lakukan pengujian dengan mendengarkan audio yang dihasilkan, bukan dengan membaca teksnya.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Pola Prompt TTS untuk Ucapan Alami” gratis?

Ya — teks lengkap “Pola Prompt TTS untuk Ucapan Alami” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus AI Prompt Engineering, upgrade ke CoddyKit PRO. Kursus AI Prompt Engineering mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Pola Prompt TTS untuk Ucapan Alami”?

Struktur kalimat, tanda baca, dan petunjuk tempo yang meningkatkan output TTS. Kamu berlatih AI Prompt Engineering dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai AI Prompt Engineering?

Tidak diperlukan pengalaman sebelumnya. AI Prompt Engineering di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 1 dari 4.

Berapa lama pelajaran “Pola Prompt TTS untuk Ucapan Alami” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran AI Prompt Engineering ini?

Ya. Setiap pelajaran AI Prompt Engineering menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Pola Prompt TTS untuk Ucapan Alami
  2. SSML dan Pengendalian Prosodi
  3. Merancang Persona Kecerdasan Buatan Suara
  4. Agen Suara dan Teks Multimodal
← Kembali ke AI Prompt Engineering