Skip to content

porcupine

Aculeasis edited this page Jan 7, 2021 · 10 revisions

Детектор ключевых слов, который может быть использован как альтернатива Snowboy. Porcupine не поставляется с терминалом и должен быть установлен самостоятельно.

Работа на x86 (i386, i686 etc)

Начиная с версии 1.6 поддержка x86 прекращена, используйте версию 1.5 (по ссылам [1.5] или переключая tag).

Преимущества

  • Поддерживает Windows и i386 системы.
  • Позволяет с помощью Porcupine Optimizer [1.5] создавать любые универсальные модели (только для x86).

Недостатки

  • Не поддерживает создание персональных моделей.
  • Платформозависимые модели.
  • Не поддерживает Orange pi aarch64.
  • Не предоставляет VAD.

Установка.

Если вы изначально планируете использовать Porcupine, то можно не устанавливать Snowboy и игнорировать его ошибки во время установки.

Можно явно задать детектор в настройках ([listener] detector), но если он не задан то это не требуется.

Для переключения со Snowboy на Porcupine, нужно создать директорию mdmTerminal2/src/detectors/porcupine/ и поместить туда 2 файла необходимые для его работы:

  • libpv_porcupine.{so|dll|dylib} из Porcupine/lib/ [1.5] соответствующий ос и архитектуре платформы.

  • porcupine_params.pv из Porcupine/lib/common/ [1.5].

    Для использования менее ресурсоемких и точных моделей Tiny нужно взять и переименовать porcupine_tiny_params.pv (не рекомендуется).

При запуске терминал автоматически переключится на Porcupine о чем сообщит в логе:

2019-03-18 02:44:19,864 INFO CFG: Hotword detection: Porcupine

Для возврата на Snowboy достаточно удалить любой из этих файлов или mdmTerminal2/src/detectors/porcupine/ целиком.

Модели

Готовые модели можно взять из Porcupine/resources/keyword_files/ [1.5]. Модели нужно выбирать в зависимости от платформы и версии porcupine.

Если вы выбрали porcupine_tiny_params.pv, то нужно использовать модели _tiny.ppn и наоборот. Tiny и Standart не совместимы между собой. Модели Standart под некоторые платформы можно создать с помощью Porcupine Optimizer [1.5].

Также, для работы в chrome_mode нужно самостоятельно добавить фразы соответствующие модели в settings.ini, например:

[models]
alexa_windows.ppn = Alexa|Алекса
bumblebee_windows.ppn = Бамблби|bumblebee

Особенности

  • Нужно делать небольшую паузу между ключевым словом и фразой в chrome_mode.
  • VAD snowboy недоступен, вместо него будет использован energy.
  • Настройки [settings] audio_gain и [noise_suppression] snowboy_apply_frontend не имеют эффекта.
  • Компиляция моделей будет отключена.