Membuat Voice Over Bahasa Indonesia dengan AI

Membuat Voice Over Bahasa Indonesia dengan AI

Pendahuluan

Voice over menjadi elemen penting dalam video edukasi, iklan, atau konten e‑learning. Membuatnya secara manual memerlukan talent suara, studio, dan waktu yang tidak sedikit. Tutorial ini menunjukkan cara menghasilkan voice over Bahasa Indonesia secara otomatis menggunakan model AI text‑to‑speech (TTS), dengan bantuan tool penulisan AI untuk skrip dan tool editing audio untuk kualitas produksi.

Arsitektur singkat

[Script Generator] → [TTS Engine] → [Audio Post‑Processing] → [Video Integration]

Prasyarat & Persiapan

Kebutuhan Detail
Akun AI Chat ChatGPT Plus (https://tools.jartekindo.com/tool/chatgpt-plus/), Claude Pro, atau Gemini Advanced
Akun Google Cloud Enable Text‑to‑Speech API dan buat Service Account JSON
Python 3.9+ python3 -m venv venv && source venv/bin/activate
FFmpeg sudo apt-get install ffmpeg (Linux) atau instal via Homebrew pada macOS
Optional: Visual Canva Pro (https://tools.jartekindo.com/tool/canva-pro/) atau Midjourney (https://tools.jartekindo.com/tool/midjourney/)
Optional: Prompt Writing Notion AI, Jasper, Writesonic, Copy.ai untuk memperkaya skrip

Langkah Demi Langkah

Step 1 – Siapkan Lingkungan Python

# Buat dan aktifkan virtual environment
python3 -m venv venv
source venv/bin/activate

# Instal dependensi
pip install google-cloud-texttospeech tqdm

Step 2 – Buat Skrip dengan AI Chat

Gunakan ChatGPT Plus untuk menghasilkan naskah. Contoh prompt:

“Buatkan naskah video tutorial 2 menit tentang cara menginstal Docker di Ubuntu, dalam Bahasa Indonesia, dengan gaya profesional.”

Anda dapat menyalin output ke file script.txt. Jika ingin variasi, coba Claude Pro atau Gemini Advanced.

Step 3 – Konversi Teks ke Audio dengan Google Cloud TTS

  1. Unduh Service Account JSON dari Google Cloud Console dan simpan sebagai gcp-key.json.
  2. Script Python (tts.py):
import os
from google.cloud import texttospeech
from tqdm import tqdm

# Inisialisasi client
os.environ["GOOGLE_APPLICATION_CREDENTIALS"] = "gcp-key.json"
client = texttospeech.TextToSpeechClient()

def synthesize(text, output_path):
    input_text = texttospeech.SynthesisInput(text=text)

    # Pilih voice Bahasa Indonesia (female)
    voice = texttospeech.VoiceSelectionParams(
        language_code="id-ID",
        name="id-ID-Wavenet-A",   # atau "id-ID-Standard-A"
        ssml_gender=texttospeech.SsmlVoiceGender.FEMALE,
    )

    # Audio config
    audio_config = texttospeech.AudioConfig(
        audio_encoding=texttospeech.AudioEncoding.LINEAR16,
        speaking_rate=1.0,
        pitch=0.0,
        volume_gain_db=0.0,
    )

    response = client.synthesize_speech(
        input=input_text, voice=voice, audio_config=audio_config
    )

    # Simpan file .wav
    with open(output_path, "wb") as out:
        out.write(response.audio_content)

if __name__ == "__main__":
    with open("script.txt", "r", encoding="utf-8") as f:
        lines = [l.strip() for l in f if l.strip()]

    for idx, line in enumerate(tqdm(lines, desc="Synthesizing")):
        out_file = f"output_{idx:03d}.wav"
        synthesize(line, out_file)

Jalankan:

python tts.py

Setiap kalimat akan menjadi file audio terpisah (output_000.wav, ...). Memisahkan per kalimat memudahkan editing selanjutnya.

Step 4 – Gabungkan & Optimalkan Audio

Gunakan FFmpeg untuk menggabungkan, normalisasi, dan menghilangkan jeda berlebih.

# Buat file list.txt untuk concat
for f in output_*.wav; do echo "file '$f'" >> list.txt; done

# Gabungkan, normalisasi ke -3 dB LUFS, dan hapus silence >0.3s
ffmpeg -f concat -safe 0 -i list.txt -af "loudnorm=I=-16:TP=-1.5:LRA=11, silenceremove=start_periods=1:start_duration=0.3:start_threshold=-35dB" -c:a pcm_s16le final_voice_over.wav

Step 5 – Tambahkan Musik Latar (Opsional)

Jika diperlukan, overlay musik latar dengan volume 20 %:

ffmpeg -i final_voice_over.wav -i background_music.mp3 -filter_complex "[1:a]volume=0.2[a1];[0:a][a1]amix=inputs=2:duration=first:dropout_transition=2" -c:a libmp3lame -b:a 192k voice_over_with_music.mp3

Step 6 – Integrasi ke Video

  1. Buat visual menggunakan Canva Pro atau Midjourney. Simpan gambar sebagai slide_*.png.
  2. Hapus latar belakang otomatis dengan Remove.bg bila diperlukan.
  3. Gabungkan gambar dan audio:
# Contoh: 5 slide, masing‑masing 4 detik
ffmpeg -framerate 1/4 -i slide_%02d.png -i voice_over_with_music.mp3 -c:v libx264 -r 30 -pix_fmt yuv420p -c:a aac -b:a 192k final_video.mp4

Tips Optimasi & Keamanan


Troubleshooting Error Umum

Error Penyebab Solusi
PermissionDenied: Request had insufficient authentication scopes. Service Account tidak memiliki izin Text-to-Speech API. Aktifkan API di Google Cloud Console dan pastikan role roles/texttospeech.admin.
InvalidArgument: languageCode not supported. Kode bahasa salah atau tidak tersedia. Gunakan id-ID untuk Bahasa Indonesia.
ffmpeg: Invalid argument File list tidak di‑generate atau path salah. Pastikan list.txt berisi baris file 'output_000.wav' dan jalankan dari direktori yang sama.
Audio clipping / distortion Gain terlalu tinggi pada volume_gain_db. Turunkan nilai gain atau gunakan loudnorm untuk otomatis.
No such file or directory: 'background_music.mp3' File musik tidak ditemukan. Verifikasi path atau gunakan wget/curl untuk mengunduh contoh musik royalty‑free.

Kesimpulan

Dengan kombinasi ChatGPT Plus, Google Cloud Text‑to‑Speech, dan FFmpeg, Anda dapat menghasilkan voice over Bahasa Indonesia yang profesional dalam hitungan menit. Proses ini dapat di‑otomatisasi sepenuhnya, meminimalkan biaya produksi, dan tetap menjaga kualitas audio yang layak untuk publikasi di YouTube, LMS, atau platform e‑learning lainnya. Manfaatkan tool visual seperti Canva Pro atau Midjourney untuk melengkapi video, dan pastikan keamanan kredensial serta kepatuhan kuota API untuk produksi skala besar.

🏷️ Topik Terkait: