Skip to main content
Ölçekte Gerçek Zamanlı Konuşmacı Ayrıştırma

Ölçekte Gerçek Zamanlı Konuşmacı Ayrıştırma

July 20, 2025

9

min read

Mühendislik

Konuşmacı Ayrıştırma Dalga Biçimi
Şekil 1: Ses akışlarını gerçek zamanda ayırma

”Kokteyl Partisi” Problemi

İnsanlar gürültülü bir odada tek bir sese odaklanmakta çok iyidir. Bilgisayarlar zorlanır.
Tek kanallı bir VoIP çağrısında (eski telefon sistemlerinde yaygındır), temsilci ve müşteri tek bir akışta karışır.

Ne zaman araya gireceğini bilen bir yapay zekâ temsilcisi kurmak için, kimin konuştuğunu bilmeniz gerekir.

Mimari

1. Kare Düzeyinde Embedding

Sesi 500 ms’lik pencerelere böler ve bunları hafif bir kodlayıcıdan (SpeechBrain ECAPA-TDNN) geçiririz.
Çıktı: O dilimin “tınısını” tanımlayan 192 boyutlu bir vektör.

2. Hibrit Mimari

Yalnızca uygulama içi ayrıştırmadan (Pyannote) Hibrit Bir Yaklaşıma geçtik:

  1. Harici Ayrıştırma: Yüksek verimli API’lerden (Google speech-to-text veya OpenAI gibi) önceden ayrıştırılmış segmentleri alırız.
  2. Dahili Doğrulama: 192 boyutlu ECAPA-TDNN doğrulamamızı yerel olarak çalıştırarak “çift kontrol” yapar ve kimlikleri bilinen ses profillerine bağlarız.

3. Gecikme Kısıtları

Bulut API’leri “Kim ne zaman konuştu?” haritasını işler.
IdentityCall ise “Bu, Temsilci X mi?” doğrulamasını işler.

  • Bütçe: Doğrulama için kare başına 50 ms işleme süresi.
  • Optimizasyon: Kodlayıcıyı, INT8’e nicelenmiş olarak GPU üzerinde ONNX Runtime’da çalıştırırız.

Örtüşmeyi Ele Alma

En zor kısım “Örtüşen Konuşma”dır (bir çağrının yaklaşık %10-15’i).
Standart modeller “en yüksek sesli” konuşmacıyı seçer.
Biz Çok Etiketli Ayrıştırma kullanırız; embedding bir karışım olduğunu düşündürüyorsa tek bir zaman aralığına iki konuşmacı etiketi atarız.

Sonuç

İyi ayrıştırma, iyi transkripsiyonun ön koşuludur. Temsilcinin “Merhaba”sını müşteriye atfederseniz, tüm bağlamınız bozuk başlar.

Tags:

AyrıştırmaSes İşlemeMakine ÖğrenimiGerçek Zamanlı