Speaker ID + Diarization FT: pyannote.audio + WavLM — Çoklu Konuşmacı Ayrımı
Toplantı/çağrı merkezi transkripti: 'kim konuşuyor + ne diyor'. pyannote.audio (HF), WavLM speaker embedding, diarization pipeline (VAD → embedding → clustering). Çağrı merkezi case: müşteri vs operatör ayrımı, RTX 4090 + 100 saat TR çağrı dataset üzerinde FT.
Şükrü Yusuf KAYA
24 dakikalık okuma
İleripython
# === pyannote.audio + Whisper diarization pipeline ===from pyannote.audio import Pipelineimport whisper # Diarizationdiar = Pipeline.from_pretrained("pyannote/speaker-diarization-3.1", use_auth_token="hf_xxx") # ASRasr = whisper.load_model("large-v3-turbo") def transcribe_with_speakers(audio_path): # 1. Diarization diarization = diar(audio_path) # 2. Per-segment ASR result = [] for turn, _, speaker in diarization.itertracks(yield_label=True): # Extract audio slice # ... segment WAV file generate ... text = asr.transcribe(segment_audio, language="tr")["text"] result.append({ "speaker": speaker, "start": turn.start, "end": turn.end, "text": text, }) return result # Output:# [{"speaker": "SPEAKER_00", "start": 0.0, "end": 3.4, "text": "Merhaba, nasıl yardımcı olabilirim?"},# {"speaker": "SPEAKER_01", "start": 3.4, "end": 8.2, "text": "Telefonumda problem var."},# ...]pyannote + Whisper diarization pipeline
✅ Part VII tamamlandı
- Çağrı merkezi sample ses ile diarization + transcription. 2) Sonraki Part: Part VIII — Code Models & Repo-Level FT.
Yorumlar & Soru-Cevap
(0)Yorum yazmak için giriş yap.
Yorumlar yükleniyor...
İlgili İçerikler
Part 0 — Engineering Foundations
Fine-Tuning Cookbook'a Hoş Geldin: Sistematik, Stage Taksonomisi ve Reproducibility Kontratı
Öğrenmeye BaşlaPart 0 — Engineering Foundations
Reproducibility Stack: Seeds, cuDNN Flags ve Deterministic CUDA — 'Sende Niye Çalışıyor Bende Çalışmıyor' Sorununu Bitir
Öğrenmeye BaşlaPart 0 — Engineering Foundations