21 августа 2026 г.
Голосовой агент отвечает без паузы: сервер Nari Labs выдаёт первый звук за 34 мс
Nari Labs открыли сервер речи на Qwen3-TTS: миллион знаков стоит около $2 против $100 у ElevenLabs.

Речь начинается через 34 миллисекунды после запроса. Паузу такой длины ухо не ловит.
Nari Labs собрали сервер вокруг открытой модели Qwen3-TTS, выложили код и замеры (блог Nari Labs, 19.08.2026). Голос для агента теперь можно держать на своём железе, а не покупать у сервиса поштучно.
Не хотите разбираться сами? Внедряем ИИ в ваш бизнес: задачи без лимита, одна цена в месяц, отмена в любой момент.
Скорость держится под нагрузкой. До 10 запросов в секунду даже самые медленные ответы укладываются в 50 мс, при 20 запросах — в 100 мс. На десяти запросах сервер выдаёт около 630 символов речи в секунду.
Раньше за такую скорость боролись. На том же бенчмарке vLLM-Omni после тюнинга под низкую задержку отвечает за 56,8 мс при одном запросе в секунду и за 93,5 мс при шести. VoxServe стартует с 49,3 мс, но на шести запросах уходит в 363,2 мс.
Цена миллиона знаков (замер Nari Labs, 19.08.2026):
- свой сервер на H100 за $4.29 в час: около $2 - Cartesia Sonic 3.5: $49 - ElevenLabs V3: $100
Обе платные модели при этом отдают первый звук медленнее.
Ставится одной командой. `docker run --rm --gpus all -p 8000:8000 -e HF_TOKEN -e QWEN3_TTS_PROFILE=ttfa -v nari-qwen3-tts-cache:/home/nari/.cache ghcr.io/nari-labs/nari-qwen3-tts:latest`. Нужна одна NVIDIA H100, Linux и драйвер под CUDA 13.0, модель тянется с Hugging Face по токену.
Без Docker сборка идёт через uv: `uv sync --frozen --extra codec --extra cuda --extra serving`, потом `uv run --frozen nari-qwen3-tts-server --profile ttfa`. Профиль ttfa включает режим низкой задержки, по умолчанию стоит balanced. Готовность сервера показывает запрос на `/ready`.
Озвучка запрашивается привычным для OpenAI-клиентов вызовом `POST /v1/audio/speech`, есть и стриминг по WebSocket.
Хватает и игровой карты. На RTX 4090 автор получил около 10 одновременных запросов при 50 мс, поправив конфиг: у карты нет FP8. Для 3090 кастомные CUDA-ядра, возможно, придётся переписывать.
Голосовому агенту нужен стриминг входа. Текст модели льётся в синтез, не дожидаясь конца предложения, и WebSocket-режим тоже укладывается в 50 мс. Префикс модели занимает 10 токенов, кэш префикса не нужен.
Первый сторонний прогон нашёл дыру. Сборка поднялась на RunPod по готовому шаблону примерно за $4: обычный запрос отдал корректную речь, а WebSocket сорвался в бессвязицу.
Автор обещал починить срыв в WebSocket-режиме.
Первоисточник