Экспериментальный функционал - 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.