Repository navigation
Expand file tree
/
Copy pathmain.py
More file actions
64 lines (49 loc) · 1.71 KB
/
Copy pathmain.py
File metadata and controls
64 lines (49 loc) · 1.71 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
import atexit
import threading
import time
from gpio_controller import GPIOController
from MedicineSchedule import handle_command, run_scheduler
from RequestTts import text_to_voice
from util import (
auto_save_mic,
auto_save_speaker,
initialize_settings,
wait_for_microphone,
wait_for_network,
)
from WakeWord import wakeWord_forever
gpio = GPIOController(refresh_callback=lambda: None, skip_callback=lambda: None)
atexit.register(gpio.cleanup)
if __name__ == "__main__":
if wait_for_microphone():
time.sleep(2)
auto_save_mic()
auto_save_speaker()
else:
print("마이크를 찾을 수 없습니다.")
wait_for_network()
# initialize_settings()
scheduler_thread = threading.Thread(target=run_scheduler, daemon=True)
scheduler_thread.start()
# text_to_voice("안녕하세요. 저는 살가이라고 합니다. 살가이라고 불러주세요.")
while True:
try:
recognized_text = wakeWord_forever()
if recognized_text:
try:
gpio.set_mode("thinking")
handle_command(recognized_text)
gpio.set_mode("default")
except Exception as e:
print(f"명령 처리 중 오류 발생: {e}")
gpio.set_mode("error")
time.sleep(2)
gpio.set_mode("default")
else:
gpio.set_mode("default")
except Exception as e:
print(f"웨이크워드 감지 오류: {e}")
gpio.set_mode("error")
time.sleep(2)
gpio.set_mode("default")
time.sleep(0.5)