другая структура проекта + beads + александр повтори + комментарии везде + readme
This commit is contained in:
97
README.md
Normal file
97
README.md
Normal 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`.
|
||||
Reference in New Issue
Block a user