Free, open source, offline, DIY smart speaker platform oriented to Russian language.
Lite Voice Terminal это клиент-серверная платформа с открытым исходным кодом для создания "легких" смарт колонок, не требующих использования онлайн-сервисов для распознавания голоса.
"Легкий" означает что смарт колонка (LVT клиент) может быть собрана на Raspberry Pi Zero или подобном маломощном одноплатном компьютере с достаточно чувствительным микрофоном и возможностью вывода звука.
Распознавание голоса и обработка команд выполняется на установленном в локальной сети kaldi/vosk API сервере. В целом можно сказать что Intel Core i3 / 16Gb достаточно для обеспечения работы 10-20 терминалов, 5-7 из которых могут одновременно поддерживать диалог с пользователем "в реальном времени".
Архитектура сервера LVT в целом предполагает расширение функциональности ассистента за счет отдельных модулей-скилов, однако реализация ориентирована в первую очередь на совместную работу с платформами автоматизации умного дома, таких как Home Assistant, для которого предусмотрен свой модуль интеграции
Запланированные изменения:
- Отказ от избыточной универсальности, поддержка только русского языка.
- Упрощение и оптимизация серверной части
- Расширение протоколов управления LVT и разработка модуля интеграции с Home Assistant.
- Оптимизация клиента LVT
- Клиент LVT может работать как под unix (RaspberryPi с микрофоном) так и на windows платформе
- Не требует использования внешних онлайн сервисов
- Обмен между клиентской и серверной частью реализовано по протоколу websock с поддержкой SSL
- Не требует специальной настройки голосовой активации, имя (несколько имен) ассистента задается в файле настройки.
- Идентификация говорящего по голосу (работает только на достаточно длинных фразах, на текущий момент отключено)
- Возможность расширения функций ассистента за счет написания своих модулей
- Интеграция в Home Assistant
- Запуск сервера LVT на Unix
- Запуск сервера LVT на Windows
- RHVoice TTS
- Windows TTS
- Docker-образ LVT сервера
- kaldi: офлайн-распознавание речи
- vosk API: программный интерфейс для kaldi
- pymorphy2: морфологический анализатор для русского и украинского языков
- RHVoice: синтез голоса для русского языка
- WebRTC VAD: Определение наличия голоса во входном потоке
- ReSpeaker components: Взаимодействие с микрофоном и методы обработки звуков
- mdmTerminal2: Много идей и кода позаимствовано из реализации голосового терминала MajorDoMo
- Установка и настройка сервера LVT
- Установка и настройка терминала LVT
- Примеры реализации терминалов
- Описание протокола LVT
- Разработка скиллов (skill, навык)
- Первая итерация проекта (ветка заморожена).
LVT is distributed under LGPL v2.1 or later. Components and API used may be a subject of other licenses.