New readme2
This commit is contained in:
142
README.md
142
README.md
@@ -1,61 +1,70 @@
|
||||
# 🎙️ Умная колонка «Alexandr»
|
||||
# 🎙️ Alexandr Smart Speaker
|
||||
|
||||

|
||||

|
||||

|
||||
<div align="center">
|
||||
|
||||
**Alexandr** — это персональный голосовой ассистент для Linux, объединяющий современные нейросетевые технологии для создания естественного диалога. Он слушает, понимает, переводит, рассказывает о погоде и следит за временем.
|
||||

|
||||

|
||||

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