Вопрос или проблема
Для внутреннего проекта я ищу решение для распознавания речи, которое соответствует следующим критериям:
- Оно должно быть с открытым исходным кодом и работать офлайн (т.е. не только использовать облачные API)
- Оно должно быть обучаемым, а не только использоваться для вывода
- Оно должно работать в среде Windows, но может использовать Cygwin или другие варианты «виртуализации»
- Поскольку оно должно быть обучаемым, оно также должно поддерживать доступ к GPU/CUDA
Пакеты, которые я пробовал до сих пор, это Kaldi, DeepSpeech, DeepSpeech2 и CMU Sphinx
Kaldi и DS(2) ориентированы на Linux. Использовать WSL (Подсистема Windows для Linux) было бы идеально, за исключением того, что он не может использовать GPU и, следовательно, не подходит для обучения. Cygwin пока что выглядит очень обещающим, так как он аккуратно предоставляет доступ к GPU, но я сталкиваюсь с другими проблемами при компиляции пакетов (например, для Kaldi я не могу скомпилировать OpenFST в Cygwin). CMU Sphinx — единственный работающий пакет, но его качество было очень низким по сравнению с Kaldi или DS(2).
Я потратил довольно много времени, пытаясь заставить все работать, но пока только выявил проблемы.
Если кто-то смог запустить достойную систему (типа качества Kaldi / DS(2)) под Windows, я с радостью приму рекомендации.
Вы должны обучаться на Linux, у вас нет шансов работать на Windows. В противном случае Kaldi должен быть вашим выбором.
Ответ или решение
Вопрос о выборе качественного тренируемого решения для распознавания речи на платформе Windows является актуальным для многих разработчиков и исследователей в области IT. Кратко рассмотрим требования вашего проекта и возможные варианты.
Kритерии выбора
- Открытость и офлайн работа: Вам нужно решение, которое можно использовать без联网ного доступа.
- Тренируемость: Система должна поддерживать обучение, а не только выполнять предсказания.
- Поддержка Windows: Программа должна быть совместима с Windows или ее виртуальными окружениями, такими как Cygwin.
- Доступ к GPU/CUDA: Наличие поддержки графических процессоров для повышения скорости обучения существенно.
Проблемы с текущими решениями
Вы уже испытали несколько популярных пакетов, таких как Kaldi, DeepSpeech и CMU Sphinx, но столкнулись с рядом препятствий.
- Kaldi и DeepSpeech действительно предлагают впечатляющее качество распознавания, но их основная архитектура ориентирована на Linux, что создает сложности для использования в Windows.
- Cygwin вызывал трудности при компиляции OpenFST и других библиотек, необходимых для Kaldi.
- CMU Sphinx работает на Windows, но качество распознавания далеко от ваших требований.
Рекомендации по использованию Linux для обучения
Как упомянуто в комментариях, настоятельно рекомендуется рассмотреть возможность переноса процесса обучения на Linux. Это может быть достигнуто несколькими способами:
-
Использование виртуальных машин: Запуск Linux-окружения на Windows с помощью VirtualBox или VMWare. Это обеспечит полную поддержку всех необходимых библиотек и GPU.
-
Двойная загрузка (Dual Boot): Установка Linux на отдельный раздел диска позволяет использовать полные ресурсы системы, но потребует некоторой настройки и времени.
-
WSL2 (Windows Subsystem for Linux): Хотя указано, что WSL не поддерживает GPU для обучения, вы можете попробовать использовать WSL2 с поддержкой графических драйверов для некоторых специфических задач, хотя это может ограничивать ваши возможности.
Альтернативные решения
Если вы готовы рассмотреть другие пакеты, вот несколько вариантов со схожими возможностями:
-
Mozilla DeepSpeech: С учетом ваших требований, это решение может быть менее качественным, чем Kaldi, но оно открыто и поддерживает обучение.
-
ESPnet: Это еще одно открытое решение для распознавания речи, которое имеет возможность обучения и хорошую документацию. Самый последний релиз поддерживает использование PyTorch и CUDA, что позволит вам использовать GPU. Система поддерживает как критические технологии для научных исследований, так и высококачественные модели.
-
TensorFlow Speech Recognition: Если вас интересует возможность дальнейшей кастомизации и использованию различных архитектур на базе TensorFlow, эта библиотека также предоставляет подходящие инструменты.
Заключение
В конечном итоге, для достижения наиболее качественного и надежного решения будет разумным использовать Linux в качестве основной платформы для разработки и обучения ваших моделей распознавания речи. Если ваш проект позволяет, рассмотрение дополнительных решений, таких как ESPnet илиTensorFlow, вдобавок к вашим текущим пакетам, может оказаться наиболее продуктивным. Протестируйте эти решения на небольших выборках данных, чтобы оценить качество и производительность перед развертыванием более масштабных проектов.