Задать вопрос
@Elacov_top

После компиляции код не работает?

Мне нужно переделать свой код в приложение exe. Но я столкнулся с проблемой, что после запускается пустая командная строка.
import speech_recognition as sr
import webbrowser
import pyttsx3
import re
import time
import os
import pyowm

engine = pyttsx3.init()

#Голос
def speak(text):
    engine.say(text)
    engine.runAndWait()

#Распознование голоса
def take_command():
    recognizer = sr.Recognizer()
    with sr.Microphone() as source:
        recognizer.adjust_for_ambient_noise(source, duration=1)
        print("Говорите...")
        audio = recognizer.listen(source)
        try:
            command = recognizer.recognize_google(audio, language="ru-RU")
            print(command)
            if 'олег' in command.lower():
                command = command.lower().replace('олег', '')
            else:
                command = ''
        except sr.UnknownValueError:
            command = ""
        return command

#Вступительная речь
def introduce_yourself():
    intro_text = "Привет! Я Олег, голосовой ассистент. Я могу помочь вам с различными задачами, например:\n- Открыть блокнот\n- Найти информацию в Интернете\n- Сообщить о погоде\n Просто скажите, что вам нужно сделать, и я постараюсь помочь Вам."
    print(intro_text)

#Тмпература
def advice_clothing(temperature):
    if temperature >= 25:
        return 'На улице жарко, можете надеть легкие летние вещи'
    elif temperature >= 20:
        return 'Сегодня тепло, рекомендуем надеть футболку и шорты'
    elif temperature >= 15:
        return 'Сегодня прохладно, лучше надеть легкую куртку и джинсы'
    else:
        return 'На улице холодно, желательно надеть теплую куртку и шапку'

#ФУНКЦИИ
introduce_yourself()

while True:
    command = take_command().lower()

    if "найди" in command:
        search_term = command.replace("найди", "")
        url = f"https://google.com/search?q={search_term}"
        webbrowser.open(url)
        print(f"Вот что я нашел по запросу '{search_term}'")
        speak(f"Вот что я нашел по запросу '{search_term}'")
        os.system('cls' if os.name=='nt' else 'clear')

    elif 'поставь таймер' in command:
        def timer_full():
            def timer(total_seconds):
                while total_seconds > 0:
                    hours = total_seconds // 3600
                    minutes = (total_seconds % 3600) // 60
                    seconds = total_seconds % 60
                    time_left = f"{hours:02}:{minutes:02}:{seconds:02}"
                    print(time_left, end='\r')
                    total_seconds -= 1
                    time.sleep(1)
                print("Время истекло!")
                speak('время истекло')

            pattern = r'(\d+)\s*(час|минут|секунд)'
            matches = re.findall(pattern, command)

            total_seconds = 0
            for time_value, time_unit in matches:
                if time_unit == 'час':
                    total_seconds += int(time_value) * 3600
                elif time_unit == 'минут':
                    total_seconds += int(time_value) * 60
                elif time_unit == 'секунд':
                    total_seconds += int(time_value)

            timer(total_seconds)
        timer_full()
        os.system('cls' if os.name=='nt' else 'clear')

    elif 'какая погода' in command:
        owm = pyowm.OWM('ba5e5f083db44adb73ca556d92eae580')  # замените 'your-api-key' на свой ключ API

        city = 'Yekaterinburg'
        observation = owm.weather_manager().weather_at_place(city)
        w = observation.weather
        temperature = w.temperature('celsius')['temp']

        print(f"В городе {city} сейчас {temperature}°C. {advice_clothing(temperature)}")
        speak(f"В городе {city} сейчас {temperature}°. {advice_clothing(temperature)}")
        os.system('cls' if os.name=='nt' else 'clear')
        
    elif "выключи компьютер" in command or "спокойной ночи" in command:
        print("До свидания! Был рад помочь вам!")
        speak("До свидания! Был рад помочь вам!")

    else:
        command = ''

Спасибо заранее за ответ.
  • Вопрос задан
  • 70 просмотров
Подписаться 1 Средний 4 комментария
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы