Реалізація діаризації мовців (Speaker Diarization)

Проектуємо та впроваджуємо системи штучного інтелекту: від прототипу до production-ready рішення. Наша команда поєднує експертизу в машинному навчанні, дата-інжинірингу та MLOps, щоб AI працював не в лабораторії, а в реальному бізнесі.
Показано 1 з 1Усі 1566 послуг
Реалізація діаризації мовців (Speaker Diarization)
Середній
від 1 дня до 3 днів
Часті запитання

Напрямки AI-розробки

Етапи розробки AI-рішення

Останні роботи

  • image_website-b2b-advance_0.webp
    Розробка сайту компанії B2B ADVANCE
    1284
  • image_web-applications_feedme_466_0.webp
    Розробка веб-додатків для компанії FEEDME
    1196
  • image_websites_belfingroup_462_0.webp
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    901
  • image_ecommerce_furnoro_435_0.webp
    Розробка інтернет магазину для компанії FURNORO
    1119
  • image_logo-advance_0.webp
    Розробка логотипу компанії B2B Advance
    586
  • image_crm_enviok_479_0.webp
    Розробка веб-додатків для компанії Enviok
    853

Реалізація діаризації розмовляючих (Speaker Diarization) Діаризація — завдання «хто говорив колись» без попереднього знання голосів. Необхідна для транскрипції нарад, інтерв'ю, судових засідань — скрізь, де потрібно атрибутувати кожну репліку конкретному, хто говорить. ### Сучасний стек pyannote.audio 3.x - state-of-the-art open-source рішення з DER (Diarization Error Rate) 7-12% на стандартних датасетах:```python

from pyannote.audio import Pipeline import torch

pipeline = Pipeline.from_pretrained( "pyannote/speaker-diarization-3.1", use_auth_token="HF_TOKEN" ) pipeline.to(torch.device("cuda"))

diarization = pipeline( "meeting.wav", min_speakers=2, max_speakers=6 )

for segment, track, speaker in diarization.itertracks(yield_label=True): print(f"[{segment.start:.2f}s → {segment.end:.2f}s] {speaker}") ### Злиття діаризації з транскрипцієюpython from faster_whisper import WhisperModel

def transcribe_with_diarization(audio_path: str) -> list[dict]: # 1. Транскрибируем whisper = WhisperModel("large-v3", device="cuda") segments, _ = whisper.transcribe(audio_path, word_timestamps=True)

# 2. Диаризуем
diarization = pipeline(audio_path)

# 3. Сопоставляем по временным меткам
result = []
for seg in segments:
    seg_midpoint = (seg.start + seg.end) / 2
    speaker = "UNKNOWN"
    for turn, _, spk in diarization.itertracks(yield_label=True):
        if turn.start <= seg_midpoint <= turn.end:
            speaker = spk
            break
    result.append({
        "speaker": speaker,
        "start": seg.start,
        "end": seg.end,
        "text": seg.text
    })
return result
- AWS Transcribe: $0.029/хв, до 10 спікерів Терміни: інтеграція pyannote + Whisper - 3-5 днів. Оптимізація під конкретний тип запису – до 2 тижнів.