Мне нужно переделать свой код в приложение 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 = ''
Спасибо заранее за ответ.