#!/bin/bash # ๐ŸŽค Indonesian TTS Installation Script untuk Puskesmas # Script ini akan menginstall semua dependencies yang diperlukan untuk Indonesian TTS echo "๐Ÿš€ Memulai instalasi Indonesian TTS System..." echo "================================================" # Check if running as root if [ "$EUID" -eq 0 ]; then echo "โŒ Jangan jalankan script ini sebagai root/sudo" exit 1 fi # Check Python version echo "๐Ÿ” Memeriksa Python..." if command -v python3 &> /dev/null; then PYTHON_CMD="python3" echo "โœ… Python3 ditemukan: $(python3 --version)" elif command -v python &> /dev/null; then PYTHON_CMD="python" echo "โœ… Python ditemukan: $(python --version)" else echo "โŒ Python tidak ditemukan. Silakan install Python 3.7+ terlebih dahulu." exit 1 fi # Check pip echo "๐Ÿ” Memeriksa pip..." if ! command -v pip3 &> /dev/null && ! command -v pip &> /dev/null; then echo "โŒ pip tidak ditemukan. Silakan install pip terlebih dahulu." exit 1 fi # Install Python dependencies echo "๐Ÿ“ฆ Installing Python dependencies..." echo "Installing pyttsx3..." $PYTHON_CMD -m pip install pyttsx3 echo "Installing gTTS..." $PYTHON_CMD -m pip install gTTS echo "Installing Coqui TTS..." $PYTHON_CMD -m pip install TTS # Create necessary directories echo "๐Ÿ“ Membuat direktori yang diperlukan..." mkdir -p storage/app/tts_scripts mkdir -p storage/app/tts/models mkdir -p storage/app/public/audio/queue_calls # Set permissions echo "๐Ÿ” Setting permissions..." chmod -R 755 storage/app/tts_scripts chmod -R 755 storage/app/tts/models chmod -R 755 storage/app/public/audio # Download Indonesian TTS models (if available) echo "๐Ÿ“ฅ Downloading Indonesian TTS models..." MODEL_DIR="storage/app/tts/models" # Check if models already exist if [ -f "$MODEL_DIR/checkpoint.pth" ] && [ -f "$MODEL_DIR/config.json" ]; then echo "โœ… Model files sudah ada" else echo "โš ๏ธ Model files belum ada. Silakan download manual dari:" echo " https://huggingface.co/coqui/Indonesian-TTS" echo " Atau gunakan script download terpisah" fi # Create test script echo "๐Ÿงช Membuat test script..." cat > storage/app/tts_scripts/test_indonesian_tts.py << 'EOF' #!/usr/bin/env python3 """ Test script untuk Indonesian TTS """ import sys import os def test_pyttsx3(): try: import pyttsx3 print("โœ… pyttsx3: OK") return True except ImportError: print("โŒ pyttsx3: NOT FOUND") return False def test_gtts(): try: from gtts import gTTS print("โœ… gTTS: OK") return True except ImportError: print("โŒ gTTS: NOT FOUND") return False def test_coqui_tts(): try: import TTS print("โœ… Coqui TTS: OK") return True except ImportError: print("โŒ Coqui TTS: NOT FOUND") return False def test_models(): model_dir = "storage/app/tts/models" checkpoint = os.path.join(model_dir, "checkpoint.pth") config = os.path.join(model_dir, "config.json") if os.path.exists(checkpoint) and os.path.exists(config): print("โœ… Model files: OK") return True else: print("โŒ Model files: NOT FOUND") return False def main(): print("๐Ÿ” Testing Indonesian TTS Dependencies...") print("=" * 40) pyttsx3_ok = test_pyttsx3() gtts_ok = test_gtts() coqui_ok = test_coqui_tts() models_ok = test_models() print("=" * 40) if all([pyttsx3_ok, gtts_ok, coqui_ok, models_ok]): print("๐ŸŽ‰ Semua dependencies berhasil diinstall!") print("๐Ÿš€ Indonesian TTS siap digunakan!") else: print("โš ๏ธ Beberapa dependencies belum terinstall dengan sempurna") print(" Silakan jalankan script ini lagi atau install manual") if __name__ == "__main__": main() EOF # Make test script executable chmod +x storage/app/tts_scripts/test_indonesian_tts.py # Create Indonesian TTS generator script echo "๐Ÿ“ Membuat Indonesian TTS generator script..." cat > storage/app/tts_scripts/indonesian_tts_generator.py << 'EOF' #!/usr/bin/env python3 """ Indonesian TTS Generator menggunakan Coqui TTS """ import sys import os import json from pathlib import Path def generate_indonesian_tts(text, output_path, speaker="wibowo"): """ Generate TTS audio menggunakan Indonesian TTS model """ try: from TTS.api import TTS # Initialize TTS tts = TTS(model_path="storage/app/tts/models/checkpoint.pth", config_path="storage/app/tts/models/config.json") # Generate audio tts.tts_to_file(text=text, file_path=output_path, speaker=speaker) return True except Exception as e: print(f"Error generating Indonesian TTS: {e}") return False def main(): if len(sys.argv) < 3: print("Usage: python indonesian_tts_generator.py [speaker]") sys.exit(1) text = sys.argv[1] output_path = sys.argv[2] speaker = sys.argv[3] if len(sys.argv) > 3 else "wibowo" print(f"Generating Indonesian TTS...") print(f"Text: {text}") print(f"Output: {output_path}") print(f"Speaker: {speaker}") success = generate_indonesian_tts(text, output_path, speaker) if success: print("โœ… Indonesian TTS generated successfully!") else: print("โŒ Failed to generate Indonesian TTS") sys.exit(1) if __name__ == "__main__": main() EOF # Make generator script executable chmod +x storage/app/tts_scripts/indonesian_tts_generator.py # Test the installation echo "๐Ÿงช Testing installation..." $PYTHON_CMD storage/app/tts_scripts/test_indonesian_tts.py # Create README for Indonesian TTS echo "๐Ÿ“– Membuat README Indonesian TTS..." cat > README_INDONESIAN_TTS.md << 'EOF' # ๐ŸŽค Indonesian TTS System untuk Puskesmas ## ๐Ÿ“‹ Overview Sistem Indonesian TTS menggunakan model Coqui TTS yang dioptimalkan untuk bahasa Indonesia. ## ๐Ÿš€ Fitur - Model TTS khusus bahasa Indonesia - Pengucapan natural dan akurat - Support multiple speakers - Offline processing - High quality audio output ## ๐Ÿ“ File Structure ``` storage/app/tts/ โ”œโ”€โ”€ models/ โ”‚ โ”œโ”€โ”€ checkpoint.pth # Model checkpoint โ”‚ โ””โ”€โ”€ config.json # Model configuration โ””โ”€โ”€ scripts/ โ”œโ”€โ”€ test_indonesian_tts.py โ””โ”€โ”€ indonesian_tts_generator.py ``` ## ๐Ÿ”ง Usage ```bash # Test dependencies python storage/app/tts_scripts/test_indonesian_tts.py # Generate TTS python storage/app/tts_scripts/indonesian_tts_generator.py "Nomor antrian 001" output.wav ``` ## ๐Ÿ“ฅ Model Download Download model files dari: https://huggingface.co/coqui/Indonesian-TTS ## ๐Ÿ†˜ Troubleshooting - Pastikan Python 3.7+ terinstall - Pastikan semua dependencies terinstall - Pastikan model files ada di direktori yang benar EOF echo "" echo "๐ŸŽ‰ Instalasi Indonesian TTS selesai!" echo "================================================" echo "" echo "๐Ÿ“‹ Langkah selanjutnya:" echo "1. Download model files dari Hugging Face" echo "2. Test sistem dengan: python storage/app/tts_scripts/test_indonesian_tts.py" echo "3. Akses Indonesian TTS di admin panel: /admin/indonesian-tts" echo "" echo "๐Ÿ“– Dokumentasi lengkap ada di: README_INDONESIAN_TTS.md" echo "" echo "๐Ÿš€ Selamat menggunakan Indonesian TTS System!"