Skip to content

Commit 5ed44d8

Browse files
authored
Add files via upload
1 parent c815fb2 commit 5ed44d8

File tree

1 file changed

+67
-0
lines changed

1 file changed

+67
-0
lines changed

script/enter_order_mode.py

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
# process order
2+
from process_order import load_xlsx, process_data_to_menu, process_price_with_order
3+
# detect voice
4+
import speech_recognition
5+
# generate voice
6+
from pygame import mixer
7+
import tempfile
8+
from gtts import gTTS
9+
10+
# time
11+
from datetime import datetime
12+
from time import sleep
13+
14+
# speaker init
15+
mixer.init()
16+
17+
def line_speaker(texts,lang='zh-tw'):
18+
with tempfile.NamedTemporaryFile(delete=True) as fp:
19+
tts = gTTS(text=texts,lang=lang)
20+
tts.save("{}.mp3".format(fp.name))
21+
mixer.music.load('{}.mp3'.format(fp.name))
22+
mixer.music.play()
23+
print(texts)
24+
25+
# listener init()
26+
def listener():
27+
result = input()
28+
return result
29+
30+
def order_manage():
31+
data_dict = load_xlsx(file_name='script/menu.xlsx')
32+
menu_dict = process_data_to_menu(data_dict)
33+
line_speaker('您好,很高興為您服務,請問要做些甚麼?')
34+
while(1):
35+
order_line = listener()
36+
# 點餐
37+
if '餐' in order_line:
38+
total_order = ''
39+
line_speaker('請問要點些什麼呢?')
40+
while(1):
41+
order_menu_line = listener()
42+
if '和' in order_menu_line or '個' in order_menu_line:
43+
total_order+=order_menu_line+'和'
44+
elif '餐' in order_menu_line or '點完' in order_menu_line:
45+
# 點完餐
46+
break
47+
else:
48+
line_speaker('不好意思,請再說一次。')
49+
line_speaker(process_price_with_order(menu_dict, total_order))
50+
51+
# 問時間,幾點了
52+
elif ('時間' in order_line) or ('幾點' in order_line):
53+
now = datetime.now()
54+
res_text = '現在時間是 %d 點 %d 分 %d 秒' % (now.hour, now.minute, now.second)
55+
line_speaker(res_text)
56+
57+
# 離開
58+
elif '離開' in order_line or '結束' in order_line:
59+
line_speaker('很高興為您服務,很期待您下次光顧。')
60+
sleep(6)
61+
break
62+
63+
else:
64+
line_speaker('不好意思,請再說一次。')
65+
66+
if __name__ == '__main__':
67+
order_manage()

0 commit comments

Comments
 (0)