Если ты хоть раз строил корпоративный сервис расшифровки голосовых звонков или транскрибировал многочасовые записи митапов, то наверняка знаешь, где спотыкается хваленый Whisper от OpenAI. Да, на чистой студийной речи одного диктора модель выдает приличный текст. Но стоит скормить ей реальный созвон в Zoom, где три человека эмоционально перебивают друг друга на фоне кондиционера и клацанья клавиатуры, как конвейер превращается в кошмар.
Главная беда Whisper — архитектурная слепота к спикерам: модель выдает сплошную стену текста без малейшего понимания, кто именно произнес реплику. Инженерам приходилось городить монструозные костыли: отдельно нарезать аудио, отдельно прогонять его через библиотеку PyAnnote для диаризации (определения говорящих), а затем третьей нейросетью пытаться совместить текстовые таймкоды с голосовыми дорожками. Любой сбой на стыке приводил к галлюцинациям и приписыванию чужих цитат.
Корпорация NVIDIA положила конец этим страданиям, представив открытое флагманское семейство моделей Nemotron 3.5 Speech. Флагман линейки — Nemotron 3.5 Transcribe — возглавил мировой лидерборд Hugging Face Open ASR Leaderboard, предложив сквозную архитектуру со встроенной диаризацией и пословными временными метками из коробки. Разбираем анатомию новинки и запускаем практический пайплайн на Python.
Архитектура SALM: слияние акустики Fastconformer и языковой модели Mamba-Transformer
В отличие от классических ASR-систем, работающих как простой акустический транслятор звука в буквы, Nemotron 3.5 спроектирован как речевая языковая модель — SALM (Speech-Augmented Language Model). Конвейер объединяет четыре фундаментальных блока:
- Акустический энкодер Fastconformer. Оптимизированный модуль сверточного внимания, преобразующий мел-спектрограммы сырого звука с частотой дискретизации 16 кГц в плотные контекстные векторы с восьмикратным сжатием по времени.
- Встроенный модуль диаризации. Замороженная подсеть Nemotron 3 Diarization, которая извлекает голосовые отпечатки (speaker embeddings) каждого участника разговора параллельно с обработкой спектрограммы.
- Языковое ядро Nemotron 3.5 Lightning 30B-A3B. Это большая языковая модель с архитектурой смеси экспертов (Mixture-of-Experts, MoE). Из 30 миллиардов суммарных параметров на каждый токен динамически активируется всего около 4.3 миллиарда весов. При этом блоки модели сочетают слои селективного пространства состояний Mamba-2 и классическое трансформерное внимание, обеспечивая глубокое понимание грамматики и контекста реплик.
- CTC-адаптер для пословных меток (timestamps). Специализированный декодер, синхронизирующий генерируемый текст с временной шкалой аудиодорожки с миллисекундной точностью.
Такой гибридный сплав исключает типичные для старых моделей галлюцинации на участках тишины: языковая модель «слышит» паузы и не пытается додумывать слова там, где звучит только фоновый шум.
Практика: пайплайн транскрипции с диаризацией на Python
Для работы с Nemotron 3.5 компания NVIDIA предоставляет открытый инструментарий NeMo Toolkit. Базовый скрипт распознавания аудиофайла со встроенным разделением реплик по спикерам выглядит предельно лаконично:
import nemo.collections.asr as nemo_asr
def transcribe_audio_meeting(audio_path: str):
# Загрузка весов сквозной модели Nemotron 3.5 Transcribe
model_name = "nvidia/nemotron-3.5-transcribe"
asr_model = nemo_asr.models.EncDecCTCModelBPE.from_pretrained(
model_name=model_name
)
# Запуск пакетного инференса с извлечением гипотез
hypotheses = asr_model.transcribe(
paths2audio_files=[audio_path],
batch_size=1,
return_hypotheses=True
)
# Обработка расшифровки и меток участников диалога
for result in hypotheses:
print("=== Full Detected Dialogue ===")
print(result.text)
if hasattr(result, "speaker_labels") and result.speaker_labels:
print("\n=== Speaker Mapping with Timestamps ===")
for segment in result.speaker_labels:
speaker = segment.get("speaker", "Unknown")
start = segment.get("start_time", 0.0)
end = segment.get("end_time", 0.0)
phrase = segment.get("text", "")
print(f"[{start:.2f}s - {end:.2f}s] {speaker}: {phrase}")
if __name__ == "__main__":
transcribe_audio_meeting("board_meeting_call.wav")
Модель принимает входной аудиофайл длительностью до одного часа за один непрерывный проход без необходимости предварительной нарезки на мелкие отрезки.
Промышленный инференс: компиляция через TensorRT-LLM
Для применения в высоконагруженных телефонных шлюзах и контакт-центрах запуск через PyTorch не дает предельной утилизации GPU. Модели семейства Nemotron полностью оптимизированы для компиляции в высокоскоростные бинарные движки через стек TensorRT-LLM:
# Сборка оптимизированного бинарного движка Nemotron 3.5 Speech
trtllm-build \
--checkpoint_dir ./checkpoints/nemotron-3.5-speech \
--output_dir ./engines/nemotron_trt \
--gemm_plugin float16 \
--max_batch_size 16 \
--max_input_len 8192
# Запуск микросервиса потокового распознавания на базе Triton Inference Server
tritonserver --model-repository=/models/nemotron_speech_trt/ --grpc-port=8001
Для задач живого синхронного перевода и голосовых ассистентов в линейку также включена компактная модель nemotron-3.5-asr-streaming-0.6b весом всего 600 миллионов параметров. Она поддерживает регулируемую задержку потокового распознавания от 80 миллисекунд до 1 секунды, моментально выдавая промежуточные слова по мере их произнесения. О том, как развиваются сквозные аудио-модели и голосовые агенты реального времени, читай в нашем материале про сравнение Hermes Apollo и аудио-нативной сети Dessa.
Лидерборд Open ASR и превосходство над Whisper
В авторитетном бенчмарке Hugging Face Open ASR Leaderboard модель Nemotron 3.5 заняла безоговорочное первое место среди открытых весов. Средний уровень пословных ошибок (Word Error Rate, WER) составил:
- 4.71% на англоязычных тестовых наборах;
- 4.62% на многоязычных выборках (против ~6.8% у Whisper Large v3).
Модель поддерживает 40 мировых языков. При этом встроенная диаризация спикеров без дополнительной настройки доступна для 13 наиболее распространенных языков. Архитектурный сплав Mamba и MoE дает такой же скачок эффективности, как и в зрительных решениях компании: ранее мы разбирали эту механику в анализе мультимодального кодера Nemotron 3.5 Super VL.
Аппаратные требования и эксплуатационные рамки
Перед интеграцией Nemotron 3.5 в свой продакшен-контур обрати внимание на технические требования:
- Требования к видеопамяти: базовая модель Transcribe содержит языковое ядро MoE на 30B параметров (~4.3B активных), поэтому для комфортного инференса в FP16 требуется GPU с 16–24 ГБ памяти (уровня RTX 4090, RTX 6000 Ada или A100). Для более скромных карт лучше выбирать потоковую версию на 0.6B параметров.
- Подготовка звука: модель строго требует аудио с частотой дискретизации 16 000 Гц в моно-формате. Аудиозаписи с частотой 8 кГц (стандартная телефония) или 44.1 кГц требуют обязательного предварительного ресемплинга через
soxилиffmpeg. - Языки диаризации: если распознавание текста работает на 40 языках, то качественное разделение спикеров протестировано на пуле из 13 основных наречий; для редких языков реплики могут объединяться под единым идентификатором.
NVIDIA Nemotron 3.5 Speech задает новый стандарт для открытого распознавания речи: сквозная архитектура наконец-то избавила разработчиков от зоопарка разрозненных библиотек, объединив слух, понимание и разделение голосов в одном элегантном чекпоинте.
