4.2 KiB
4.2 KiB
TTS Voice Configuration untuk Bahasa Indonesia
Google Cloud Text-to-Speech API
Suara Indonesia yang Tersedia
Google TTS API menyediakan beberapa opsi suara untuk bahasa Indonesia:
1. Wavenet Voices (Lebih Natural)
id-ID-Wavenet-A
- Suara wanita Indonesia yang natural dan fasih ⭐ DIGUNAKAN SAAT INIid-ID-Wavenet-B
- Suara pria Indonesia yang naturalid-ID-Wavenet-C
- Suara wanita Indonesia alternatifid-ID-Wavenet-D
- Suara pria Indonesia alternatif
2. Standard Voices (Lebih Cepat)
id-ID-Standard-A
- Suara wanita Indonesia standarid-ID-Standard-B
- Suara pria Indonesia standarid-ID-Standard-C
- Suara wanita Indonesia alternatifid-ID-Standard-D
- Suara pria Indonesia alternatif
Konfigurasi Saat Ini
'voice' => [
'languageCode' => 'id-ID',
'name' => 'id-ID-Wavenet-A', // Suara wanita Indonesia yang natural
'ssmlGender' => 'FEMALE'
],
'audioConfig' => [
'audioEncoding' => 'MP3',
'speakingRate' => 0.85, // Sedikit lebih cepat untuk alur yang natural
'pitch' => 0,
'volumeGainDb' => 0
]
Keunggulan Wavenet vs Standard
Wavenet Voices:
- ✅ Suara lebih natural dan manusiawi
- ✅ Intonasi yang lebih baik
- ✅ Pengucapan yang lebih akurat
- ⚠️ Lebih lambat dalam generate
- ⚠️ Lebih mahal (2x lipat)
Standard Voices:
- ✅ Lebih cepat dalam generate
- ✅ Lebih murah
- ⚠️ Suara lebih robotik
- ⚠️ Intonasi kurang natural
Browser Speech Synthesis API
Konfigurasi Saat Ini
utterance.lang = 'id-ID';
utterance.rate = 0.85; // Sedikit lebih cepat untuk alur yang natural
utterance.volume = 1.0;
// Mencoba memilih suara wanita Indonesia jika tersedia
const voices = speechSynthesis.getVoices();
const indonesianVoice = voices.find(voice =>
voice.lang === 'id-ID' &&
voice.name.toLowerCase().includes('female')
) || voices.find(voice => voice.lang === 'id-ID');
if (indonesianVoice) {
utterance.voice = indonesianVoice;
}
Suara Browser yang Tersedia
Browser TTS bergantung pada sistem operasi:
Windows:
- Microsoft Zira Desktop (English, tapi bisa digunakan)
- Microsoft David Desktop (English, tapi bisa digunakan)
macOS:
- Siri (Female)
- Tom (Male)
Linux:
- Festival voices
- eSpeak voices
Cara Mengubah Suara
1. Mengubah Google TTS Voice
Edit file app/Services/TTSService.php
:
'voice' => [
'languageCode' => 'id-ID',
'name' => 'id-ID-Wavenet-B', // Ganti dengan suara yang diinginkan
'ssmlGender' => 'FEMALE'
],
2. Mengubah Browser TTS Voice
Edit file resources/views/display/index.blade.php
dan resources/views/admin/poli/index.blade.php
:
// Untuk memilih suara tertentu
const voices = speechSynthesis.getVoices();
const specificVoice = voices.find(voice => voice.name === 'Nama Suara Spesifik');
if (specificVoice) {
utterance.voice = specificVoice;
}
Testing Suara
1. Test Google TTS
# Pastikan API key sudah diset
echo "GOOGLE_TTS_API_KEY=your_api_key_here" >> .env
# Test via artisan command (buat sendiri)
php artisan tts:test "Nomor antrian 001, silakan menuju ke Poli Umum"
2. Test Browser TTS
Buka browser console dan jalankan:
// Test browser TTS
const utterance = new SpeechSynthesisUtterance("Nomor antrian 001, silakan menuju ke Poli Umum");
utterance.lang = 'id-ID';
utterance.rate = 0.85;
speechSynthesis.speak(utterance);
// Lihat suara yang tersedia
speechSynthesis.getVoices().forEach(voice => {
console.log(`${voice.name} - ${voice.lang}`);
});
Rekomendasi
- Untuk Produksi: Gunakan
id-ID-Wavenet-A
(suara wanita natural) - Untuk Testing: Gunakan
id-ID-Standard-A
(lebih cepat dan murah) - Fallback: Browser TTS dengan konfigurasi yang sudah dioptimalkan
Troubleshooting
Suara Google TTS Tidak Berfungsi
- Periksa API key di
.env
- Pastikan billing Google Cloud aktif
- Periksa quota API
Suara Browser TTS Tidak Berfungsi
- Periksa browser support untuk
speechSynthesis
- Pastikan sistem operasi memiliki TTS engine
- Coba browser berbeda (Chrome, Firefox, Safari)
Suara Terdengar Robotik
- Gunakan Wavenet voices untuk Google TTS
- Sesuaikan
speakingRate
(0.8 - 1.0) - Pastikan teks menggunakan bahasa Indonesia yang benar