Skip to content

22aroma/FriDay

Repository files navigation

Пятница (FriDay)

Голосовой ассистент с распознаванием речи на русском языке, синтезом речи и пробуждением по голосу ("Пятница").

Python License Platform

Возможности

  • Пробуждение по голосу — Wake Word Detection "Пятница" с Silero VAD
  • Распознавание речи — Kairos ASR (офлайн)
  • Синтез речи — Silero TTS (голос baya)
  • Будильник — голосовая установка
  • Таймер — с возможностью отмены
  • Калькулятор — голосовые вычисления (+, -, *, /, %, корень, степень)
  • Яркость экрана — управление через xrandr (Linux) / WMI (Windows)
  • Поиск в интернете — DuckDuckGo
  • Выключение компьютера — голосовая команда
  • Системный трей — иконка в трее для управления
  • Отложенные вопросы — 120-секундный буфер контекста

Команды

Фраза Действие
Пятница, сколько будет 2 плюс 2 Калькулятор
Пятница, поставь будильник на 7 часов Будильник
Пятница, таймер на 5 минут Таймер
Пятница, увеличь яркость Яркость экрана
Пятница, посмотри погоду в интернете Поиск в DuckDuckGo
Пятница, выключи компьютер Выключение системы
Пятница, заверши работу Выход из ассистента
Пятница (без команды) Режим ожидания команды на 15 с

Структура проекта

FriDay/
├── FriDay.pyw                          # Точка входа
├── python_files/
│   ├── __init__.py
│   ├── constants.py                    # Константы (пути, аудио, TTS)
│   ├── logger.py                       # Логирование
│   ├── settings.py                     # Инициализация аудиопотока
│   ├── stt.py                          # Распознавание речи (VAD + ASR)
│   ├── tts.py                          # Синтез речи (Silero TTS)
│   ├── FriDay_say.py                   # Воспроизведение WAV
│   ├── commands.py                     # Обработчик команд
│   ├── search.py                       # Поиск в DuckDuckGo
│   ├── calc.py                         # Калькулятор
│   ├── brightness.py                   # Яркость экрана (xrandr)
│   ├── text_normalization.py           # Нормализация русского текста
│   ├── number_utils.py                 # Извлечение чисел/времени
│   ├── lists.py                        # Списки слов 
│   └── tray_icon.py                    # Иконка в системном трее
├── files/
│   └── icon.png                        # Иконка трея
├── FriDay_say/
│   ├── i_am_doing.wav                  # Звук выполнения
│   └── wwd/
│       └── listen.wav                  # Звук ожидания команды
├── requirements.txt                    # Все зависимости
├── setup_venv.sh                       # Скрипт настройки (Arch Linux)
├── setup_venv.ps1                      # Скрипт настройки (Windows)
├── log.txt                             # Файл лога
└── LICENSE                             # MIT License

Установка

Linux (Arch)

sudo pacman -S python python-pip portaudio xorg-xrandr
chmod +x setup_venv.sh
./setup_venv.sh

Или вручную:

python3 -m venv venv
source venv/bin/activate
pip install --index-url https://download.pytorch.org/whl/cpu torch==2.11.0+cpu torchaudio==2.11.0+cpu
pip install -r requirements.txt

Windows

Требования: Python 3.10+ (рекомендуется 3.12–3.14), установленный через python.org с галочкой «Add Python to PATH».

.\setup_venv.ps1

Если скрипт не запускается из-за политики ExecutionPolicy:

Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass
.\setup_venv.ps1

Или вручную (в командной строке или PowerShell):

python -m venv venv
venv\Scripts\activate
pip install --index-url https://download.pytorch.org/whl/cpu torch torchaudio
pip install -r requirements.txt

Примечание: На Windows PyAudio устанавливается из готовых колёс — дополнительно устанавливать PortAudio не требуется.

Запуск

Linux

source venv/bin/activate
python FriDay.pyw

Windows

venv\Scripts\activate
python FriDay.pyw

При первом запуске будут загружены и закешированы модели:

  • Silero VAD (snakers4/silero-vad)
  • Silero TTS (snakers4/silero-models)
  • Kairos ASR (скачивается в ~/.cache/)

Зависимости

Полный список — в requirements.txt. Ключевые пакеты:

Пакет Назначение
PyAudio Захват аудио с микрофона
sounddevice Воспроизведение аудио
torch + torchaudio Нейросетевые модели
kairos-asr Распознавание русской речи
silero-vad / silero-models Детекция речи и синтез
num2words Числа прописью (русский)
pystray + pillow Иконка в системном трее
ddgs Поиск в DuckDuckGo
onnxruntime Инференс ONNX-моделей

Особенности

  • Linux и Windows — автоматическое определение платформы
  • Русский язык — весь интерфейс и голосовые ответы на русском
  • Офлайн — после загрузки моделей не требует интернета (кроме поиска)
  • Атрибуты — ключевое слово "Пятница", женский голос

Лицензия

MIT License. Copyright (c) 2026 Aroma.

Подробнее:

  • LICENSE — полный текст лицензии MIT
  • ATTRIBUTION.md — информация о сторонних библиотеках и их лицензиях

Благодарность

  • Иконка для системного трея предоставлена Icons8

Проект создан в учебных целях.