New readme2

This commit is contained in:
2026-01-24 23:51:17 +03:00
parent e5047a1297
commit 49dbaad122

144
README.md
View File

@@ -1,61 +1,70 @@
# 🎙️ Умная колонка «Alexandr» # 🎙️ Alexandr Smart Speaker
![Python](https://img.shields.io/badge/Python-3.9%2B-blue?logo=python&logoColor=white) <div align="center">
![Platform](https://img.shields.io/badge/Platform-Linux-linux?logo=linux&logoColor=white)
![License](https://img.shields.io/badge/License-MIT-green)
**Alexandr** — это персональный голосовой ассистент для Linux, объединяющий современные нейросетевые технологии для создания естественного диалога. Он слушает, понимает, переводит, рассказывает о погоде и следит за временем. ![Python](https://img.shields.io/badge/Python-3.9%2B-3776AB?logo=python&logoColor=white&style=for-the-badge)
![Platform](https://img.shields.io/badge/Platform-Linux-FCC624?logo=linux&logoColor=black&style=for-the-badge)
![License](https://img.shields.io/badge/License-MIT-45a163?style=for-the-badge)
**Alexandr** is a personal voice assistant for Linux that leverages modern AI technologies to create natural conversations. It listens, understands context, translates languages, checks the weather, and manages your time.
[Features](#-features) • [Installation](#-installation) • [Usage](#-usage) • [Architecture](#-architecture)
</div>
--- ---
## ✨ Возможности ## ✨ Features
### 🧠 Искусственный интеллект ### 🧠 Artificial Intelligence
* **Умный диалог**: Поддержка контекста беседы на базе **Perplexity AI** (Llama 3.1). * **Smart Dialogue**: Context-aware conversations powered by **Perplexity AI** (Llama 3.1).
* **Переводчик**: Мгновенный двусторонний перевод (RU ↔ EN) с озвучкой на целевом языке. * **Translator**: Instant bidirectional translation (RU ↔ EN) with native pronunciation.
### 🗣️ Голосовой интерфейс ### 🗣️ Voice Interface
* **Wake Word**: Активация по фразе **«Alexandr»** (технология Porcupine). * **Wake Word**: Activates on the phrase **"Alexandr"** (powered by Porcupine).
* **Распознавание речи**: Быстрое и точное STT от **Deepgram**. * **Speech Recognition**: Fast and accurate Speech-to-Text via **Deepgram**.
* **Синтез речи**: Естественная офлайн-озвучка с помощью **Silero TTS**. * **Text-to-Speech**: Natural sounding offline voice synthesis using **Silero TTS**.
### 🛠️ Инструменты ### 🛠️ Tools
* **Погода**: Точный прогноз погоды (текущая, на день, на ближайшие часы) через Open-Meteo. * **Weather**: Detailed forecasts (current, daily range, hourly) via Open-Meteo.
* **Будильник**: Голосовая установка будильников и таймеров. * **Alarm & Timer**: Voice-controlled alarms and timers.
* **🔊 Управление**: Регулировка громкости системы. * **🔊 System Control**: Adjust system volume via voice commands.
--- ---
## ⚙️ Установка ## ⚙️ Installation
### 1. Системные требования ### 1. Prerequisites
* OS: Linux * **OS**: Linux
* Python 3.9+ * **Python**: 3.9+
* Библиотеки: `portaudio19-dev` (для микрофона), `libasound2-dev` (ALSA), `mpg123` (для будильника). * **System Libraries**:
### 2. Сборка проекта
```bash ```bash
# Клонирование репозитория sudo apt-get install portaudio19-dev libasound2-dev mpg123
```
### 2. Setup
```bash
# Clone the repository
git clone https://github.com/your-username/alexander_smart-speaker.git git clone https://github.com/your-username/alexander_smart-speaker.git
cd alexander_smart-speaker cd alexander_smart-speaker
# Создание виртуального окружения # Create virtual environment
python -m venv venv python -m venv venv
source venv/bin/activate source venv/bin/activate
# Установка зависимостей # Install dependencies
pip install -r requirements.txt pip install -r requirements.txt
``` ```
### 3. Конфигурация ### 3. Configuration
Создайте файл `.env` на основе примера: Create a `.env` file based on the example:
```bash ```bash
cp .env.example .env cp .env.example .env
``` ```
Заполните ключи в `.env`: Fill in your API keys in `.env`:
```ini ```ini
# AI & Speech # AI & Speech APIs
PERPLEXITY_API_KEY=pplx-... PERPLEXITY_API_KEY=pplx-...
DEEPGRAM_API_KEY=... DEEPGRAM_API_KEY=...
PORCUPINE_ACCESS_KEY=... PORCUPINE_ACCESS_KEY=...
@@ -64,73 +73,74 @@ PORCUPINE_ACCESS_KEY=...
TTS_EN_SPEAKER=en_0 TTS_EN_SPEAKER=en_0
TTS_RU_SPEAKER=eugene TTS_RU_SPEAKER=eugene
# Weather (Координаты вашего города) # Weather Location (Your City Coordinates)
WEATHER_LAT=63.56 WEATHER_LAT=63.56
WEATHER_LON=53.69 WEATHER_LON=53.69
WEATHER_CITY=Ухта WEATHER_CITY=Ukhta
``` ```
--- ---
## 🚀 Запуск и Использование ## 🚀 Usage
Start the assistant:
```bash ```bash
python run.py python run.py
``` ```
### Примеры команд ### Command Examples
| Категория | Команда пользователя | Действие | | Category | User Command (RU) | Action |
|-----------|---------------------|----------| |----------|-------------------|--------|
| **Активация** | «Alexandr» | Ассистент начинает слушать | | **Activation** | "Alexandr" | Assistant starts listening |
| **Диалог** | «Почему небо голубое?» | Запрос в AI с сохранением контекста | | **Dialogue** | "Почему небо голубое?" | Ask AI with context retention |
| **Погода** | «Какая сейчас погода?», «Нужен ли зонт?» | Прогноз погоды | | **Weather** | "Какая сейчас погода?", "Нужен ли зонт?" | Get weather forecast |
| **Перевод** | «Переведи на английский: привет, как дела?» | Перевод и озвучка (EN) | | **Translation** | "Переведи на английский: привет, как дела?" | Translate and speak in EN |
| **Будильник** | «Разбуди меня в 7:30», «Поставь таймер на 5 минут» | Установка сигнала | | **Alarm** | "Разбуди меня в 7:30", "Поставь таймер на 5 минут" | Set alarm or timer |
| **Громкость** | «Громкость 5», «Громкость 8» | Изменение системной громкости | | **Volume** | "Громкость 5", "Громкость 8" | Set system volume level |
| **Управление** | «Стоп», «Хватит», «Повтори» | Остановка речи или повтор фразы | | **Control** | "Стоп", "Хватит", "Повтори" | Stop speech or repeat last phrase |
--- ---
## 🏗️ Архитектура ## 🏗️ Architecture
```mermaid ```mermaid
graph TD graph TD
Mic[🎤 Микрофон] --> Wake[Wake Word<br>(Porcupine)] Mic[🎤 Microphone] --> Wake[Wake Word<br>(Porcupine)]
Wake -->|Activated| STT[STT<br>(Deepgram)] Wake -->|Activated| STT[STT<br>(Deepgram)]
STT --> Router{Анализ команды} STT --> Router{Command Router}
Router -->|Прогноз| Weather[⛅ Погода<br>(Open-Meteo)] Router -->|Forecast| Weather[⛅ Weather<br>(Open-Meteo)]
Router -->|Время| Alarm[⏰ Будильник/Таймер] Router -->|Time| Alarm[⏰ Alarm/Timer]
Router -->|Настройки| Vol[🔊 Громкость] Router -->|Settings| Vol[🔊 Volume]
Router -->|Перевод| Translator[A↔B Переводчик] Router -->|Translate| Translator[A↔B Translator]
Router -->|Вопрос| AI[🧠 Perplexity AI] Router -->|Query| AI[🧠 Perplexity AI]
Weather --> TTS Weather --> TTS
Alarm --> TTS Alarm --> TTS
Vol --> TTS Vol --> TTS
Translator --> TTS Translator --> TTS
AI --> Cleaner[Очистка текста] AI --> Cleaner[Text Cleaner]
Cleaner --> TTS[🗣️ TTS<br>(Silero)] Cleaner --> TTS[🗣️ TTS<br>(Silero)]
TTS --> Speaker[🔊 Динамик] TTS --> Speaker[🔊 Speaker]
``` ```
## 📂 Структура проекта ## 📂 Project Structure
* `app/main.py`Точка входа, основной цикл событий. * `app/main.py` — Entry point, main event loop.
* `app/audio/`Модули работы со звуком (STT, TTS, Wake Word). * `app/audio/` — Audio processing modules (STT, TTS, Wake Word).
* `app/core/`Логика AI, конфиги, очистка текста. * `app/core/` — AI logic, configuration, text cleaning.
* `app/features/`Навыки (Погода, Будильник, Таймер). * `app/features/` — Skills (Weather, Alarm, Timer).
* `assets/`Модели (Porcupine) и звуки. * `assets/` — Models (Porcupine) and sound effects.
* `data/`Сохранение состояния (будильники). * `data/` — Persistent state (alarms).
--- ---
## 🛠️ Решение проблем ## 🛠️ Troubleshooting
- **Ошибка Deepgram 400**: Проверьте баланс и правильность `DEEPGRAM_API_KEY`. * **Deepgram Error 400**: Check your API key balance and validity in `.env`.
- **Нет звука**: Убедитесь, что `amixer` установлен и устройство вывода настроено по умолчанию. * **No Sound**: Ensure `amixer` is installed and the default audio output is correctly configured in your OS.
- **Будильник не играет**: Убедитесь, что установлен `mpg123`. * **Alarm not playing**: Verify that `mpg123` is installed (`sudo apt install mpg123`).
## 📄 Лицензия ## 📄 License
MIT License. См. `LICENSE.txt`. MIT License. See `LICENSE.txt` for details.