• v0.2.0 f45ac77a2e

    DmitryBykov-ISPO released this 2026-04-22 19:44:02 +03:00 | 32 commits to main since this release

    Two quality-of-life improvements after v0.1.0.

    Что нового

    VAD (Voice Activity Detection) вместо фиксированных 10 секунд

    • После wake-word бот слушает не ровно 10 секунд, а пока ты говоришь. Остановился на 1.2 сек тишины — окно закрывается, команда идёт в обработку.
    • Используется webrtcvad-wheels — лёгкий, Apache-2.0, колесо под Windows/Python 3.11 без MSVC.
    • Параметры в config.py (все конфигурируемы):
      • VAD_AGGRESSIVENESS = 2 — сбалансированная чувствительность
      • COMMAND_END_SILENCE_MS = 1200 — сколько тишины считать концом команды
      • COMMAND_MIN_SPEECH_MS = 500 — минимум речи чтобы не сработать от кашля
      • COMMAND_MIN_LISTEN_MS = 1000 — страховка: бот не закроется сразу если ты ещё не начал говорить
      • COMMAND_MAX_LISTEN_MS = 15000 — жёсткий потолок

    YAML-плагины вместо elif-монолита

    • execute_cmd() больше не гигантский if/elif. Все 17 команд переехали в commands.yaml с типизированными actions:
      • exe — запуск .exe из custom-commands/
      • play_sound — воспроизведение .wav из sound/
      • system — встроенные действия (volume_mute, volume_unmute, exit)
      • multi — последовательность шагов (play_sound → exe → play_sound и т.п.)
      • sleep — пауза между шагами
    • Новые команды добавляются правкой YAML, без трогания main.py. Шаблон см. в README.

    Migration

    Полная обратная совместимость — все 17 оригинальных команд работают идентично v0.1.0, просто теперь конфигурируются в YAML.

    Под капотом

    • VAD-фрейм 30 мс / 480 сэмплов / 960 байт, PvRecorder читает фреймами по 512 — буферизация и резка под VAD-формат, wake-word не затронут.
    • pip check clean с новой зависимостью.

    Лицензия

    CC BY-NC-SA 4.0. Атрибуция Priler/Tugalov сохранена.

    Downloads