Comments 13
Проблема была в том, что в ONNX Runtime 1.24.1 сломали работу с кешем HF для больших моделей (до этой версии все работало). Но уже вышла версия 1.24.2, где проблему исправли.
P.S. Касательно вашей проблемы с numpy.float32 - я надеялся, что указания типов аргументов достаточно, но очевидно был не прав. В следующей версии onnx-asr добавлю явную проверку и сообщение об ошибке.
Сударь. Вам еще в чатике распознавания речи написали, что реппозиторий https://github.com/borisovai/voice‑input отдает 404, оценить код никто не сможет...
Также есть отдельные настройки по шумодаву и в некоторых ситуациях, может вести себя не так как ожидается - например если говорить очень громко, может заигнорить и пропустить.
На каких данных сверяли wer?
Статью нагаллюцинировал ИИ, ссылка выдумана. :-D
Спасибо за замечание. Репозиторий временно недоступен — разбираюсь с доступом к GitHub-аккаунту, восстановлю в ближайшее время.
Вот альтернативные зеркала:
https://gitflic.ru/project/borisovai/voice-input
https://gitverse.ru/borsiovai/voice-input
По шумодаву — да, есть такой момент. Silero VAD при очень громком сигнале может некорректно определять границы речи. Если столкнётесь — можно попробовать уменьшить чувствительность микрофона в системных настройках. Буду рад, если опишете конкретный сценарий — посмотрю детальнее. WER считал на аудиокнигах (TTS Silero + живые записи), тексты разной сложности — короткие фразы 6-7с и длинные отрывки 25-30с. Референсные тексты размечены вручную, метрика — стандартный Word Error Rate через jiwer.
Тут в целом со ссылками беда - ссылки на GigaAM и onnx-asr тоже битые. Причем, судя по неразрывному дефису в ссылке, я догадываюсь о причинах)
а parakeet-tdt-0.6b-v3 смотрели? он вроде лучше виспера, и есть разные форматы.
Смотрел parakeet через onnx-asr — к сожалению, при загрузке
через HuggingFace Hub модель падает с ошибкой на external data path
(веса .onnx_data ищутся не в кеше, а по абсолютному пути из метаданных).
Если у вас получилось запустить — интересно узнать как.
В итоге остановился на GigaAM v3-e2e-rnnt — 3.3% WER, 0.66с на CPU.
Проблема была в том, что в ONNX Runtime 1.24.1 сломали работу с кешем HF для больших моделей (до этой версии все работало). Но уже вышла версия 1.24.2, где проблему исправли.
P.S. Касательно вашей проблемы с numpy.float32 - я надеялся, что указания типов аргументов достаточно, но очевидно был не прав. В следующей версии onnx-asr добавлю явную проверку и сообщение об ошибке.
А на нормальном ЯП инференсить не пробовали?
Инференс и так идёт на «нормальном» — ONNX Runtime под капотом это C++. Python здесь тонкая обёртка: принял аудио, вызвал model.recognize(), получил строку. Профилировал — на стороне Python тратится <5мс из 660мс общего времени, остальное внутри ONNX Runtime.
Переписать обёртку на C++ или Rust можно, но выигрыш будет в пределах этих 5мс — меньше 1% от общей задержки. При этом потеряем удобство интеграции с экосистемой (Silero VAD, faster-whisper, HuggingFace Hub — всё это Python-first).
Если узкое место когда-нибудь сдвинется из модели в обвязку — тогда да, имеет смысл. Пока бутылочное горлышко целиком в инференсе ONNX, и язык обёртки на результат не влияет.
Моделька gigaam-v3-e2e-rnnt просто чудо. Быстра. Распознаёт тихое бубнение, когда вокруг что-то говорят. Вот мой скрипт, чтобы попробовать, и описание процедуры, как удалить модель после того, как попробовал.
А модель https://huggingface.co/antony66/whisper-large-v3-russian не тестили?
Спасибо за наводку, не тестировал конкретно эту. Посмотрел карточку на HF — файнтюн Whisper large-v3 на Common Voice 17, автор показывает 6.39% WER vs 9.84% у оригинала. Добротная работа.
Но базовая модель — large-v3 (~3 ГБ, 1.5 млрд параметров). Файнтюн не меняет архитектуру, поэтому задержка остаётся в том же диапазоне: ~2.3с на RTX 4090, на CPU — 10–15с. Для push-to-talk с бюджетом <1с не проходит.
Для пакетной транскрибации на GPU — определённо стоит посмотреть.
скачать и установить на windows так и нет возможности
"Готовые EXE-файлы для Windows доступны в Releases — Python не требуется.
Распакуйте ZIP и запустите
ScribeAir.exe
. Модели загрузятся автоматически при первом запуске."
Только вот ветки Releases у вас нет там.
Как я снизил WER с 33% до 3.3% для русской речи на CPU: сравнение GigaAM, Whisper и Vosk