Skip to content

Commit 4333a18

Browse files
authored
Add files via upload
1 parent 663ae21 commit 4333a18

File tree

1 file changed

+29
-6
lines changed

1 file changed

+29
-6
lines changed

script/order_manager.py

Lines changed: 29 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,13 @@
77
import tempfile
88
from gtts import gTTS
99

10+
# time
11+
from datetime import datetime
12+
from time import sleep
13+
14+
# speaker init
1015
mixer.init()
16+
1117
def line_speaker(texts,lang='zh-tw'):
1218
with tempfile.NamedTemporaryFile(delete=True) as fp:
1319
tts = gTTS(text=texts,lang=lang)
@@ -16,14 +22,16 @@ def line_speaker(texts,lang='zh-tw'):
1622
mixer.music.play()
1723
print(texts)
1824

19-
r = speech_recognition.Recognizer()
25+
# listener init()
26+
recognizer = speech_recognition.Recognizer()
2027
def listener():
2128
result = None
2229
while(result == None):
2330
with speech_recognition.Microphone() as source:
24-
audio = r.listen(source)
31+
# recognizer.adjust_for_ambient_noise(source)
32+
audio = recognizer.listen(source)
2533
try:
26-
result = r.recognize_google(audio,language = 'zh-tw')
34+
result = recognizer.recognize_google(audio,language = 'zh-tw')
2735
except:
2836
continue
2937
print(result)
@@ -32,23 +40,38 @@ def listener():
3240
def order_manage():
3341
data_dict = load_xlsx()
3442
menu_dict = process_data_to_menu(data_dict)
43+
line_speaker('您好,很高興為您服務,請問要做些甚麼?')
3544
while(1):
3645
order_line = listener()
46+
# 點餐
3747
if '餐' in order_line:
38-
# 點餐
3948
total_order = ''
4049
line_speaker('請問要點些什麼呢?')
4150
while(1):
4251
order_menu_line = listener()
4352
if '和' in order_menu_line or '個' in order_menu_line:
4453
total_order+=order_menu_line+'和'
45-
elif '餐' in order_menu_line:
54+
elif '餐' in order_menu_line or '點完' in order_menu_line:
4655
# 點完餐
4756
break
57+
else:
58+
line_speaker('不好意思,請再說一次。')
4859
line_speaker(process_price_with_order(menu_dict, total_order))
4960

50-
elif '離開' in order_line:
61+
# 問時間,幾點了
62+
elif ('時間' in order_line) or ('幾點' in order_line):
63+
now = datetime.now()
64+
res_text = '現在時間是 %d 點 %d 分 %d 秒' % (now.hour, now.minute, now.second)
65+
line_speaker(res_text)
66+
67+
# 離開
68+
elif '離開' in order_line or '結束' in order_line:
69+
line_speaker('很高興為您服務,很期待您下次光顧。')
70+
sleep(6)
5171
break
72+
73+
else:
74+
line_speaker('不好意思,請再說一次。')
5275

5376
if __name__ == '__main__':
5477
order_manage()

0 commit comments

Comments
 (0)