7
7
import tempfile
8
8
from gtts import gTTS
9
9
10
+ # time
11
+ from datetime import datetime
12
+ from time import sleep
13
+
14
+ # speaker init
10
15
mixer .init ()
16
+
11
17
def line_speaker (texts ,lang = 'zh-tw' ):
12
18
with tempfile .NamedTemporaryFile (delete = True ) as fp :
13
19
tts = gTTS (text = texts ,lang = lang )
@@ -16,14 +22,16 @@ def line_speaker(texts,lang='zh-tw'):
16
22
mixer .music .play ()
17
23
print (texts )
18
24
19
- r = speech_recognition .Recognizer ()
25
+ # listener init()
26
+ recognizer = speech_recognition .Recognizer ()
20
27
def listener ():
21
28
result = None
22
29
while (result == None ):
23
30
with speech_recognition .Microphone () as source :
24
- audio = r .listen (source )
31
+ # recognizer.adjust_for_ambient_noise(source)
32
+ audio = recognizer .listen (source )
25
33
try :
26
- result = r .recognize_google (audio ,language = 'zh-tw' )
34
+ result = recognizer .recognize_google (audio ,language = 'zh-tw' )
27
35
except :
28
36
continue
29
37
print (result )
@@ -32,23 +40,38 @@ def listener():
32
40
def order_manage ():
33
41
data_dict = load_xlsx ()
34
42
menu_dict = process_data_to_menu (data_dict )
43
+ line_speaker ('您好,很高興為您服務,請問要做些甚麼?' )
35
44
while (1 ):
36
45
order_line = listener ()
46
+ # 點餐
37
47
if '餐' in order_line :
38
- # 點餐
39
48
total_order = ''
40
49
line_speaker ('請問要點些什麼呢?' )
41
50
while (1 ):
42
51
order_menu_line = listener ()
43
52
if '和' in order_menu_line or '個' in order_menu_line :
44
53
total_order += order_menu_line + '和'
45
- elif '餐' in order_menu_line :
54
+ elif '餐' in order_menu_line or '點完' in order_menu_line :
46
55
# 點完餐
47
56
break
57
+ else :
58
+ line_speaker ('不好意思,請再說一次。' )
48
59
line_speaker (process_price_with_order (menu_dict , total_order ))
49
60
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 )
51
71
break
72
+
73
+ else :
74
+ line_speaker ('不好意思,請再說一次。' )
52
75
53
76
if __name__ == '__main__' :
54
77
order_manage ()
0 commit comments