AI Programlama ve Teknoloji

AI ile ses tanıma ve metin dönüşümü nasıl yapılır?

Yayınlanma

on

ses tanıma için OpenAI Whisper veya Google Speech-to-Text gibi modeller kullanılır. AI, ses dosyalarını analiz edip yazılı metin hâline dönüştürür. Uygulama, podcast transkriptleri, toplantı özetleri veya dikte sistemlerinde kullanılabilir.

  1. Ortam Hazırlığı:

bash

# Gerekli kütüphanelerin kurulumu
pip install openai-whisper torchaudio
pip install pydub  # Ses dosyası dönüşümleri için

2. Temel Kullanım (Whisper):

python

import whisper

# Model seçimi (tiny, base, small, medium, large)
model = whisper.load_model("medium")

# Ses dosyasını yükleme ve transkript
result = model.transcribe("toplanti_kaydi.mp3")
print(result["text"])

3. Türkçe için Optimizasyon:

python

# Türkçe özel prompt
result = model.transcribe("ses_dosyasi.wav", language="tr", initial_prompt="Bu kayıt Türkçe bir iş toplantısıdır.")

4. Gerçek Zamanlı İşleme:

python

import torchaudio
import numpy as np

# Mikrofondan anlık ses alımı
stream = torchaudio.io.StreamReader(src=":0")  # Default mikrofon
stream.add_basic_audio_stream(frames_per_chunk=16000, sample_rate=16000)

for (chunk,) in stream.stream():
    audio_np = chunk.numpy().flatten()
    result = model.transcribe(audio_np)
    print(result["text"])

5. Gelişmiş Özellikler:

python

# Zaman damgalı transkript
for segment in result["segments"]:
    print(f"[{segment['start']:.2f}-{segment['end']:.2f}s] {segment['text']}")

# Konuşmacı ayrıştırma (PyAnnote entegrasyonu)
from pyannote.audio import Pipeline
diarization = Pipeline.from_pretrained("pyannote/speaker-diarization")(audio_file)

6. Özel Model Eğitimi:

python

from transformers import WhisperForConditionalGeneration, WhisperProcessor

# Önceden eğitilmiş model
model = WhisperForConditionalGeneration.from_pretrained("openai/whisper-medium")
processor = WhisperProcessor.from_pretrained("openai/whisper-medium")

# Türkçe fine-tuning
# Kendi veri setinizle eğitim kodu buraya gelecek

Karşılaşılabilecek Sorunlar ve Çözümleri:

  1. Arka Plan Gürültüsü:
    • noisereduce kütüphanesiyle gürültü azaltma
    pythonimport noisereduce as nr audio_clean = nr.reduce_noise(y=audio_data, sr=sample_rate)
  2. Düşük Kaliteli Kayıtlar:
    • Sample rate dönüşümü:
    pythonimport librosa audio, sr = librosa.load(“kayit.wav”, sr=16000) # Whisper için ideal
  3. Terminoloji Hataları:
    • Özel sözlük ekleme:
    pythonresult = model.transcribe(audio, vocabulary=[“TeknikTerim1”, “Özelİsim”])

Üretim Ortamı İçin Öneriler:

  • GPU hızlandırma (CUDA)
  • Batch processing için queue sistemi
  • Sonuçların veritabanına otomatik kaydı

Alternatif Çözümler:

python

# Google Speech-to-Text API
from google.cloud import speech_v1p1beta1 as speech
client = speech.SpeechClient()
config = speech.RecognitionConfig(
    language_code="tr-TR",
    enable_automatic_punctuation=True
)
response = client.recognize(config=config, audio=audio)

Performans İyileştirme:

python

# Quantized model (düşük kaynak kullanımı)
model = whisper.load_model("small.en", device="cpu")

Son Çıktı Formatlama:

python

# VTT formatında kaydetme
with open("transkript.vtt", "w") as f:
    f.write("WEBVTT\n\n")
    for seg in result["segments"]:
        f.write(f"{seg['start']:.3f} --> {seg['end']:.3f}\n")
        f.write(f"{seg['text']}\n\n")

Dikkat Edilmesi Gerekenler:

  • Ses dosyalarının maksimum 25MB olması (Whisper için)
  • Uzun kayıtlarda memory yönetimi
  • Türkçe karakter desteği kontrolü

Örnek Kullanım Senaryoları:

  1. Müşteri hizmetleri çağrı kayıtlarının analizi
  2. Online derslerin otomatik transkripsiyonu
  3. Doktor hasta görüşmelerinin dokümantasyonu

Bu yöntemlerle %90+ doğruluk oranları elde edebilirsiniz, ancak kritik uygulamalarda mutlaka insan kontrolü öneririm.

1 Yorum

  1. aisor

    19 Ağustos 2025 at 00:30

    tüm detaylar açıklamada…Teşekkürler

Leave a Reply

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Trend

Exit mobile version