Реалізація автоматичного транскрибування судових засідань

Проектуємо та впроваджуємо системи штучного інтелекту: від прототипу до production-ready рішення. Наша команда поєднує експертизу в машинному навчанні, дата-інжинірингу та MLOps, щоб AI працював не в лабораторії, а в реальному бізнесі.
Показано 1 з 1Усі 1566 послуг
Реалізація автоматичного транскрибування судових засідань
Складний
від 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

Реалізація автоматичного транскрибування судових засідань Транскрибація судових засідань — це високовідповідальне завдання з вимогами до точності >98% (WER <2%). Специфіка: безліч тих, хто говорить, перебивання, юридична лексика, процесуальні формули, власні імена. Транскрипт є процесуальним документом. ### Вимоги до системи - WER <5% на юридичній лексиці (після постобробки) - Точна атрибуція реплік (голова, прокурор, адвокат, свідок, відповідач) - Тимчасові мітки для кожної репліки - Автоматична нормалізація чисельних, дат, статей закону - Захищене зберігання```python

Полностью локальное развёртывание без облака

class CourtTranscriptionSystem: def init(self): # Whisper large-v3 дообученный на юридических данных self.stt = WhisperModel( "/models/whisper-legal-ru", device="cuda", compute_type="int8_float16" ) # Диаризация — обязательно self.diarizer = Pipeline.from_pretrained( "pyannote/speaker-diarization-3.1" ) # Нормализатор юридических текстов self.normalizer = LegalTextNormalizer()

async def transcribe_session(self, audio_path: str, participants: dict) -> dict:
    """
    participants: {"SPEAKER_00": "Председатель Иванова И.И.", ...}
    """
    # 1. Транскрибируем с word timestamps
    segments, _ = self.stt.transcribe(
        audio_path,
        word_timestamps=True,
        language="ru",
        vad_filter=True,
        initial_prompt="Судебное заседание. Председатель суда, прокурор, адвокат, подсудимый."
    )

    # 2. Диаризация
    diarization = self.diarizer(audio_path)

    # 3. Сопоставляем с участниками
    labeled_transcript = self._label_speakers(
        list(segments), diarization, participants
    )

    # 4. Нормализация: "сто пятьдесят вторая статья" → "ст. 152"
    for segment in labeled_transcript:
        segment["text"] = self.normalizer.normalize(segment["text"])

    return {
        "session_date": datetime.now().isoformat(),
        "transcript": labeled_transcript,
        "metadata": {
            "audio_duration": self._get_duration(audio_path),
            "speaker_count": len(participants)
        }
    }

### Спеціалізований словник для судуpython LEGAL_VOCABULARY = [ "апелляционное определение", "постановление о прекращении дела", "кассационная жалоба", "статья двести шестьдесят четвёртая", "часть первая статьи", "Уголовно-процессуальный кодекс", "Гражданский процессуальный кодекс", # ... несколько тысяч терминов ]

- З донавчанням на юридичні дані: +4–6 тижнів - Сертифікація та інтеграція до ДАС «Правосуддя»: окремий проект