62 lines
2.9 KiB
Python
62 lines
2.9 KiB
Python
"""
|
|
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"
|
|
# Чувствительность wake word (0..1). Выше = ловит легче, но больше ложных срабатываний.
|
|
PORCUPINE_SENSITIVITY = float(os.getenv("PORCUPINE_SENSITIVITY", "0.8"))
|
|
|
|
# --- Параметры аудио ---
|
|
# Частота дискретизации для микрофона (стандарт для распознавания речи)
|
|
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", "Ухта")
|