diff --git a/README.md b/README.md index aec8474..0e741f2 100644 --- a/README.md +++ b/README.md @@ -1,61 +1,70 @@ -# 🎙️ Умная колонка «Alexandr» +# 🎙️ Alexandr Smart Speaker -![Python](https://img.shields.io/badge/Python-3.9%2B-blue?logo=python&logoColor=white) -![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) + +
--- -## ✨ Возможности +## ✨ 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
(Porcupine)] + Mic[🎤 Microphone] --> Wake[Wake Word
(Porcupine)] Wake -->|Activated| STT[STT
(Deepgram)] - STT --> Router{Анализ команды} + STT --> Router{Command Router} - Router -->|Прогноз| Weather[⛅ Погода
(Open-Meteo)] - Router -->|Время| Alarm[⏰ Будильник/Таймер] - Router -->|Настройки| Vol[🔊 Громкость] - Router -->|Перевод| Translator[A↔B Переводчик] - Router -->|Вопрос| AI[🧠 Perplexity AI] + Router -->|Forecast| Weather[⛅ Weather
(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
(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`. \ No newline at end of file +## 📄 License +MIT License. See `LICENSE.txt` for details.