Комментарии 13
О, интересная альтернатива. vosk давно использую, про входной формат не скажу что недостаток, поток просто преобразуется в этот формат и все. С длинными звуковыми файлами особых проблем не замечал. Но что редкие слова и названия путает - то да. И часто пошлит на ровном месте. Но тут щупать и сравнивать нужно, а это тема не для одного комментария. Насчёт жуков - любая работа должна быть оплачена, спасибо за относительно свободную версию.
И насчёт скорости загрузки модели - до двух минут? Это при каких условиях? Секунд 10 все стартует.
Условия, при которых у меня Vosk стартует около 2-3 минут:
Беру например модель model-ru-0.42, запускаю ее на C#, через nuget. пакет Vosk 0.3.38. Запуск делаю на процессоре, параметры системы указаны в статье.
И при этих условиях модель полностью загружается около 3 минут!
профайлинг пробовали делать? посмотреть task manager и т.п. на предмет что больше загружается (диск, память, процессор). Пробовать антивирус отключить, пробовать повторить то же на другом компе. Уж больно большая разница 10 секунд и 3 минуты.
Про процессор и память и в статье написано, а вот по поводу проверки на другом железе - изначально хотел сделать ее перед публикацией второй части (где будет сравниваться работа на GPU), но...запустить vosk на GPU так и не удалось (в том числе и с проектом sherpa-onnx, что рекомендовали в комментариях)
Возможно позже, как руки дойдут, попробую таки запустить vosk на GPU (whisper вроде нормально запускается) и сделать вторую часть
интересно, мне казалось что Whisper лучше всех, но видимо дело в русской речи. Кстати 1) для нее есть же GigaAM от сбера, по качеству хз, но думаю старались 2) гонять лучше на видеокарте, благо что они сейчас доступны 3) Whisper активно правится сообществом, есть например distil-whisper который по заявлениям в 7 раз меньше и на 1% хуже, возможно есть и более быстрые библиотеки по инференсу 4) можно на халяву через гугл апи 60+ минут аудио в месяц переводить, качество возможно хуже, но зато быстро и просто
Тоже смотрел и пытался пощупать GigaAM , но увы она на питоне (да, там вроде как есть контейнер докер и можно ее запустить), а я все же больше про C#, возможно позже таки попробую разобраться и в ней, к слову, она есть в исследование от Alpha Cephei , о котором я в конце статьи упомянул.
Насчет запуска на видеокарте (ах) - согласен и сейчас в процессе этого. Интересно будет посмотреть на результаты.
Про distil-whisper не слышал, спасибо за наводку!
По поводу использования сторонних, готовых сервисов - да, это удобней, быстрей и проще, но...появляется зависимость, которая может сыграть злую шутку!
Спасибо за статью
Кстати, версия для новых моделей 0.52 в разработке. Уже есть на githube в ветке
https://github.com/alphacep/vosk-api/tree/vosk-new
Обёртки там пока для Python и Java, для C# тоже сделаем.
Спасибо за спасибо!)))
А можете посоветовать мануал какой нить для того чтобы пересобрать Vosk на CUDA?
На сайте о Vosk есть упоминание, но без какой то конкретики! Мол - "...если хотите Vosk под CUDA, то можете сами пересобрать все!)))" А как, что, где и т.д. - не объясняется!)))
Я конечно пытался пересобрать https://github.com/alphacep/kaldi через w64devkit. Скачал CUDA (11.8 и с новой версией тоже пробовал) от NVIDIA, установил все необходимое для С++ в Visual Studio и даже решил проблему интеграции VS и CUDA, НО...
У меня ничего не вышло!(((
Т.е. я скачал данный реп, запустил w64devkit, перешел в корень, создал там папку build и перешёл в нее, и запустил команду cmake .. -DBUILD_SHARED_LIBS=ON (хотя там по идее должно быть какое то указание, на то что мне нужна сборка именно с CUDA) и нефига!(((
Пишет ошибку что не может найти CUB (202 строчка в CMakeLists.txt в данном репе)
А возможно я вообще....изначально по неправильному пути пошел!)))
Это без шансов. Я только под Linux всё делаю.
Если хочется C# и Vosk 0.52 на GPU, попробуйте его через sherpa-onnx:
https://github.com/k2-fsa/sherpa-onnx/blob/master/dotnet-examples/offline-decode-files/Program.cs
https://k2-fsa.github.io/sherpa/onnx/csharp-api/index.html
и с GPU должно работать, и точность повыше
У Whisper продолжительность записи не ограничена 30 секундами!!! Лекции продолжительностью час спокойно расшифровывал.
А по конкретней? Какие условия использования, что за вишпер и т.д.?
Любой виспер, любые условия, правда всё на пайтоне. Конкретнее:
1. Локально (или в гугл-колаб, или на сервере) устанавливаем библиотеку, скачиваем любоую из моделей от tiny до large и расшифровываем аудио и видео (https://github.com/openai/whisper). Если есть видеокарта с ГПУ и памяти хватает на выбранную модель, то работает гораздо быстрее.
2. Через запросы в openai (python или командная строка). Нужен аккаунт, впн из РФ и платить за токены. Вот тут есть ограничение 25 Мб, но это сильно больше 30 сек.
Это основные варианты. Есть еще возможность бесплатно запускать модели на Hugging Face и, наверное, еще где-то.
Сравнение Vosk и Whisper