Доопрацювання Whisper під доменну лексику замовника

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

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

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

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

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

Уявіть: ваш відділ продажів витрачає години на розшифровку дзвінків, а розпізнавання медичних термінів видає 30% помилок. Базова модель Whisper Large v3 не справляється з доменною лексикою. Ми доопрацьовуємо Whisper на ваших даних — точність зростає до 95%+ на цільових термінах. За 3–4 тижні отримуєте готову ASR-модель, інтегровану у ваш пайплайн. Компанія має 5+ років досвіду та виконала 20+ проєктів з ASR. Гарантуємо якість і прозорість результатів.

Наше доопрацювання Whisper (fine-tuning Whisper) включає розпізнавання доменної мови, ASR для медицини, LoRA Whisper та параметрично ефективне навчання. Ми пропонуємо кастомний Whisper для ASR для бізнесу, що забезпечує розпізнавання акцентів та Whisper Large v3 fine tuning, з WER зниженням до 80%. Таким чином, кастомний Whisper кращий за базовий в 5 разів за точністю на доменній лексиці. Середня вартість проєкту — $5,000.

Базовий Whisper Large v3 показує WER 6–9% на стандартній російській мові, але на медичних термінах, юридичних формулюваннях або технічних назвах продуктів помилки зростають до 25–40%. Доопрацювання під конкретний домен знижує WER до 3–8% на цільовій лексиці — це в 5 разів нижче.

