OpenAI Whisper, konuşmayı metne dönüştüren güçlü bir yapay zeka modelidir. Whisper API ile ses dosyalarını transkribe edebilir, gerçek zamanlı ses tanıma uygulamaları geliştirebilirsiniz. Türkçe dahil 100'den fazla dili destekler.
Whisper Nedir?
Whisper, OpenAI tarafından geliştirilen açık kaynaklı bir otomatik konuşma tanıma (ASR - Automatic Speech Recognition) modelidir. 680.000 saatlik çok dilli veriyle eğitilmiştir.
Whisper'ın Kullanım Alanları
- Video altyazı oluşturma: YouTube, eğitim videoları
- Podcast transkripsiyon: Aranabilir metin çıktısı
- Toplantı notları: Zoom, Teams kayıtları
- Sesli asistanlar: Voice-to-text komutlar
- Erişilebilirlik: İşitme engelliler için altyazı
- Çağrı merkezi analizi: Müşteri görüşmeleri
Whisper API vs Whisper Local
| Özellik | Whisper API | Whisper Local |
|---|---|---|
| Kurulum | API key yeterli | Python + Model indirme |
| Hız | Çok hızlı | Donanıma bağlı |
| Maliyet | $0.006/dakika | Ücretsiz (donanım maliyeti) |
| Gizlilik | OpenAI sunucuları | Tamamen yerel |
| Dosya limiti | 25MB | Sınırsız |
| GPU gereksinimi | Yok | Önerilir |
Whisper API Kullanımı
1. API Key Alma
- platform.openai.com adresine gidin
- Hesap oluşturun veya giriş yapın
- API Keys bölümünden yeni key oluşturun
- Kredi kartı ekleyip bakiye yükleyin
2. Python ile Temel Kullanım
from openai import OpenAI
client = OpenAI(api_key="your-api-key")
# Ses dosyasını transkribe et
audio_file = open("audio.mp3", "rb")
transcript = client.audio.transcriptions.create(
model="whisper-1",
file=audio_file,
language="tr" # Türkçe için
)
print(transcript.text)
3. Çeviri (Translation)
Herhangi bir dildeki sesi İngilizce'ye çevirir:
translation = client.audio.translations.create(
model="whisper-1",
file=audio_file
)
print(translation.text) # İngilizce çıktı
4. Zaman Damgalı Çıktı
transcript = client.audio.transcriptions.create(
model="whisper-1",
file=audio_file,
response_format="verbose_json",
timestamp_granularities=["segment"]
)
for segment in transcript.segments:
print(f"[{segment.start:.2f}s - {segment.end:.2f}s] {segment.text}")
JavaScript/Node.js ile Kullanım
import OpenAI from "openai";
import fs from "fs";
const openai = new OpenAI({ apiKey: process.env.OPENAI_API_KEY });
async function transcribe() {
const transcription = await openai.audio.transcriptions.create({
file: fs.createReadStream("audio.mp3"),
model: "whisper-1",
language: "tr"
});
console.log(transcription.text);
}
transcribe();
Desteklenen Dosya Formatları
- Audio: mp3, mp4, mpeg, mpga, m4a, wav, webm
- Maksimum boyut: 25MB
- Önerilen format: mp3 veya m4a (sıkıştırılmış)
Büyük Dosyaları Bölme
from pydub import AudioSegment
audio = AudioSegment.from_file("long_audio.mp3")
# 10 dakikalık parçalara böl
chunk_length_ms = 10 * 60 * 1000
chunks = [audio[i:i+chunk_length_ms] for i in range(0, len(audio), chunk_length_ms)]
for i, chunk in enumerate(chunks):
chunk.export(f"chunk_{i}.mp3", format="mp3")
Whisper API Fiyatlandırma
| Model | Fiyat |
|---|---|
| whisper-1 | $0.006 / dakika |
Maliyet Hesaplama Örnekleri
- 1 saatlik podcast: 60 dk × $0.006 = $0.36
- 10 dakikalık video: $0.06
- 1000 dakika/ay: $6
Türkçe Performansı
Whisper, Türkçe'yi iyi destekler ancak bazı noktalara dikkat etmek gerekir:
İpuçları
- language="tr" belirtin: Otomatik algılama her zaman doğru olmayabilir
- Net ses kalitesi: Gürültülü ortamlar doğruluğu düşürür
- Teknik terimler: Yabancı kelimeler yanlış yazılabilir
- Prompt kullanın: Bağlam vererek doğruluğu artırın
Prompt ile Doğruluk Artırma
transcript = client.audio.transcriptions.create(
model="whisper-1",
file=audio_file,
language="tr",
prompt="Bu bir teknoloji podcast'i. Konular: yapay zeka, machine learning, Python programlama."
)
Whisper Yerel Kurulum
Python ile Kurulum
# Whisper kurulumu
pip install openai-whisper
# FFmpeg gerekli
# macOS: brew install ffmpeg
# Ubuntu: sudo apt install ffmpeg
# Windows: choco install ffmpeg
Yerel Kullanım
import whisper
model = whisper.load_model("base") # tiny, base, small, medium, large
result = model.transcribe("audio.mp3", language="tr")
print(result["text"])
Model Boyutları
| Model | Boyut | VRAM | Hız |
|---|---|---|---|
| tiny | 39MB | ~1GB | Çok hızlı |
| base | 74MB | ~1GB | Hızlı |
| small | 244MB | ~2GB | Orta |
| medium | 769MB | ~5GB | Yavaş |
| large-v3 | 1.55GB | ~10GB | En yavaş, en doğru |
Alternatif Çözümler
Google Cloud Speech-to-Text
- Daha fazla dil desteği
- Gerçek zamanlı streaming
- Daha pahalı
AWS Transcribe
- AWS ekosistemi entegrasyonu
- Otomatik noktalama
AssemblyAI
- Kolay API
- Speaker diarization
- Sentiment analizi
Örnek Proje: Video Altyazı Oluşturucu
import subprocess
from openai import OpenAI
def extract_audio(video_path, audio_path):
subprocess.run([
"ffmpeg", "-i", video_path,
"-vn", "-acodec", "mp3",
audio_path
])
def create_srt(transcript, output_path):
with open(output_path, "w", encoding="utf-8") as f:
for i, segment in enumerate(transcript.segments, 1):
start = format_time(segment.start)
end = format_time(segment.end)
f.write(f"{i}\n{start} --> {end}\n{segment.text}\n\n")
def format_time(seconds):
hours = int(seconds // 3600)
minutes = int((seconds % 3600) // 60)
secs = int(seconds % 60)
millis = int((seconds % 1) * 1000)
return f"{hours:02d}:{minutes:02d}:{secs:02d},{millis:03d}"
# Kullanım
extract_audio("video.mp4", "audio.mp3")
client = OpenAI()
with open("audio.mp3", "rb") as f:
transcript = client.audio.transcriptions.create(
model="whisper-1",
file=f,
response_format="verbose_json",
timestamp_granularities=["segment"]
)
create_srt(transcript, "subtitles.srt")
Sonuç
Whisper API, ses tanıma ve transkripsiyon için en güçlü çözümlerden biridir. Türkçe desteği, uygun fiyatı ve kolay entegrasyonuyla geliştiriciler için ideal bir araçtır.
Podcast transkripsiyon, video altyazı veya sesli asistan projeleri için Whisper'ı kullanmanızı öneririz. API ile hızlı başlangıç yapabilir veya yerel kurulumla tam gizlilik sağlayabilirsiniz.