Whisper, OpenAI tarafından geliştirilen ve internetten toplanan geniş bir ses veri setiyle eğitilmiş, açık kaynak bir konuşma-metin (speech-to-text) modelidir. Bu derste Whisper'ı kurup Python ile bir ses dosyasını metne çevireceğiz.
Kurulum
Whisper'ın çalışması için önce ffmpeg adlı bir ses/video işleme aracının sisteminizde kurulu olması gerekir (Windows'ta Chocolatey ile choco install ffmpeg şeklinde kurulabilir), ardından Whisper'ın kendisini kurun:
pip install openai-whisper
En Basit Kullanım
import whisper
model = whisper.load_model("base")
sonuc = model.transcribe("ses_dosyasi.m4a")
print(sonuc["text"])
whisper.load_model(...) fonksiyonuna verdiğiniz model adı, ilk çalıştırmada otomatik olarak indirilir (internet bağlantısı gerekir), sonraki çalıştırmalarda yerelden yüklenir.
Model Boyutları: Hız/Doğruluk Dengesi
Whisper 5 farklı boyutta model sunar; boyut büyüdükçe doğruluk artar ama işlem süresi ve bellek kullanımı da artar:
| Model | Boyut | Bellek | Göreceli Hız |
|---|---|---|---|
tiny |
~39 MB | ~1 GB | En hızlı, en az doğru |
base |
~74 MB | ~1 GB | Hızlı |
small |
~244 MB | ~2 GB | Dengeli |
medium |
~769 MB | ~5 GB | Yavaş, daha doğru |
large |
~1.5 GB | ~10 GB | En yavaş, en doğru |
Türkçe için small modelin bile genelde oldukça isabetli sonuçlar verdiğini, kısa/net kayıtlarda çoğu zaman kelime kelime doğru çevirdiğini söyleyebiliriz — günlük kullanım için her zaman en büyük modele ihtiyacınız olmayabilir.
Ek Bilgiler Almak
transcribe() fonksiyonu yalnızca düz metin değil, çok daha fazla bilgi döndürür:
sonuc = model.transcribe("ses_dosyasi.m4a")
print(sonuc["language"]) # algılanan dil, ör. "tr"
for segment in sonuc["segments"]:
print(segment["start"], segment["end"], segment["text"])
segments, ses dosyasını zaman aralıklarına bölerek her aralığın metnini ayrı ayrı verir — bu, altyazı dosyası (.srt) oluşturmak için doğrudan kullanılabilecek bir yapıdır.
Nerelerde Kullanılabilir?
Whisper açık kaynaklı ve ücretsiz olduğu için, ses içeren herhangi bir uygulamaya (toplantı kaydı özetleme, otomatik altyazı oluşturma, sesli komut arayüzleri gibi) entegre edilebilir.
Sırada Ne Var?
Sırada, Streamlit kütüphanesiyle birkaç satır kodla bir hisse senedi grafiği web uygulaması yapacağız.