# 🎙️ Умная колонка «Alexandr» ![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, объединяющий современные нейросетевые технологии для создания естественного диалога. Он слушает, понимает, переводит, рассказывает о погоде и следит за временем. --- ## ✨ Возможности ### 🧠 Искусственный интеллект * **Умный диалог**: Поддержка контекста беседы на базе **Perplexity AI** (Llama 3.1). * **Переводчик**: Мгновенный двусторонний перевод (RU ↔ EN) с озвучкой на целевом языке. ### 🗣️ Голосовой интерфейс * **Wake Word**: Активация по фразе **«Alexandr»** (технология Porcupine). * **Распознавание речи**: Быстрое и точное STT от **Deepgram**. * **Синтез речи**: Естественная офлайн-озвучка с помощью **Silero TTS**. ### 🛠️ Инструменты * **⛅ Погода**: Точный прогноз погоды (текущая, на день, на ближайшие часы) через Open-Meteo. * **⏰ Будильник**: Голосовая установка будильников и таймеров. * **🔊 Управление**: Регулировка громкости системы. --- ## ⚙️ Установка ### 1. Системные требования * OS: Linux * Python 3.9+ * Библиотеки: `portaudio19-dev` (для микрофона), `libasound2-dev` (ALSA), `mpg123` (для будильника). ### 2. Сборка проекта ```bash # Клонирование репозитория git clone https://github.com/your-username/alexander_smart-speaker.git cd alexander_smart-speaker # Создание виртуального окружения python -m venv venv source venv/bin/activate # Установка зависимостей pip install -r requirements.txt ``` ### 3. Конфигурация Создайте файл `.env` на основе примера: ```bash cp .env.example .env ``` Заполните ключи в `.env`: ```ini # AI & Speech PERPLEXITY_API_KEY=pplx-... DEEPGRAM_API_KEY=... PORCUPINE_ACCESS_KEY=... # TTS Settings TTS_EN_SPEAKER=en_0 TTS_RU_SPEAKER=eugene # Weather (Координаты вашего города) WEATHER_LAT=63.56 WEATHER_LON=53.69 WEATHER_CITY=Ухта ``` --- ## 🚀 Запуск и Использование ```bash python run.py ``` ### Примеры команд | Категория | Команда пользователя | Действие | |-----------|---------------------|----------| | **Активация** | «Alexandr» | Ассистент начинает слушать | | **Диалог** | «Почему небо голубое?» | Запрос в AI с сохранением контекста | | **Погода** | «Какая сейчас погода?», «Нужен ли зонт?» | Прогноз погоды | | **Перевод** | «Переведи на английский: привет, как дела?» | Перевод и озвучка (EN) | | **Будильник** | «Разбуди меня в 7:30», «Поставь таймер на 5 минут» | Установка сигнала | | **Громкость** | «Громкость 5», «Громкость 8» | Изменение системной громкости | | **Управление** | «Стоп», «Хватит», «Повтори» | Остановка речи или повтор фразы | --- ## 🏗️ Архитектура ```mermaid graph TD Mic[🎤 Микрофон] --> Wake[Wake Word
(Porcupine)] Wake -->|Activated| STT[STT
(Deepgram)] STT --> Router{Анализ команды} Router -->|Прогноз| Weather[⛅ Погода
(Open-Meteo)] Router -->|Время| Alarm[⏰ Будильник/Таймер] Router -->|Настройки| Vol[🔊 Громкость] Router -->|Перевод| Translator[A↔B Переводчик] Router -->|Вопрос| AI[🧠 Perplexity AI] Weather --> TTS Alarm --> TTS Vol --> TTS Translator --> TTS AI --> Cleaner[Очистка текста] Cleaner --> TTS[🗣️ TTS
(Silero)] TTS --> Speaker[🔊 Динамик] ``` ## 📂 Структура проекта * `app/main.py` — Точка входа, основной цикл событий. * `app/audio/` — Модули работы со звуком (STT, TTS, Wake Word). * `app/core/` — Логика AI, конфиги, очистка текста. * `app/features/` — Навыки (Погода, Будильник, Таймер). * `assets/` — Модели (Porcupine) и звуки. * `data/` — Сохранение состояния (будильники). --- ## 🛠️ Решение проблем - **Ошибка Deepgram 400**: Проверьте баланс и правильность `DEEPGRAM_API_KEY`. - **Нет звука**: Убедитесь, что `amixer` установлен и устройство вывода настроено по умолчанию. - **Будильник не играет**: Убедитесь, что установлен `mpg123`. ## 📄 Лицензия MIT License. См. `LICENSE.txt`.