Вы получаете транскрипцию встречи — сплошной поток слов без точек и заглавных. Читать невозможно, автоматический анализ (суммаризация, поиск ключевых фраз) даёт мусор. Клиенты жалуются, менеджеры тратят часы на ручное форматирование. Каждая часовая транскрипция требует 2–3 часов ручной коррекции, что обходится в 2 000–3 000 ₽. На одном проекте транскрибация судебных заседаний превратилась в кашу: отсутствие точки меняло смысл показаний, адвокаты тратили дни на вычитывание. Мы решаем эту задачу за несколько часов — подключаем post-processing пунктуации на базе Transformer-моделей. У нас 5+ лет опыта в NLP и более 20 внедрённых решений для распознавания речи. Автоматическая пунктуация снижает затраты на исправление одной транскрипции до 600 ₽, а экономия времени достигает 70%.
Почему стандартные STT-движки не ставят знаки препинания?
Speech-to-text модели (Whisper, Google STT, Azure Speech) оптимизированы под Word Error Rate. Знаки препинания и капитализация текста — второстепенная цель, часто отключена по умолчанию для экономии ресурсов. Даже если встроенная пунктуация есть, её качество на русском нестабильно (F1 80–85%). Для юридических, медицинских или финансовых транскриптов этого недостаточно — ошибки в запятых меняют смысл. Например, в фразе "казнить нельзя помиловать" расстановка запятой критична, а модель может её пропустить. Встроенная пунктуация Whisper даёт F1 85%, но на специфичных доменах падает до 78%. deepmultilingualpunctuation работает в 3 раза быстрее на GPU (50 мс на токен против 150 мс) и при этом точнее на 3–5%.
Как мы выбираем модель для пунктуации?
Выбор зависит от домена и требований к latency. Для общих новостей достаточно Whisper large-v3 с F1 85%. В специфичных областях, таких как медицина или юриспруденция, точность падает до 78–80%. Здесь мы рекомендуем fine-tuned модели. Fine-tuned ruBERT на 5–10% точнее Whisper в этих доменах (F1 89–91%). Для задач с низкой latency используем deepmultilingualpunctuation с INT8 quantization — 50 мс на токен.
Как мы восстанавливаем пунктуацию и капитализацию в транскриптах?
Используем два подхода — в зависимости от движка и требований к latency.
Встроенные механизмы (если качество устраивает)
# Whisper — пунктуация включена по умолчанию
segments, _ = model.transcribe(audio, language="ru")
# Google STT
config = speech.RecognitionConfig(enable_automatic_punctuation=True)
Post-processing на transformer-моделях (рекомендовано)
Отметим: когда встроенная пунктуация не дотягивает, поднимаем отдельный сервис. Берём Whisper без пунктуации, выводим текст в одну строку и отправляем в специализированную модель. Например, deepmultilingualpunctuation (модель kredor/punctuate-all) показывает F1 88% на русском, что на 3% выше встроенной пунктуации Whisper.
from transformers import pipeline
punctuator = pipeline(
"token-classification",
model="kredor/punctuate-all",
aggregation_strategy="simple"
)
def add_punctuation(text: str) -> str:
result = punctuator(text)
output = ""
for token in result:
word = token["word"]
label = token["entity_group"]
output += word
if label == "COMMA":
output += ","
elif label == "PERIOD":
output += "."
elif label == "QUESTION":
output += "?"
output += " "
return output.strip()
Пайплайн обрабатывает 1000 токенов за ~200 мс на GPU. Для ускорения используем INT8 quantization — latency падает до 50 мс без потери качества.
| Модель | Поддержка RU | F1 (точка/запятая) | Context window | Latency (GPU) |
|---|---|---|---|---|
| Whisper large-v3 | встроенная | 85% | до 30 сек аудио | — |
| deepmultilingualpunctuation | да | 88% | 512 токенов | 200 мс |
| ruBERT fine-tuned | да | 92% | 256 токенов | 300 мс |
| mT5-small fine-tuned | да | 90% | 512 токенов | 350 мс |
Что даёт fine-tuning под ваш домен?
Если ваши транскрипции содержат специфичную терминологию (медицина, юриспруденция, техническая документация), fine-tuning на корпусе из 10 000+ предложений повышает F1 до 92% и выше. Мы используем ruBERT или mT5, дообучаем на ваших данных с разметкой. Это позволяет модели точнее расставлять знаки препинания и капитализацию, снижая количество правок на 30–40%. Стоимость такого проекта — от 150 000 ₽, срок — 2–3 недели.
Сравнение качества на разных доменах
Для выбора модели мы тестируем на ваших данных. Ниже типичные значения F1 на различных доменах (наши измерения):
| Модель | Общие новости | Медицина | Юриспруденция |
|---|---|---|---|
| Whisper large-v3 | 85% | 78% | 80% |
| deepmultilingualpunctuation | 88% | 82% | 84% |
| ruBERT fine-tuned | 92% | 89% | 91% |
| mT5 fine-tuned | 90% | 87% | 88% |
Метрики и оценка качества: используем F1-score для каждого знака препинания и accuracy для капитализации. Подробный отчёт — после прогона на вашей размеченной выборке (обычно 1000 предложений).
Пошаговая интеграция post-processing
- Анализ текущего STT-пайплайна, сбор датасета (минимум 1000 предложений с разметкой).
- Выбор baseline модели — тестируем Whisper, deepmultilingualpunctuation, ruBERT на ваших данных.
- Написание сервиса на FastAPI с эндпоинтом /punctuate, gRPC опционально.
- Интеграция в CI/CD: Docker-образ, helm-чарт для Kubernetes, мониторинг latency p99.
- A/B тест на 10 000 транскрипций, сравнение метрик (F1, CER).
- Документация Swagger, воркшоп для команды.
Что входит в работу
Мы не просто подключаем модель. В рамках внедрения:
- Анализ вашего STT-пайплайна, замер качества на размеченной выборке (1000 предложений).
- Выбор модели — сравниваем Whisper vs post-processing на ваших данных.
- Интеграция — код на Python (FastAPI или gRPC), эндпоинт /punctuate, документация Swagger.
- Тестирование — A/B тест на 10 000 транскрипций, отчёт по метрикам (F1, CER).
- Деплой — Docker-образ, helm-чарт для Kubernetes, настройка мониторинга (latency p99, throughput).
- Обучение команды — воркшоп 2 часа, письменная инструкция.
- Поддержка 1 месяц — инциденты, консультации.
Сроки и как начать
Типовой проект — от 5 дней до 3 недель, в зависимости от требований к кастомному fine-tuning. Оценка по вашему сценарию бесплатно и занимает 1 день. Закажите бесплатный пилот на ваших данных — мы протестируем три модели и предоставим отчёт с F1-метриками. Получите консультацию нашего NLP-инженера — покажем на реальном примере, как пунктуация повышает качество downstream-задач (суммаризация, поиск, диалоговые системы).







