def implement_intent(client, resp): logger.debug("query_result: %s" % (resp,)) msg = None if resp.fulfillment_text: msg = resp.fulfillment_text if msg: Speaker.play(msg) client.standby()
def implement_intent(client, query_result): Speaker.play("好的,請繼續聽我的指示前進") dest = nav.get_ready_destination() if dest: client.add_destination(dest) else: Speaker.play("很抱欺我不知道要如何前往。") client.standby()
def implement_intent(client, resp): if resp.fulfillment_text: msg = resp.fulfillment_text else: msg = "其實我也不清楚創新是什麼" Speaker.play(msg) client.listen_user() client.standby()
def implement_intent(client, query_result): dest = nav.get_ready_destination() if dest is not None: Speaker.play("好的,現在開始請聽我的指示前進") client.add_destination(dest) nav.set_ready_destination(None) else: logger.error("No destination.") client.standby()
def __process_indoor(client, target): dest = Information.parse_indoor_destination(target) if dest is None: Speaker.play("很抱歉,目前我還不知道怎麼帶你去" + target) client.standby(True) else: Speaker.play("好的,我現在開始找尋附近的" + target) Information.set_indoor_destination(dest) client.standby()
def implement_intent(client, resp): logger.debug("query_result: %s" % (resp, )) if resp.fulfillment_text: msg = resp.fulfillment_text else: msg = "其實我也不清楚創新是什麼" Speaker.play(msg) client.listen_user() client.standby()
def implement_intent(dialogue_client, query_result): if query_result.fulfillment_text: if query_result.fulfillment_text: Speaker.play(query_result.fulfillment_text) else: Speaker.play("請您再說一遍。") dialogue_client.listen_user() else: dialogue_client.standby()
def implement_intent(client, query_result): target = query_result.parameters['location'] if len(target) == 0: msg = "對不起我沒聽清楚你要去的地方,請您再說一遍。" Speaker.play(msg) client.listen_user() else: if Information.is_indoor(): __process_indoor(client, target) else: __process_outdoor(client, target)
def implement_intent(client, query_result): if Information.is_indoor(): dest = Information.get_indoor_destination() if dest is not None: Information.stop_indoor_destination() msg = "好的,己停止前往" + Information.get_indoor_destination_text(dest) Speaker.play(msg) else: dest = client.get_current_destination() if dest is not None: Information.stop_outdoor_destination() msg = "好的,己停止前往" + dest.name Speaker.play(msg) client.standby(True)
def response_dialogflow(req): reply_msg = '很抱歉我沒聽懂,請再說一次。' query = req.get("queryResult") if query.get("action") == "NavStart": params = query.get("parameters") if params and params.get("location"): destination = params.get("location") reply_msg = '請稍候,我查一下附近的' + destination start_nav(destination) else: reply_msg = '我沒聽懂地點,請再說一次。' Speaker.play(reply_msg) res_json = {'fulfillmentText': reply_msg} return res_json
def play_sound(self, msg, play_async=False, quieter=False): # logger.debug("play_sound: 0") now = datetime.now() if msg == self.last_kanban_msg: # logger.debug("play_sound: 1") diff = now - self.last_kanban_msg_time if diff.total_seconds() < 8: logger.warning("Skip message: " + msg) return self.last_kanban_msg = msg self.last_kanban_msg_time = now if not Speaker.is_playing(): if play_async: Speaker.play_async(msg) else: Speaker.play(msg, quieter)
def __arrived_outdoor(self, key, value): if len(self.destinations) == 0: return Information.set_outdoor_destination(None, None) dest = self.destinations.pop() Speaker.play("您已經抵達" + dest.name) self.destinations.clear() # 取消 2021/9/27 # count = len(self.destinations) # if count > 0: # next_dest = self.destinations[count - 1] # Speaker.play("接下來我們將繼續前往" + next_dest.name) # Speaker.play("現在開始請聽我的指示前進") # Information.set_outdoor_destination(next_dest.coordinate, next_dest.dest_type) # else: # self.standby(True) Information.set_outdoor_destination(None, None) self.standby(True)
def __process_outdoor(client, target): msg = "好的,我現在為您找尋附近的" + target Speaker.play(msg) dest = __find_place(target) if dest: current_dest = client.get_current_destination() if current_dest: Speaker.play("最近的{}是{},距離{}公尺。".format(target, dest.name, dest.distance)) msg = "但是您正在前往{}的路上,確定要先去{}嗎?".format(current_dest.name, target) client.ask_user(msg) Speaker.play(msg) # Speaker.play("您正在前往{}的途中".format(current_dest.name)) # Speaker.play("最近的{}是{},距離{}公尺,在去{}之前要先過去那裡嗎?".format(target, d.name, d.distance, current_dest.name)) else: Speaker.play("最近的{}是{},距離{}公尺,要我帶您過去嗎?".format(target, dest.name, dest.distance)) set_ready_destination(dest) client.listen_user() else: Speaker.play("很抱歉,我找不到附近的{},".format(target)) client.standby()
def implement_intent(client, query_result): kanbans = Information.get_indoor_kanbans() or [] all_kanbans = [] for k in kanbans: if 'name' in k: all_kanbans.append(Information.get_indoor_destination_text(k["name"])) # all_kanbans = [Information.get_indoor_destination_text(k["name"]) for k in kanbans] if len(all_kanbans) == 0: msg = "前方看不見任何標示,請轉頭看看四週" Speaker.play(msg) client.standby() else: if len(all_kanbans) == 1: msg = "前面的指標只有一個" + all_kanbans[0] + "標示" else: msg = "前面的指標有" + ",".join(all_kanbans[:-1]) msg += "和" + all_kanbans[-1] msg += ", 請告訴我你想去的地方" Speaker.play(msg) client.listen_user()
def implement_intent(client, query_result): target = query_result.parameters['scene'] if len(target) == 0: msg = "我沒聽清楚要切換到哪個場景,請再說一遍。" Speaker.play(msg) client.listen_user() else: if "室內" == target: Information.set_indoor(True) Speaker.play("好的,已經切換到" + target) elif "室外" == target: Information.set_indoor(False) Speaker.play("好的,已經切換到" + target) else: Speaker.play("很抱歉,我還不知道怎麼切換到" + target) client.standby(True)
def implement_intent(client, query_result): Speaker.play("好的,如有需要再呼叫我") client.standby()
def test_timer(): # t = Timer(5.0, test_timer) # t.start() Speaker.play("時間到") print("hello, world")
def do_start_nav(destination): time.sleep(5) Speaker.play("附近有捷運領航站,要我帶您過去嗎?")
def shutdown(self): Speaker.play("我會想你的") Information.terminate() self._user_processor.terminate() self._user_listener.terminate() self.is_terminated = True
def implement_intent(dialogue_client, query_result): Speaker.play("關機後系統就不會再回應了,要重新啟動才行,您確定嗎?") dialogue_client.listen_user()
def play_sound(self, msg, play_async=False): if not Speaker.is_playing(): if play_async: Speaker.play_async(msg) else: Speaker.play(msg)
def implement_intent(dialogue_client, query_result): Speaker.play("好的,我關機了,再見。") dialogue_client.shutdown()