MIF_E31222851/README_TTS_VOICES.md

167 lines
4.2 KiB
Markdown

# 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
```php
'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
```javascript
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`:
```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`:
```javascript
// 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
```bash
# 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:
```javascript
// 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