Tutorial OpenAI Whisper: Speech-to-Text dan Audio Transcription

# OpenAI Whisper - Tutorial Lengkap Speech-to-Text ## Daftar Isi 1. [Pendahuluan](#pendahuluan) 2. [Prasyarat](#prasyarat) 3. [Memahami Ukuran Model Whisper](#memahami-ukuran-model-whisper) 4. [Tran...

By Ruby Abdullah · · tutorial
WhisperSpeech-to-TextAudioOpenAITranscriptionPython

OpenAI Whisper - Tutorial Lengkap Speech-to-Text

Daftar Isi

  • Pendahuluan
  • Prasyarat
  • Memahami Ukuran Model Whisper
  • Transkripsi Audio Dasar
  • Dukungan Multi-Bahasa
  • Fine-Tuning Whisper dengan Dataset Kustom
  • Transkripsi Real-Time
  • Optimasi dengan Faster-Whisper
  • Integrasi dengan FastAPI
  • Pembuatan Subtitle (SRT/VTT)
  • Praktik Terbaik
  • Kesimpulan

  • Pendahuluan

    OpenAI Whisper adalah model pengenalan suara serbaguna yang dilatih dengan 680.000 jam data terawasi multibahasa dan multitugas yang dikumpulkan dari web. Model ini mampu melakukan pengenalan suara multibahasa, penerjemahan suara, dan identifikasi bahasa. Tutorial ini akan memandu Anda dari transkripsi dasar hingga deployment tingkat produksi menggunakan FastAPI.

    Whisper sangat cocok untuk berbagai skenario penggunaan di Indonesia, mulai dari transkripsi rapat, pembuatan subtitle video YouTube, hingga sistem customer service otomatis yang memerlukan konversi suara ke teks.

    Prasyarat

    • Python 3.9 atau lebih tinggi
    • GPU yang kompatibel dengan CUDA (disarankan untuk model yang lebih besar)
    • Pemahaman dasar tentang Python dan konsep machine learning

    Pasang dependensi utama:

    pip install openai-whisper
    

    pip install faster-whisper

    pip install fastapi uvicorn python-multipart

    pip install torch torchaudio

    pip install datasets transformers

    Memahami Ukuran Model Whisper

    Whisper hadir dalam beberapa ukuran model, masing-masing menawarkan pertukaran antara kecepatan dan akurasi:

    | Model | Parameter | Khusus Inggris | Multibahasa | VRAM Diperlukan | Kecepatan Relatif |

    |--------|-----------|----------------|-------------|-----------------|-------------------|

    | tiny | 39 M | tiny.en | tiny | ~1 GB | ~32x |

    | base | 74 M | base.en | base | ~1 GB | ~16x |

    | small | 244 M | small.en | small | ~2 GB | ~6x |

    | medium | 769 M | medium.en | medium | ~5 GB | ~2x |

    | large | 1550 M | N/A | large-v3 | ~10 GB | 1x |

    Pemilihan model yang tepat bergantung pada kebutuhan Anda:

    import whisper
    
    

    Untuk prototyping cepat atau lingkungan dengan sumber daya terbatas

    model = whisper.loadmodel("tiny")

    Untuk produksi dengan akurasi yang baik

    model = whisper.loadmodel("medium")

    Untuk akurasi terbaik (memerlukan GPU dengan VRAM 10GB+)

    model = whisper.loadmodel("large-v3")

    Untuk transkripsi Bahasa Indonesia, gunakan model multibahasa (tanpa akhiran .en) karena model khusus Inggris tidak mendukung bahasa lain.

    Transkripsi Audio Dasar

    Penggunaan paling sederhana adalah mentranskripsi file audio menjadi teks:

    import whisper
    
    

    model = whisper.loadmodel("medium")

    Transkripsi dasar

    result = model.transcribe("rekamanaudio.mp3")

    print(result["text"])

    Akses informasi segmen secara detail

    for segment in result["segments"]:

    print(f"[{segment['start']:.2f}d -> {segment['end']:.2f}d] {segment['text']}")

    Anda dapat menyesuaikan perilaku transkripsi dengan berbagai parameter:

    result = model.transcribe(
    

    "rekamanaudio.mp3",

    language="id", # Paksa bahasa Indonesia (lewati deteksi)

    temperature=0.0, # Lebih rendah = lebih deterministik

    wordtimestamps=True, # Dapatkan timestamp tingkat kata

    fp16=True, # Gunakan presisi setengah (khusus GPU)

    beamsize=5, # Pencarian beam untuk akurasi lebih baik

    bestof=5, # Jumlah kandidat saat sampling

    nospeechthreshold=0.6, # Ambang batas untuk menyaring segmen sunyi

    conditiononprevioustext=True, # Gunakan konteks dari segmen sebelumnya

    initialprompt="Rapat teknis tentang model machine learning."

    )

    Artikel Terkait

    LiteLLM: Universal API Gateway untuk 100+ Model LLM

    LiteLLM: Universal API Gateway untuk 100+ Model LLM Dalam dunia AI yang berkembang pesat, kita dihadapkan dengan puluhan...

    Tutorial Reflex: Membangun Web App Full-Stack dengan Python Murni

    Reflex: Membangun Aplikasi Web Full-Stack dengan Python Murni Reflex memungkinkan Anda membangun aplikasi web lengkap — ...

    Tutorial ColBERT & RAGatouille: Late-Interaction Retrieval untuk RAG

    ColBERT & RAGatouille: Retrieval Late-Interaction untuk RAG yang Lebih Baik Sebagian besar sistem RAG mengandalkan dense...

    Tutorial SGLang: Serving LLM Cepat dan Pemrograman Structured Generation

    SGLang: Serving LLM yang Cepat dan Model Pemrograman untuk Generasi Terstruktur SGLang adalah dua hal dalam satu paket: ...