другая структура проекта + beads + александр повтори + комментарии везде + readme

This commit is contained in:
2026-01-09 04:14:50 +03:00
parent 242ead5355
commit ce28fede74
31 changed files with 1654 additions and 1333 deletions

97
README.md Normal file
View File

@@ -0,0 +1,97 @@
# Умная колонка «Alexandr»
Небольшой голосовой ассистент для Linux: реагирует на wake word, распознает речь, обращается к AI, озвучивает ответы, умеет переводить и работать с будильником.
## Возможности
- Wake word: «Alexandr» (Porcupine).
- Распознавание речи (Deepgram, RU/EN).
- Озвучка (Silero TTS, RU/EN).
- Перевод RU↔EN (Perplexity).
- Будильник с локальным распознаванием стоп-команд (Vosk).
- Управление громкостью (ALSA amixer).
## Требования
- Linux
- Python 3.9+
- Системные утилиты: `mpg123`, `amixer` (ALSA)
- Драйверы/библиотеки для микрофона (PortAudio)
## Установка
```bash
python -m venv venv
source venv/bin/activate
pip install -r requirements.txt
```
## Настройка окружения
Создайте `.env` в корне проекта:
```
PERPLEXITY_API_KEY=...
PERPLEXITY_MODEL=llama-3.1-sonar-small-128k-chat
DEEPGRAM_API_KEY=...
PORCUPINE_ACCESS_KEY=...
TTS_EN_SPEAKER=en_0
```
## Запуск
```bash
python main.py
```
## Примеры команд
- Активировать: «Alexandr»
- Перевод: «переведи на английский как пройти в библиотеку»
- Перевод: «переведи с английского» → сказать фразу на английском
- Громкость: «громкость 5»
- Будильник: «будильник на 7:30», «разбуди на 8 15»
- Отмена будильников: «отмени будильник»
- Стоп/сброс: «стоп», «хватит»
## Объяснение работы
1) Система ждет wake word («Alexandr») через Porcupine.
2) После активации включается распознавание речи (Deepgram).
3) Команда распознается и проверяется на спец‑действия: будильник, громкость, перевод.
4) Если это перевод — отправляется отдельный запрос в Perplexity и результат озвучивается.
5) Если это обычный запрос — идет в AI, ответ очищается от разметки и озвучивается.
6) После ответа включается режим продолжения диалога без повторного wake word.
## Архитектурная схема
```
Микрофон
Wake word (Porcupine) ──► STT (Deepgram) ──► Логика команд
├─► Будильник (alarm.py)
├─► Громкость (sound_level.py)
├─► Перевод (ai.py)
└─► Диалог (ai.py)
Очистка текста (cleaner.py)
TTS (tts.py)
Динамик
```
## Структура проекта
- `main.py` — основной цикл работы ассистента.
- `wakeword.py` — детектор wake word (Porcupine).
- `stt.py` — потоковое распознавание речи (Deepgram).
- `tts.py` — озвучивание (Silero TTS).
- `ai.py` — запросы к Perplexity (чат и перевод).
- `cleaner.py` — очистка ответа и преобразование чисел (RU).
- `alarm.py` — будильник и логика расписания.
- `local_stt.py` — локальный Vosk для стоп-команд.
- `sound_level.py` — управление громкостью.
## Частые проблемы
- Ошибка Deepgram 400: проверьте `DEEPGRAM_API_KEY` и доступность модели.
- Нет звука: проверьте `amixer` и настройки ALSA.
- Будильник не играет: установите `mpg123`.
## Лицензия
См. `LICENSE.txt`.