Фикс произношения дат и температуры + wheather -лишние файлы
This commit is contained in:
68
app/main.py
68
app/main.py
@@ -23,7 +23,13 @@ import os
|
||||
from collections import deque
|
||||
|
||||
# Для воспроизведения звуков (mp3)
|
||||
from pygame import mixer
|
||||
try:
|
||||
from pygame import mixer
|
||||
except Exception as exc:
|
||||
mixer = None
|
||||
_MIXER_IMPORT_ERROR = exc
|
||||
else:
|
||||
_MIXER_IMPORT_ERROR = None
|
||||
|
||||
# Импорт наших модулей
|
||||
from .audio.wakeword import (
|
||||
@@ -38,6 +44,7 @@ from .core.cleaner import clean_response
|
||||
from .audio.tts import speak, initialize as init_tts
|
||||
from .audio.sound_level import set_volume, parse_volume_text
|
||||
from .features.alarm import get_alarm_clock
|
||||
from .features.weather import get_weather_report
|
||||
|
||||
# Список стоп-слов, чтобы прервать диалог или остановить ассистента
|
||||
STOP_WORDS = {
|
||||
@@ -134,15 +141,25 @@ def main():
|
||||
# Предварительная инициализация моделей
|
||||
print("⏳ Инициализация моделей...")
|
||||
|
||||
# Инициализация звуковой системы для эффектов
|
||||
mixer.init()
|
||||
ding_sound_path = "assets/sounds/ding.wav"
|
||||
# Инициализация звуковой системы для эффектов (опционально)
|
||||
ding_sound = None
|
||||
if os.path.exists(ding_sound_path):
|
||||
ding_sound = mixer.Sound(ding_sound_path)
|
||||
ding_sound.set_volume(0.3)
|
||||
if mixer is None:
|
||||
print(
|
||||
"Warning: pygame mixer not available; sound effects disabled."
|
||||
f" ({_MIXER_IMPORT_ERROR})"
|
||||
)
|
||||
else:
|
||||
print(f"⚠️ Звук {ding_sound_path} не найден")
|
||||
try:
|
||||
mixer.init()
|
||||
except Exception as exc:
|
||||
print(f"Warning: pygame mixer init failed; sound effects disabled. ({exc})")
|
||||
else:
|
||||
ding_sound_path = "assets/sounds/ding.wav"
|
||||
if os.path.exists(ding_sound_path):
|
||||
ding_sound = mixer.Sound(ding_sound_path)
|
||||
ding_sound.set_volume(0.3)
|
||||
else:
|
||||
print(f"⚠️ Звук {ding_sound_path} не найден")
|
||||
|
||||
get_recognizer().initialize() # Подключение к Deepgram
|
||||
init_tts() # Загрузка нейросети для синтеза речи (Silero)
|
||||
@@ -242,8 +259,10 @@ def main():
|
||||
# Проверка команд будильника ("поставь будильник на 7")
|
||||
alarm_response = alarm_clock.parse_command(user_text)
|
||||
if alarm_response:
|
||||
speak(alarm_response)
|
||||
last_response = alarm_response
|
||||
clean_alarm_response = clean_response(alarm_response, language="ru")
|
||||
speak(clean_alarm_response)
|
||||
last_response = clean_alarm_response
|
||||
skip_wakeword = False
|
||||
continue
|
||||
|
||||
# Проверка команды громкости ("громкость 5")
|
||||
@@ -256,8 +275,9 @@ def main():
|
||||
if level is not None:
|
||||
if set_volume(level):
|
||||
msg = f"Громкость установлена на {level}"
|
||||
speak(msg)
|
||||
last_response = msg
|
||||
clean_msg = clean_response(msg, language="ru")
|
||||
speak(clean_msg)
|
||||
last_response = clean_msg
|
||||
else:
|
||||
speak("Не удалось установить громкость.")
|
||||
else:
|
||||
@@ -265,12 +285,36 @@ def main():
|
||||
"Я не понял число громкости. Скажите число от одного до десяти."
|
||||
)
|
||||
|
||||
skip_wakeword = True
|
||||
continue
|
||||
except Exception as e:
|
||||
print(f"❌ Ошибка громкости: {e}")
|
||||
speak("Не удалось изменить громкость.")
|
||||
skip_wakeword = True
|
||||
continue
|
||||
|
||||
# Проверка команды "Погода"
|
||||
weather_triggers = [
|
||||
"погода",
|
||||
"погоду",
|
||||
"что на улице",
|
||||
"какая температура",
|
||||
"сколько градусов",
|
||||
"холодно ли",
|
||||
"жарко ли",
|
||||
"нужен ли зонт",
|
||||
"брать ли зонт",
|
||||
"прогноз погоды",
|
||||
]
|
||||
|
||||
if any(trigger in user_text.lower() for trigger in weather_triggers):
|
||||
weather_report = get_weather_report()
|
||||
clean_report = clean_response(weather_report, language="ru")
|
||||
speak(clean_report)
|
||||
last_response = clean_report
|
||||
skip_wakeword = True
|
||||
continue
|
||||
|
||||
# Проверка запроса на перевод
|
||||
translation_request = parse_translation_request(user_text)
|
||||
if translation_request:
|
||||
|
||||
Reference in New Issue
Block a user