Instructions to use x0rium/voxtream2-ru-jetson-onnx with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- TensorRT
How to use x0rium/voxtream2-ru-jetson-onnx with TensorRT:
# No code snippets available yet for this library. # To use this model, check the repository files and the library's documentation. # Want to help? PRs adding snippets are welcome at: # https://github.com/huggingface/huggingface.js
- Notebooks
- Google Colab
- Kaggle
VoXtream2-RU ONNX для NVIDIA Jetson
Это переносимая часть
x0rium/voxtream2-ru-jetson:
четыре ONNX-графа и остальные модельные данные, необходимые для запуска
русского TTS на Jetson без PyTorch в процессе синтеза.
Готовые TensorRT plan-файлы здесь не публикуются. Они зависят от архитектуры GPU, JetPack/L4T и точной сборки TensorRT, поэтому создаются непосредственно на целевом Jetson из этих ONNX.
Что входит в релиз
| Файл | Назначение | Размер, MiB |
|---|---|---|
models/phone-encoder.onnx |
Кодировщик фонем, длина 2–640 | 175,8 |
models/temp-former-q1-q420.onnx |
Единый temporal graph: q=1 для генерации, q=420 для sink replay | 374,3 |
models/dep-former-q1-q2.onnx |
Acoustic dep-former вместе с audio head | 273,2 |
models/mimi-decoder-step.onnx |
Один потоковый шаг Mimi decoder | 110,7 |
assets/audio-embeddings.bf16 |
Таблица audio embeddings в raw BF16 | 64,1 |
assets/mimi-decoder-initial-state.json и .bin |
Начальное состояние Mimi | 4,0 |
assets/phoneme-to-token.json |
Таблица фонем VoXtream2-RU | <0,1 |
voices/example-f1.json и .bin |
Подготовленное состояние демонстрационного голоса | 193,6 |
Общий объём — около 1,17 GiB. Размеры, SHA-256, параметры сборки и
происхождение файлов находятся в manifest.json. Полный
контракт входов, выходов и state tensors TensorRT записан в
abi.json.
Быстрый путь
hf download x0rium/voxtream2-ru-jetson-onnx \
--revision v0.2.2 \
--local-dir release
Дальше на Jetson нужно:
- собрать runtime-образ без PyTorch;
- проверить SHA-256 скачанных файлов;
- собрать четыре TensorRT engine с указанными профилями;
- собрать два небольших CUDA kernel для
sm_87; - скачать зафиксированный набор RUAccent;
- выполнить первый синтез или запустить резидентный потоковый процесс.
Все команды, включая первый WAV и проверку torch_imported=false, приведены в
инструкции
docs/jetson-install.md.
Примеры голоса с Jetson
Все записи ниже сгенерированы опубликованным runtime на Jetson Orin Nano 8 GB,
без PyTorch в процессе синтеза. Формат файлов — PCM WAV, 24 кГц, mono. Точный
текст после нормализации, длительность, RTF и SHA-256 собраны в
samples/manifest.json.
Обычная речь
Привет! Я работаю прямо на компактном Джетсоне и начинаю говорить ещё до того, как фраза сгенерирована целиком.
Длинная связная реплика
Представьте домашнего голосового помощника, который работает локально и не зависит от качества интернета. Утром он сообщает прогноз погоды, напоминает о встречах и включает музыку. Днём помогает вести список дел, управляет освещением и отвечает на простые вопросы. Вечером читает сообщения и продолжает разговор с того места, где вы остановились. Вся обработка речи выполняется на небольшом компьютере, поэтому ответ приходит быстро, а личные данные остаются дома. Даже если соединение пропадёт, основные команды и озвучивание продолжат работать. Система остаётся автономной.
Длительность — 46,16 с, RTF — 0,851. Во время этой реплики runtime один раз пересобрал sink-attention cache и выполнил 420 replay-шагов за 0,112 с.
Дата, время, процент и температура
Сегодня 1 сентября 2026 года. Время 18:45, заряд аккумулятора — 73,5 процента, температура — 42 градуса.
Телефонный номер
Телефон службы поддержки: +7 999 123-45-67.
Текущий normalizer ошибочно воспринимает сырой номер как одно большое число. Поэтому в frontend передана подготовленная форма: «плюс семь, девять девять девять, один два три, четыре пять, шесть семь». Это ограничение не скрыто в демонстрации и отражено в manifest.
Деньги, дробь и единицы измерения
Заказ стоит 12 490 рублей 50 копеек. Расстояние — 3,7 километра, скорость — 60 километров в час.
Версия, сборка и код подтверждения
Версия 2.4.1, сборка 2026-09-01. Код подтверждения: 804 217.
Версия, дата сборки и код переданы словами и отдельными цифрами. Сырые строки
вида 2.4.1 и 804 217 текущий normalizer читает как дробь и большое число;
подготовленный текст приведён в manifest.
Что исполняется на устройстве
текст
└─ ru-normalizr → RUAccent ONNX → espeak-ng
└─ phone encoder (TensorRT BF16)
└─ temp_former (TensorRT BF16 + CUDA Graph)
└─ dep_former (TensorRT BF16 + CUDA Graph)
└─ Mimi decoder (TensorRT BF16)
└─ PCM s16le, 24 kHz, mono
PyTorch использовался при экспорте, но не установлен в проверенном окружении синтеза. Runtime выдаёт PCM по 1920 сэмплов, то есть по 80 мс звука, не ожидая завершения всей реплики. Для диалога модели и RUAccent держатся в одном резидентном процессе.
Как послушать результат на macOS
Файл, созданный параметром --output, — обычный WAV. Скопируйте его с Jetson и
запустите системный консольный проигрыватель:
scp jetson:/path/to/smoke.wav .
afplay smoke.wav
Если сохранён не WAV, а сырой PCM-вывод, проигрывателю нужно явно сообщить формат:
brew install ffmpeg
ffplay -nodisp -autoexit -f s16le -ar 24000 -ac 1 output.pcm
Бинарный stdout резидентного процесса — это записи протокола с заголовками, а
не WAV и не сплошной PCM. Его нельзя напрямую передавать в afplay или
ffplay; используйте playback-клиент из GitHub runtime, который извлекает
PCM-чанки.
Проверенная конфигурация
- Jetson Orin Nano 8 GB;
- JetPack 6.2.3 / Jetson Linux R36.5.2;
- CUDA compiler 12.6.68;
- TensorRT package
10.3.0.30-1+cuda12.5; - TensorRT BF16;
- Python runtime без импорта PyTorch.
| Проверка | Результат на этой конфигурации |
|---|---|
| Первый PCM-чанк короткой реплики | 0,418 с после получения запроса |
| RTF короткой реплики | 0,924 |
| Длинная реплика | 42,32 с аудио, RTF 0,852 |
| Sink-attention rebuild | 420 шагов за 0,112 с |
| Текст длиннее phone-профиля | 767 позиций → 2 сегмента, 55,76 с аудио, RTF 0,849 |
| Peak RSS резидентного процесса | 3519,5 MiB |
Единый temp_former с профилями q=1/q=420 прошёл короткую побитовую
регрессию, длинную генерацию через границу sink-attention и A/B-прослушивание.
В проведённой проверке слышимой разницы после восстановления кэша не было.
Подробные параметры сборки и результаты находятся в
validation/jetson-orin-nano-r36.5.2.json.
Это измерения одного устройства, а не универсальный результат VoXtream2-RU.
Отдельный прогон новой инструкции в чистом каталоге заново собрал все четыре
engines и получил 7,12 с аудио с RTF 0,893, без неизвестных фонем.
Что не входит
- TensorRT
.engine, поскольку они не являются переносимыми; - RUAccent — он скачивается из исходного репозитория с зафиксированной revision;
- исходный checkpoint и инструменты PyTorch — они нужны только для повторного экспорта модели или подготовки нового голоса;
- исходная аудиозапись голоса;
- готовый сетевой TTS-сервис.
Релиз уже содержит один голос, достаточный для запуска. Подготовка другого голоса пока не сведена к одной поддерживаемой команде: это отдельная офлайн- операция с PyTorch, prompt cache и fixed-prompt state. Сам процесс синтеза после такой подготовки остаётся PyTorch-less.
Ограничения
- Проверен Jetson Orin (
sm_87); другие поколения Jetson пока не проверялись. - Русская нормализация ошибается на части падежей, версиях программ, телефонных номерах и единицах измерения.
- Phone encoder намеренно собран с TensorRT-профилем до 640 позиций на один
сегмент. Это не предел общей длины: runtime
v0.2.2автоматически делит более длинный текст по естественным границам и продолжает тот же PCM-поток. На границе сегмента возможно небольшое изменение просодии. - Резидентный протокол обрабатывает реплики последовательно; отмена текущей реплики и несколько параллельных клиентов не реализованы.
- Это исследовательский runtime и набор воспроизводимых артефактов, а не поддерживаемый облачный API.
Происхождение и лицензия
ONNX и производные модельные данные экспортированы из
simba9/voxtream2-ru,
который основан на herimor/voxtream2. Зафиксированная исходная revision —
79475fec8ada3b507a6a2be659e0f2e154fdf3c0.
Модельные артефакты сохраняют условия OpenRAIL-M; полный текст находится в
LICENSE. Код Jetson runtime опубликован отдельно под MIT.
- Downloads last month
- -