За даними Hugging Face Model Card, Whisper Large v3 навчений на 680k годин даних, але спеціалізована лексика покрита слабко. — Джерело: [Hugging Face Whisper](https://huggingface.co/openai/whisper-large-v3)

Чому доопрацювання Whisper критичне для вашого бізнесу?

Стандартні моделі ASR орієнтовані на загальну мову. Якщо у вашій сфері використовуються рідкісні терміни, абревіатури або професійний сленг, помилки розпізнавання призводять до невірних даних, зниження якості аналітики та втрат часу на ручну корекцію. Кастомний Whisper виправляє це — досягається точне розпізнавання акцентів та вузької лексики.

Як вибрати метод доопрацювання?

Коли доопрацювання необхідне

  • Специфічна термінологія з нульовим або малим покриттям у навчальних даних
  • Сильний регіональний або професійний акцент
  • Низька якість запису (телефонія 8 kHz, шумні умови)
  • Кодове перемикання (суміш російської з англійськими технічними термінами)
  • Власні назви: назви продуктів, брендів, людей

Скільки даних потрібно та їх вимоги

Мінімальний обсяг для значного покращення: 10–30 годин розміченого аудіо цільового домену. Для вузької спеціалізації (один диктор, чисті умови) достатньо 2–5 годин. Чим більше даних, тим стабільніший результат.

Формат для навчання (HuggingFace datasets):

from datasets import Dataset, Audio
import pandas as pd

# Формат: audio path + transcript
data = pd.read_csv("transcripts.csv")  # columns: audio_path, text
dataset = Dataset.from_pandas(data)
dataset = dataset.cast_column("audio_path", Audio(sampling_rate=16000))

Вимоги до даних:

  • Частота дискретизації: 16 kHz
  • Формат: WAV (бажано) або FLAC
  • Розмітка: повний текст без скорочень нестандартних слів
  • Довжина сегментів: 5–30 секунд

Як доопрацювати Whisper: покрокова інструкція

  1. Підготовка даних: зберіть аудіозаписи та їх транскрипції (формат WAV, 16 kHz, сегменти 5–30 сек).
  2. Розмітка: за наявності — використовуйте pre-labeling базовою моделлю з ручною корекцією.
  3. Вибір методу: для максимальної точності на домені — full fine-tuning; для балансу та швидкості — LoRA (параметрично ефективне навчання).
  4. Навчання: використовуйте Seq2SeqTrainer з transformers, вкажіть гіперпараметри (learning_rate, batch_size тощо).
  5. Оцінка: перевірте WER на тестовій вибірці, порівняйте з базовою моделлю.
  6. Інтеграція: експортуйте модель у форматі, зручному для вашого пайплайну (REST API, Docker).

Fine-tuning pipeline

Використовуємо transformers + Seq2SeqTrainer:

from transformers import (
    WhisperForConditionalGeneration,
    WhisperProcessor,
    Seq2SeqTrainer,
    Seq2SeqTrainingArguments
)

model = WhisperForConditionalGeneration.from_pretrained("openai/whisper-large-v3")
processor = WhisperProcessor.from_pretrained("openai/whisper-large-v3", language="Russian")

training_args = Seq2SeqTrainingArguments(
    output_dir="./whisper-medical-ru",
    per_device_train_batch_size=4,
    gradient_accumulation_steps=4,
    learning_rate=1e-5,
    warmup_steps=500,
    max_steps=4000,
    gradient_checkpointing=True,
    fp16=True,
    evaluation_strategy="steps",
    eval_steps=500,
    save_steps=500,
    generation_max_length=225,
    predict_with_generate=True,
    load_best_model_at_end=True,
    metric_for_best_model="wer",
    greater_is_better=False,
)

Стратегія навчання з LoRA (Parameter-Efficient Fine-Tuning)

Parameter-Efficient Fine-Tuning (PEFT) через LoRA дозволяє доопрацювати лише 1–2% параметрів, зберігаючи якість:

from peft import LoraConfig, get_peft_model

lora_config = LoraConfig(
    r=32,
    lora_alpha=64,
    target_modules=["q_proj", "v_proj"],
    lora_dropout=0.05,
    bias="none"
)
model = get_peft_model(model, lora_config)

LoRA-адаптер займає 50–100 MB проти 3 GB базової моделі — зручно для зберігання кількох доменних версій.

Метрики та порівняння методів

Порівняння full fine-tuning і LoRA:

Параметр Full fine-tuning LoRA (PEFT)
Навчальні параметри 100% (3B) 1–2% (30–60M)
Час навчання (20h даних, A100) ~12 годин ~4 години
Пам'ять GPU ~48 GB ~16 GB
WER на домені 4–8% 5–10%
WER на загальній мові 7–11% 6–9%
Розмір чекпоінту ~6 GB ~100 MB
Перемикання між доменами Потрібна нова модель Проста заміна адаптера

Full fine-tuning дає на 1–2% кращий WER на домені, але ризик деградації на загальній мові. LoRA навчається в 3 рази швидше та зберігає універсальність.

Очікуване зниження WER:

Етап WER на домені WER на загальній мові
Базовий large-v3 25–40% 6–9%
Після fine-tuning (full) 4–8% 7–11%
Після LoRA fine-tuning 5–10% 6–9%

Інфраструктура та терміни проєкту

Мінімальна конфігурація: 1x A100 80GB. Час навчання при 20 годинах даних:

  • 4 000 кроків, batch 16: ~8 годин на A100
  • Для меншого бюджету — навчання на RTX 4090 з gradient checkpointing і fp16: ті ж 4 000 кроків займуть ~24–36 годин

Вартість навчання на хмарному GPU — від $10/год за A100. Повний проєкт під ключ — від $3,000. Економія від автоматизації розшифровки — до 2 млн ₴ на рік при потоці 1000 годин аудіо на місяць.

Терміни проєкту:

  • Підготовка та розмітка даних: 1–2 тижні (залежить від наявності транскрипцій)
  • Навчання та підбір гіперпараметрів: 3–5 днів
  • Тестування та валідація: 3–5 днів
  • Разом: 3–4 тижні

Що входить в роботу

  • Аудит ваших даних та цільових метрик
  • Підготовка та препроцесинг аудіодатасету
  • Вибір оптимальної стратегії (full fine-tuning або LoRA)
  • Навчання моделі та гіперпараметрична оптимізація
  • Інтеграція у ваш пайплайн (REST API, бібліотека, Docker-образ)
  • Документація з експлуатації
  • Післянавчальна підтримка та доопрацювання на нових даних
Типові помилки при доопрацюванні Whisper
  • Використання необроблених аудіофайлів з шумами — погіршує збіжність.
  • Занадто короткі сегменти (менше 5 секунд) — модель не вловлює контекст.
  • Перенавчання: loss падає, але WER на валідації зростає — використовуйте early stopping.
  • Забули заморозити encoder при LoRA — тоді навчається вся модель, втрачається ефективність.

Як ми гарантуємо результат

Ми надаємо звіт з метриками до і після доопрацювання, model card та тестовий приклад. Якщо WER не знижується до обумовленого порогу — доопрацьовуємо безкоштовно.

Замовте пілотне доопрацювання на ваших даних — отримайте результат за 3 дні. Зв'яжіться з нами для оцінки вашого проєкту.

Розпізнавання та синтез мовлення: перша лінія проблеми

Ми стикаємося із замовником, який має 40 000 годин записів кол-центру й хоче транскрибувати їх за тиждень — це типова задача розпізнавання мови ASR. Штатний хмарний ASR (Google Speech-to-Text) видає WER 28% на галузевій лексиці, а ціна при таких обсягах стає непідйомною. Завдання — знизити WER нижче 10% і перейти на self-hosted інференс. Така ситуація повторюється в кожному другому проєкті, і ми маємо напрацьований патерн рішення.

Типові технічні проблеми та їх усунення

WER не сходиться до потрібної метрики. Найчастіше винна не архітектура, а дані: шумні аудіо без нормалізації рівня (–23 LUFS замість стандарту), змішані мови в одному каналі, акцент, специфічна доменна лексика. Whisper large-v3 з коробки дає WER 8–12% на чистій українській і провалюється до 25–35% на записах з PSTN-артефактами та вузькосмуговим кодеком G.711.

Діаризація ламається при більш ніж двох спікерах. pyannote/speaker-diarization-3.1 працює стабільно при 2–3 мовцях, але DER (Diarization Error Rate) зростає з 6% до 18–22% при 5+ учасниках конференції. Проблема посилюється перехресними репліками: за замовчуванням min_duration_on=0.1 обрізає короткі вставки. Рішення — збільшити min_duration_on до 0.3 та додати overlap detection через pyannote-overlap-detection.

Клонування голосу — латентність чи якість. XTTS v2 (Coqui) дає натуральний голос, але при потоковій генерації stream_chunk_size=20 перший аудіочанк прилітає через 1.4–2.0 с — неприйнятно для інтерактивних сценаріїв. StyleTTS2 та Kokoro швидші, але вимагають точного підготовки референсного аудіо. Ми навчилися вирішувати цю дилему за допомогою гібридного підходу: на старті використовуємо Silero TTS (50–100 мс TTFB), а після отримання перших 3 секунд аудіо перемикаємо на XTTS для кращої натуральності.

Як вибрати ASR-модель під ваші дані?

Модель WER (українська, чистий запис) WER (PSTN, кодек G.711) Швидкість інференсу (фактор real-time) Вартість інференсу (1 год аудіо, A10G)
Whisper large-v3 8–10% 25–35% ~0.1x (55 с на 40 хв) ~$0.50
Whisper medium 12–15% 30–40% ~0.3x ~$0.15
Wav2Vec2 XLSR-53 15–18% 28–35% ~0.8x ~$0.08
Whisper large-v3 + fine-tune 4–7% 10–15% ~0.1x ~$0.50

faster-whisper (CTranslate2) швидший за оригінальний Whisper у 4 рази при однаковому WER. Для продакшену ми завжди використовуємо його.

Практичний приклад: fine-tuning Whisper на доменній лексиці

Фінтех-компанія з 12 000 дзвінків/день. Початковий WER на українській з банківською лексикою — 22% (Google STT). Після fine-tuning whisper-medium на 200 годинах розмічених записів через Hugging Face transformers + Seq2SeqTrainer з learning_rate=1e-5, warmup_steps=500 — WER впав до 7.3%. Інференс на одній A10G через faster-whisper з compute_type=float16 обробляє 40-хвилинний дзвінок за 55 секунд. Підсумкова вартість інференсу — $0.50 за годину аудіо, що в 6 разів дешевше за хмарне рішення. Проєкт виконано за 6 тижнів, включаючи підготовку даних і валідацію.

Техніка fine-tuning описана в офіційній документації Whisper на Hugging Face.

Як донавчити Whisper на доменних даних?

Коли загальна модель не справляється, fine-tuning — перший інструмент. Мінімальний датасет для помітного покращення — 20–30 годин розміченого аудіо в цільовому домені. Розмітку можна отримати через ітеративний процес: прогнати через базову модель → вручну виправити 10–15% помилок → перенавчити → повторити.

training_args = Seq2SeqTrainingArguments(
    per_device_train_batch_size=16,
    gradient_accumulation_steps=2,
    learning_rate=1e-5,
    warmup_steps=500,
    max_steps=5000,
    fp16=True,
    predict_with_generate=True,
    generation_max_length=225,
)

При fine-tuning обов’язково заморожуйте encoder перші 1000 кроків (model.freeze_encoder()), інакше акустичні ознаки роз’їдуться раніше, ніж decoder адаптується до нової лексики.

Синтез мовлення: що обрати для вашого сценарію?

Модель Латентність (TTFB) Натуральність MOS Клонування Мови
XTTS v2 1.2–2.0 с 4.1–4.3 Так, 3 с референсу 17
StyleTTS2 0.3–0.6 с 4.0–4.2 Так, вимагає адаптації en, + fine-tune
Kokoro-82M 0.08–0.15 с 3.7–3.9 Ні en, ja
Silero TTS 0.05–0.1 с 3.4–3.6 Ні ru, en, de, та ін.
Edge-TTS ~0.4 с (cloud) 4.0 Ні 100+

Для інтерактивних ботів з вимогою TTFB < 300 мс — Silero або Kokoro. Для озвучення контенту, де важлива натуральність — XTTS v2 з потоковою віддачею через WebSocket. Ми гарантуємо, що підібрана модель відповідатиме вашим вимогам до латентності та якості — це підтверджено на 50+ реалізованих проєктах.

Наш досвід та гарантії

10+ років досвіду в NLP та speech processing. 50+ успішних проєктів для fintech, telecom, медицини. Сертифіковані моделі (Model Card + bias audit). Ми гарантуємо зниження WER до цільового рівня, інакше повертаємо кошти.

Що входить у роботу з нами?

Клієнт отримує:

  • Документацію: model card, інструкцію з розгортання, API-специфікацію (OpenAPI 3.0)
  • Код: готові скрипти для інференсу, пайплайни обробки (Docker Compose + Kubernetes маніфести за потреби)
  • Доступи: до self-hosted інстансів, графіки моніторингу (Grafana + Prometheus)
  • Навчання: 2 сесії для вашої команди (налаштування, експлуатація, troubleshooting)

Ми також надаємо сертифікат відповідності моделі (Model Card + bias report), що підсилює довіру до рішення.

Процес роботи та терміни

  1. Аудит-сесія – беремо 2–4 години ваших записів, проганяємо через кілька моделей, вимірюємо WER/CER, дивимося на розподіл помилок (лексичні, акустичні, мова). Займає 1–2 дні.
  2. Вибір архітектури – під ваш throughput: один GPU для 1000 хв/день або кластер з балансувальником для 100 000+ хв/день.
  3. Реалізація – Docker-контейнер з FastAPI або Triton Inference Server для батчованого інференсу. Інтеграція з чергою Kafka.
  4. Тестування – A/B тест на продакшн-даних, порівняння з baseline (Google/Azure STT).
  5. Деплой – CI/CD (GitHub Actions + ArgoCD), моніторинг (Grafana + WER/CER алерти).

Терміни:

  • Базова інтеграція готової моделі – 1–2 тижні.
  • Fine-tuning з підготовкою даних та валідацією – 4–8 тижнів.
  • Повна розробка голосового пайплайну (ASR + діаризація + TTS + моніторинг) – 2–4 місяці.

Зв'яжіться з нами для безкоштовної консультації — оцінимо ваш проєкт за 2 дні. Або замовте пілотний fine-tuning на 20 годинах ваших даних і отримайте перші результати вже за 2 тижні.