""" Configuration module for smart speaker. Loads environment variables from .env file. """ # Этот модуль отвечает за конфигурацию всего проекта. # Он загружает настройки из файла .env (переменные окружения) и определяет константы. import os import time from pathlib import Path from dotenv import load_dotenv # Базовая директория проекта (корневая папка, где лежит .env) BASE_DIR = Path(__file__).resolve().parents[2] # Загружаем переменные из файла .env в корневом каталоге load_dotenv(BASE_DIR / ".env") # --- Настройки AI (Perplexity) --- # API ключ для доступа к нейросети PERPLEXITY_API_KEY = os.getenv("PERPLEXITY_API_KEY") # Модель, которую будем использовать (по умолчанию llama-3.1-sonar-small-128k-chat) PERPLEXITY_MODEL = os.getenv("PERPLEXITY_MODEL", "llama-3.1-sonar-small-128k-chat") PERPLEXITY_API_URL = "https://api.perplexity.ai/chat/completions" # --- Настройки распознавания речи (Deepgram) --- # Ключ для облачного STT (Speech-to-Text) DEEPGRAM_API_KEY = os.getenv("DEEPGRAM_API_KEY") # --- Настройки активации голосом (Porcupine) --- # Ключ доступа PicoVoice PORCUPINE_ACCESS_KEY = os.getenv("PORCUPINE_ACCESS_KEY") # Путь к файлу модели ключевого слова (.ppn), который лежит в папке assets/models PORCUPINE_KEYWORD_PATH = BASE_DIR / "assets" / "models" / "Alexandr_en_linux_v4_0_0.ppn" # --- Параметры аудио --- # Частота дискретизации для микрофона (стандарт для распознавания речи) SAMPLE_RATE = 16000 CHANNELS = 1 # --- Настройка времени --- # Устанавливаем часовой пояс на Москву, чтобы будильник работал корректно os.environ["TZ"] = "Europe/Moscow" time.tzset() # --- Настройки синтеза речи (TTS) --- # Голос для русского языка (eugene - мужской голос) TTS_SPEAKER = "eugene" # Доступные (ru): aidar, baya, kseniya, xenia, eugene # Голос для английского языка TTS_EN_SPEAKER = os.getenv("TTS_EN_SPEAKER", "en_0") # Частота дискретизации для воспроизведения (качество звука) TTS_SAMPLE_RATE = 48000 # --- Настройки погоды --- WEATHER_LAT = os.getenv("WEATHER_LAT") WEATHER_LON = os.getenv("WEATHER_LON") WEATHER_CITY = os.getenv("WEATHER_CITY", "Ухта")