Ffmpeg: extract text Indonesia dari mp4

From OnnoWiki
Jump to navigation Jump to search

Cara paling mudah dan gratis adalah memakai **OpenAI Whisper secara lokal**. Whisper mendukung Bahasa Indonesia, dapat membaca video secara langsung, serta menghasilkan teks biasa dan subtitle.

    1. Cara paling singkat di Ubuntu
      1. 1. Instal FFmpeg dan Python

```bash sudo apt update sudo apt install -y ffmpeg python3-pip python3-venv ```

      1. 2. Buat lingkungan Python

```bash python3 -m venv whisper-env source whisper-env/bin/activate pip install -U pip pip install -U openai-whisper ```

Whisper memang membutuhkan FFmpeg untuk membaca audio atau video. [Dokumentasi resmi Whisper](https://github.com/openai/whisper)

      1. 3. Transkripsikan video Bahasa Indonesia

Misalnya nama videonya `rekaman.mp4`:

```bash whisper rekaman.mp4 \

 --model medium \
 --language Indonesian \
 --task transcribe \
 --output_format all \
 --output_dir hasil

```

Hasilnya berada di folder `hasil/`:

  • `rekaman.txt` — teks biasa
  • `rekaman.srt` — subtitle untuk video
  • `rekaman.vtt` — subtitle web
  • `rekaman.tsv` — teks dan waktu dalam tabel
  • `rekaman.json` — data lengkap untuk diproses program
    1. Pemilihan model

| Model | Kebutuhan | Keterangan | | -------- | ----------: | ------------------------------------ | | `small` | ±2 GB VRAM | Cepat, akurasi cukup | | `medium` | ±5 GB VRAM | Pilihan bagus untuk Bahasa Indonesia | | `turbo` | ±6 GB VRAM | Sangat cepat dan cukup akurat | | `large` | ±10 GB VRAM | Paling berat |

Untuk RTX 4060 8 GB, saya sarankan:

```bash whisper rekaman.mp4 \

 --model turbo \
 --language Indonesian \
 --task transcribe \
 --output_format all \
 --output_dir hasil

```

Jika GPU tidak tersedia, Whisper tetap berjalan menggunakan CPU, tetapi lebih lambat:

```bash whisper rekaman.mp4 \

 --model small \
 --language Indonesian \
 --device cpu \
 --output_format all

```

    1. Jika ingin mengekstrak audio dahulu

Tidak wajib, tetapi dapat membantu jika file video sangat besar:

```bash ffmpeg -i rekaman.mp4 \

 -map 0:a:0 \
 -ac 1 \
 -ar 16000 \
 audio.wav

```

Kemudian:

```bash whisper audio.wav \

 --model medium \
 --language Indonesian \
 --task transcribe \
 --output_format all \
 --output_dir hasil

```

FFmpeg mendukung konversi audio dari berbagai format video. [Dokumentasi resmi FFmpeg](https://ffmpeg.org/ffmpeg.html)

    1. Untuk banyak video sekaligus

```bash mkdir -p hasil

for video in *.mp4; do

 whisper "$video" \
   --model turbo \
   --language Indonesian \
   --task transcribe \
   --output_format all \
   --output_dir hasil

done ```

Catatan: Whisper menghasilkan transkripsi, tetapi belum otomatis membedakan “Pembicara 1”, “Pembicara 2”, dan seterusnya. Untuk pemisahan pembicara diperlukan proses tambahan bernama **speaker diarization**, misalnya menggunakan WhisperX dan pyannote.