-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdanboard.py
74 lines (59 loc) · 2.19 KB
/
danboard.py
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
65
66
67
68
69
70
71
72
73
74
#!/usr/bin/env python3
import aiy.audio
import aiy.cloudspeech
import aiy.i18n
import aiy.voicehat
import mod.snowboydecoder as snowboydecoder
import mod.detect_intent_texts as detect_intent_texts
import mod.tts_jp as tts
import mod.skill as skill
import os
import sys
import uuid
aiy.i18n.set_language_code('ja-JP')
myuuid = str(uuid.uuid4())
model = os.path.join(os.path.dirname(__file__),'danboard.pmdl')
def callbacks():
#snowboydecoder.play_audio_file(snowboydecoder.DETECT_DING)
global interrupted
interrupted = True
def interrupt_callback():
global interrupted
return interrupted
def main():
detector = snowboydecoder.HotwordDetector(model, sensitivity=0.5)
recognizer = aiy.cloudspeech.get_recognizer()
text_recognizer = detect_intent_texts.get_recognizer()
status_ui = aiy.voicehat.get_status_ui()
aiy.audio.get_recorder().start()
while True:
print('INFO:Speak Wake Word and speak')
status_ui.status('ready')
global interrupted
interrupted = False
detector.start(detected_callback=callbacks,
interrupt_check=interrupt_callback,
sleep_time=0.03)
print('INFO:Listening...')
status_ui.status('thinking')
text = recognizer.recognize()
if not text:
print('INFO:Sorry, I did not hear you.')
else:
print('INFO:"', text, '"')
answer = text_recognizer.recognize(myuuid, text)
if answer.intent.display_name == "Default Fallback Intent":
print('INFO:Sorry, Unrecognized text.')
else:
tts.say(answer.fulfillment_text)
while answer.all_required_params_present == False:
print('INFO:You speak more params')
text_params = recognizer.recognize()
answer = text_recognizer.recognize(myuuid, text_params)
tts.say(answer.fulfillment_text)
skill_result = skill.execution(answer.intent.display_name)
if not skill_result is None:
print(skill_result)
tts.say(skill_result)
if __name__ == '__main__':
main()