Tencent Hunyuan открыла модель, которая переводит речь на ходу — китайский и английский, с клонированием голоса. Разбираем, что подтверждено замерами авторов, а что пока обещание, и сколько это стоит по железу.
Hy-SimulMT — открытая модель синхронного перевода речи: она слушает поток и говорит перевод, не дожидаясь конца фразы. Заявленная задержка — около 3 секунд по метрике StreamLAAL, лицензия Apache 2.0, веса лежат на Hugging Face. Это первая открытая модель этого класса у крупного вендора, и для рынка это важнее, чем конкретные баллы: до неё синхронный перевод в проде означал покупку закрытого API.
Hy-SimulMT — модель перевода речь → речь в обе стороны между китайским и английским. На вход идёт непрерывный аудиопоток, на выходе — текст перевода и синтезированная речь, причём с клонированием тембра говорящего: слушатель слышит не «голос робота», а тот же голос на другом языке.
Архитектурно это MoE на 30 млрд параметров с примерно 3 млрд активных на токен — то есть по стоимости инференса модель ближе к 3B-классу, а по «знаниям» к 30B. Рядом с текстовой частью стоит аудио-башня (0,66 ГБ в файлах репозитория), которая и превращает звук в токены для модели.
Ключевая инженерная идея — стратегия «сначала сказать, потом поправить». Модель не ждёт полной фразы: она выдаёт гипотезу перевода по мере поступления аудио и переписывает её, когда приходит продолжение. Именно это даёт низкую задержку, и именно поэтому в длинном тексте возможны правки уже произнесённого.
В коллекции на Hugging Face шесть чекпойнтов: перевод «только результат» и вариант Interleave, который дополнительно печатает оригинал (это то, что нужно для субтитров и протокола встречи). Каждый доступен в BF16, FP8 и GGUF.
| Чекпойнт | Что выдаёт | Формат | Вес на диске | Когда брать |
|---|---|---|---|---|
| Hy-SimulMT-30B-A3B | только перевод | BF16 | 60,9 ГБ | эталон качества, H200/H100 |
| Hy-SimulMT-30B-A3B-FP8 | только перевод | FP8 | 32,2 ГБ | когда важна память GPU |
| Hy-SimulMT-30B-A3B-GGUF | только перевод | GGUF | 19,8–33,3 ГБ | эксперименты с llama.cpp |
| ...-Interleave | оригинал + перевод | BF16 | 60,8 ГБ | субтитры и протокол встречи |
| ...-Interleave-FP8 | оригинал + перевод | FP8 | 32,2 ГБ | протокол на одной карте |
| ...-Interleave-GGUF | оригинал + перевод | GGUF | 19,8–33,3 ГБ | локальный тест без vLLM |
Практический вывод: FP8-вариант — это половина веса BF16 при том же наборе файлов (17 шардов вместо 17, но по 1,81 ГБ вместо 3,62 ГБ). Для одной карты на 48–80 ГБ это разница между «влезает с трудом» и «влезает с запасом под KV-кэш».
Показательная деталь: самый скачиваемый вариант — Interleave-GGUF (3077 загрузок), а вовсе не «правильный» BF16 (269). Люди хотят попробовать модель на том, что есть под рукой, даже если GGUF-путь ещё требует патча llama.cpp. Это классический разрыв между тем, как модель задумана, и тем, как её трогают впервые.
Важно, что озвучка не входит в модель. Hy-SimulMT отдаёт текст, а речь собирает отдельный TTS-сервис. В документации SimulInfer предлагается Qwen3-TTS (0,6B) через vLLM-Omni: он поднимается на своём порту и получает от SimulInfer текст вместе с эмбеддингом голоса говорящего.
Отсюда простая истина: «задержка 3 секунды» — это метрика модели, а не вашего стенда. Реальная задержка в звонке = VAD + инференс + TTS + сеть. Если TTS отвечает медленно, синхронности не будет даже при идеальном чекпойнте.
Авторы сравнивают модель с девятью системами на четырёх коротких наборах и на длинном RealSI. В таблице ниже — баллы из карточки модели. Hy-SimulMT лидирует на FLEURS (90,3), ACL6060 (81,2) и RealSI-Sentence (84,7), но проигрывает Qwen3.8-LiveTranslate на CoVoST2 (75,5 против 82,1) и отстаёт от Gemini3.5-LiveTranslate на FLEURS.
| Система | FLEURS | CoVoST2 | ACL6060 | RealSI-Sentence |
|---|---|---|---|---|
| Qwen3.8-LiveTranslate | 88.4 | 82.1 | 80.5 | 84.4 |
| Hy-SimulMT | 90.3 | 75.5 | 81.2 | 84.7 |
| Gemini3.5-LiveTranslate | 92.4 | 74.4 | 82.6 | 82.2 |
| Confucius4 R2T2 | 89.4 | 76.8 | 76.1 | 77.7 |
| Seed-LiveInterpret2.0 | 85.8 | 67.7 | 74.8 | 80.0 |
| SimulS2ST-Omni | 78.6 | 66.6 | 73.1 | 77.4 |
| GPT-Realtime-Translate | 77.7 | 50.8 | 76.4 | 76.7 |
| XunFei-Simult-Interpretation | 73.4 | 57.0 | 57.5 | 70.9 |
| SeamlessStreaming | 72.8 | 60.9 | 49.8 | 56.9 |
Отдельный блок — сравнение с людьми. Авторы взяли 18 свежих записей примерно по 6 минут из десяти предметных областей (от медицины до спорта) и позвали шесть синхронистов с сертификатами CATTI: троих первого уровня и троих второго. Заявление: качество сопоставимо, задержка часто ниже. Оговорка самих авторов — выборка маленькая, и это не оценка качества голоса или похожести тембра.
В README указано прямо: BF16-веса занимают около 57 GiB до KV-кэша и служебных аллокаций, и одной H200 достаточно. Это значит, что карта на 48 ГБ в BF16 не подойдёт — либо FP8, либо два устройства с tensor-parallel.
| Путь запуска | Что нужно | Плюсы | Ограничения |
|---|---|---|---|
| SimulInfer + vLLM | Python 3.11/3.12, NVIDIA GPU, vLLM ≥ 0.31 | веб-страница, файлы, WebSocket, TTS | нужна сборка vLLM с HYV3ForCausalLM |
| SimulInfer, 2 GPU | те же плюс --gpus 0,1 --tensor-parallel-size 2 | BF16 влезает на двух картах | больше узких мест по шине |
| SGLang-Omni | Linux, CUDA, Docker, ~57 GiB | OpenAI-совместимые эндпоинты, realtime WS | только BF16 translation-only чекпойнт |
| llama.cpp + GGUF | аудио-способный llama.cpp с патчем PR #31198 | Q4_K_M ≈ 20 ГБ | PR не влит в upstream, llama-server ещё нет |
Самый короткий путь — одна команда в каталоге SimulInfer: bash deploy.sh --install-server с флагом --model и HF-ID или путём к чекпойнту. Она ставит зависимости в изолированные окружения, готовит модель, поднимает vLLM и веб-сервис. Пошаговый разбор команд, портов и типичных ошибок мы собрали отдельно — в гайде «Синхронный перевод локально».
Модель имеет смысл, если у вас есть NVIDIA-карта на 80 ГБ (или две поменьше), трафик в основном китайско-английский, и вам критично, чтобы данные не уходили в чужое облако. Типичные сценарии: расшифровка и перевод внутренних встреч, субтитры к вебинарам, перевод интервью для редакции.
Подождать стоит в трёх случаях. Первый: нужен русский как направление — публичных замеров нет. Второй: нужен продакшен с SLA — проекту неделя, два открытых issue и невлитый патч llama.cpp. Третий: нужен именно голос, а не текст — без настроенного TTS никакого «перевода голосом» не будет, и это отдельная инфраструктура.