MIF_E31222851/README_TTS_VOICES.md

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 INI
  • id-ID-Wavenet-B - Suara pria Indonesia yang natural
  • id-ID-Wavenet-C - Suara wanita Indonesia alternatif
  • id-ID-Wavenet-D - Suara pria Indonesia alternatif

2. Standard Voices (Lebih Cepat)

  • id-ID-Standard-A - Suara wanita Indonesia standar
  • id-ID-Standard-B - Suara pria Indonesia standar
  • id-ID-Standard-C - Suara wanita Indonesia alternatif
  • id-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

  1. Untuk Produksi: Gunakan id-ID-Wavenet-A (suara wanita natural)
  2. Untuk Testing: Gunakan id-ID-Standard-A (lebih cepat dan murah)
  3. Fallback: Browser TTS dengan konfigurasi yang sudah dioptimalkan

Troubleshooting

Suara Google TTS Tidak Berfungsi

  1. Periksa API key di .env
  2. Pastikan billing Google Cloud aktif
  3. Periksa quota API

Suara Browser TTS Tidak Berfungsi

  1. Periksa browser support untuk speechSynthesis
  2. Pastikan sistem operasi memiliki TTS engine
  3. Coba browser berbeda (Chrome, Firefox, Safari)

Suara Terdengar Robotik

  1. Gunakan Wavenet voices untuk Google TTS
  2. Sesuaikan speakingRate (0.8 - 1.0)
  3. Pastikan teks menggunakan bahasa Indonesia yang benar