Прослушать статью вместо чтения

RuVox — desktop-приложение для быстрого прослушивания текстов и статей на русском языке. Синтез полностью локальный: без GPU, без облака, текст никуда не отправляется.

Задача — временно снять нагрузку с глаз. Оригинал остаётся перед глазами, текущее слово подсвечивается, а непонятный на слух фрагмент можно тут же уточнить по тексту.

Окно RuVox: очередь записей слева, текст статьи с подсвеченным словом и панель воспроизведения сверху

Примеры озвучки

Один и тот же фрагмент технической статьи, прочитанный тремя движками. Аудио загружается только после нажатия кнопки воспроизведения.

Тёмная сторона инлайнинга и мономорфизации

Я чувствовал себя умным. Потратив неделю на разработку инкрементального лексера, который позволил бы pdx.tools десериализовать распакованные сохранения с постоянным потреблением памяти, я был в восторге от интеграции. Я очень старательно работал над созданием оптимизированного десериализатора serde, который бы извлекал данные из одолжительного (lending), инкрементального лексера без тех недостатков производительности, что видны в serde_json.

Нормализация

Быстрые лёгкие движки читают только русский текст: английские слова, код и спецсимволы они произнести не могут, а пропускать фрагменты — значит терять смысл. Поэтому перед озвучкой RuVox переписывает текст так, чтобы он звучал естественно.

getUserData() гет юзер дата
user_id юзер ай ди
API эй пи ай
v1.2.3 один точка два точка три
2024-05-12 двенадцатое мая две тысячи двадцать четвёртого года
user@example.com юзер собака экзампл точка ком
!= не равно
-> стрелка

Блоки кода по умолчанию заменяются фразой «далее следует пример кода на пайтон», в режиме «Читать полностью» проговариваются целиком. Результат видно в диалоге предпросмотра до синтеза: слева оригинал, справа то, что будет прочитано вслух.

Возможности

Установка

Готовые сборки — в Releases.

Windows 10 22H2+ / 11

*-setup.exe

NSIS-установщик. WebView2, mpv и ONNX Runtime встроены, автообновление из приложения.

Debian / Ubuntu

*.deb

sudo dpkg -i ./ruvox_*.deb. Системный mpv ставится автоматически как зависимость, обновляется вместе с системой.

Любой дистрибутив Linux

*.AppImage

Запускается напрямую (нужен FUSE; там, где его нет, — --appimage-extract-and-run). mpv встроен, автообновление из приложения.

Голосовая модель движка скачивается по запросу при первом использовании (для Silero Native — бандл ~230 МБ). Нужны Windows 10 22H2+ / 11 (x86_64) либо Linux с X11 или Wayland (Ubuntu 24.04+, Debian 13+, Fedora 40+, Arch).