Экспериментальный функционал - noant/Lazurite GitHub Wiki
В репозитории LazuriteExperimental выложены исходники одного экспериментального плагина. В нем заложен функционал голосовых команд для Lazurite, но так как некоторый функционал еще сырой (а иной требует еще и особой настройки для каждого пользователя), то этот плагин не вошел в основной релиз и требует доработки.
На данный момент структура плагина представлена следующим образом:
- активатор распознавания речи (MicrosoftSpeech);
- основной модуль распознавания (Google Speech Recognition);
- модуль сопоставления фразы с одним из возможных вариантов выполнения сценария (для нечеткого сравнения строк использовал это).
Активатор распознавания речи
Используется MicrosoftSpeech, так как это одна из самых простых в использовании библиотек распознавания речи. Имеет один важный минус - очень часто бывают ложные срабатывания. Требуется поиск альтернативных библиотек.
Как альтернативу можно использовать не речевой активатор распознавания речи, а действие "Голосовая команда" из плагина, которое, в итоге, просто активировать через смартфон.
Основной модуль распознавания речи
Используется Google Speech Recognition, очень хорошо распознает речь, даже не смотря на присутствие шума и посторонних звуков, но имеет два минуса:
- только онлайн распознавание, так как технология является облачной;
- каждое распознавание стоит несколько центов (прайс гугла), а это значит, что каждый пользователь должен завести себе учетную запись Google Cloud и получить услугу Google Speech-to-Text.
Модуль сопоставления фразы с одним из возможных вариантов выполнения сценария
Позволяет сопоставить распознанную фразу с одним из возможных вариантов выполнения сценария (учитывает тип сценария и его возможные значения), дополнительно может выполнить сценарий с отложенным временем, например "Выключи все через 5 минут" или "Напомни о курьере через час" (для данного примера в Lazurite должны быть сценарии "Выключи все" и "Напомни"). Исходники того, как сопоставляются строки с возможными сценариями, можно посмотреть здесь. Класс рассчитан только на русскую речь и для его использования пользователь должен настроить список необходимых сценариев.
Сборка плагина
Для того, чтобы собрать плагин, необходимо добавить *.json файл аутентификации Google в проекты SpeechRecognition/GoogleSpeechRecognition.csproj и LazuriteVoicePlugin/LazuriteVoicePlugin.csproj, переименовать его в "google_auth.json" (действие при сборке - копировать), собрать все проекты в режиме Release, после этого в корне директории будет создан файл VoicePlugin.pyp. Его можно добавлять в Lazurite.
Настройка и использование
После установки плагина, в списке всех действий появится два действия: "Управление голосом" и "Голосовая команда".
"Управление голосом" это действие с типом значения Переключатель. Если сценарий с этим действием перевести в режим "Включено", то голосовое управление будет работать.
Настройки голосового управления.
![]()
Сценарии голосовой активации - выбор всех сценариев, которыми можно управлять голосом. Здесь отображаются сценарии, у которых стоит разрешение на управление из другого сценария.
Сценарии, активирующиеся без ключевого слова - список сценариев, которые можно запускать не произнося ключевое слово (активатор). Так как для распознавания в фоновом режиме используется MicrosoftSpeech, то качество распознавания оставляет желать лучшего, так как эта библиотека едва справляется с распознаванием ключевого слова.
Сценарий управления звуком - выбор сценария, который отвечает за регулировку звука. Нужен для того, чтобы после распознавания ключевого слова и активации основного распознавателя речи убавлялся общий звук и прибавлялся назад после выполнения голосовой команды.
Сценарий голосовых нотификаций - текстовое уведомление пользователю о начале голосовой команды, уведомление об окончании команды и т.д. Можно подключить удаленный сценарий вашего медиаплеера, на котором стоит Lazurite, и использовать эту нотификацию.
Нотификация
Сценарий звуковых нотификаций - сценарий, который отвечает за воспроизведение звуковых оповещений о том, что распознавание речи начато, команда выполнена или отвергнута. Рекомендуется использовать эту звуковую нотификацию.
Ключевые слова - это фразы, после распознавания которых включается основной режим распознавания и выполняется заданная команда.
Действие "Голосовая команда"
Позволяет выполнять голосовые команды без произношения ключевой фразы, например, начать распознавание голосовой команды после нажатия кнопки на смартфоне или кнопки ZWave.