Menambahkan Text-to-Speech ke Svelte
Pelajari cara menambahkan text-to-speech berkualitas tinggi yang hemat biaya ke aplikasi Svelte Anda dengan TTS2Go, memadukan TTS browser sebagai cadangan dengan audio AI.

Svelte dibangun dengan mengutamakan kesederhanaan dan performa, dan menambahkan text-to-speech (TTS) ke aplikasi Svelte bisa sama mudahnya.
Entah Anda ingin membuat konten lebih aksesibel, membangun pengalaman membaca lewat audio, atau menambahkan umpan balik suara, TTS bisa diintegrasikan dalam hitungan menit. Panduan ini menjelaskan cara kerja suara browser, untung-rugi berbagai pendekatan TTS, dan cara menjalankan TTS2Go di proyek Svelte Anda.
Cara Kerja Sintesis Suara di Browser
Browser modern menyertakan Web Speech API, yang memungkinkan Anda memanggil window.speechSynthesis.speak() dengan SpeechSynthesisUtterance untuk membacakan teks.
Karakteristik utamanya:
- Tanpa dependensi: Semuanya berjalan di browser.
- Tanpa API key atau panggilan server: Tidak perlu integrasi backend.
- Tanpa biaya: Memakai suara sistem bawaan.
Namun, ada kekurangannya:
- Kualitas kaku dan tidak konsisten: Suara sering terdengar sintetis.
- Bergantung pada platform: Suara berbeda antara Chrome dan Firefox, macOS dan Windows.
- Pilihan suara terbatas: Lebih sedikit bahasa dan gaya dibanding TTS AI modern.
Kebangkitan Suara Buatan AI
Model text-to-speech neural menghasilkan audio yang terdengar alami dengan intonasi dan tempo yang realistis. Model ini mendukung banyak bahasa, aksen, dan gaya suara, sehingga ideal untuk narasi dan pengalaman suara berkualitas produksi.
Untung-ruginya:
- Kelebihan:
- Audio alami berkualitas tinggi
- Cakupan bahasa dan suara yang luas
- Suara konsisten di semua perangkat dan browser
- Kekurangan:
- Biaya: Anda membayar per karakter atau per detik audio yang dibuat.
- Panggilan API: Membutuhkan integrasi di sisi server atau di sisi klien yang terautentikasi.
Ini memunculkan pertanyaan desain: bagaimana menyeimbangkan kualitas audio dengan biaya pembuatan, sekaligus mengatur kapan audio dibuat?
Membuat Audio di Muka
Salah satu pendekatan adalah membuat audio untuk semua konten lebih dulu dan meng-host-nya di CDN.
Cara kerjanya:
- Ubah semua konten teks menjadi file audio sejak awal.
- Unggah dan sajikan file tersebut dari CDN.
- Pengguna mendapat pemutaran instan tanpa jeda pembuatan.
Kelebihan:
- Pemutaran instan untuk setiap pengunjung
- Audio berkualitas tinggi yang konsisten
- Perilaku runtime yang sederhana (cukup memutar file)
Kekurangan:
- Anda membayar pembuatan audio untuk konten yang mungkin tidak pernah diputar.
- Semua konten harus sudah diketahui sebelumnya.
- Setiap perubahan konten membutuhkan pembuatan ulang.
- Biaya penyimpanan dan CDN ikut naik seiring volume konten.
Untuk konten dinamis atau yang sering diperbarui, cara ini cepat menjadi mahal dan merepotkan secara operasional.
Pembuatan Lazy Sesuai Permintaan
Strategi lain adalah pembuatan sesuai permintaan (lazy), di mana audio hanya dibuat saat pengguna benar-benar menekan tombol putar.
Cara kerjanya:
- Saat pengguna meminta audio untuk sebuah konten, Anda memanggil API TTS.
- Audio yang dihasilkan di-cache atau disimpan.
- Permintaan berikutnya memakai ulang audio dari cache.
Kelebihan:
- Jauh lebih hemat: Anda hanya membayar konten yang benar-benar didengarkan pengguna.
- Secara alami mendukung konten dinamis dan konten buatan pengguna.
- Mengurangi pembuatan audio yang sia-sia untuk konten yang tidak dipakai.
Tantangan:
- Tanpa kontrol, siapa pun bisa memicu pembuatan audio yang mahal.
- Anda perlu cara untuk menentukan konten mana yang mendapat audio dan kapan.
- Anda harus menyeimbangkan pengalaman pengguna (jeda awal) dengan kontrol anggaran.
Cara TTS2Go Mengatasinya
TTS2Go memadukan TTS browser dan TTS AI untuk menyeimbangkan kualitas, biaya, dan kesederhanaan.
Ide utamanya:
- Key sisi klien yang aman
- Anda menambahkan SDK TTS2Go ke situs dengan API key frontend.
Langkah 1: Instal SDK
Instal paket Svelte TTS2Go:
npm install @tts2go/svelte
Paket ini bekerja dengan Svelte 5 dan menyatu secara alami dengan model reaktivitas Svelte.
Langkah 2: Buat Client
Inisialisasi client TTS2Go dengan kredensial proyek Anda. Di Svelte, Anda bisa membuat client langsung di komponen atau di modul bersama.
import { createTTS2GoClient } from "@tts2go/svelte";
const client = createTTS2GoClient({
apiKey: "your-api-key",
projectId: "your-project-id",
});
- apiKey: Key TTS2Go publik Anda yang aman dipakai di frontend.
- projectId: Menentukan proyek TTS2Go mana yang dipakai untuk pembuatan audio, persetujuan, dan analitik.
Langkah 3: Tambahkan Text-to-Speech di Svelte
Gunakan createTTS untuk mendapatkan store reaktif dengan kontrol pemutaran dan status.
import { createTTS2GoClient, createTTS } from "@tts2go/svelte";
const client = createTTS2GoClient({
apiKey: "your-api-key",
projectId: "your-project-id",
});
const VOICE_ID = "your-voice-id";
const text = "Hello from TTS2Go in Svelte!";
const tts = createTTS(client, text, VOICE_ID);
let status = $state("idle");
const unsubscribe = tts.status.subscribe((s) => (status = s));
function handleClick() {
if (status === "playing" || status === "fallback") {
tts.stop();
} else {
tts.play();
}Apa Selanjutnya?
Dari sini, Anda bisa:
- Menjelajahi pemilihan suara agar sesuai dengan brand atau jenis konten Anda.
- Menggunakan SSML untuk kontrol detail atas pelafalan, jeda, dan penekanan.
- Mengintegrasikan API penyorotan teks untuk menyinkronkan teks dengan audio yang diucapkan.
Untuk dokumentasi Svelte lengkap dan contoh lanjutan, kunjungi:
https://tts2go.com/docs/svelte