def exec_browser(youtube_url, title): already_off = 0 gt2vs.getText2VoiceStream("가장 조회수가 많은 " + title + "의 동영상을 재생합니다.", "./yt_result.wav") play_file("./yt_result.wav") driver = webdriver.Chrome("/usr/lib/chromium-browser/chromedriver") driver.maximize_window() driver.get(youtube_url) driver.switch_to.frame(0) player_status = driver.execute_script( "return document.getElementById('movie_player').getPlayerState()") fullscreen_elem = driver.find_element_by_xpath( "//div[@class='ytp-right-controls']/button[@class='ytp-fullscreen-button ytp-button']" ) print(player_status) time.sleep(3) fullscreen_elem.click() while player_status != 0: player_status = driver.execute_script( "return document.getElementById('movie_player').getPlayerState()") time.sleep(2) text = gv2t.getVoice2Text() if (text == '종료'): already_off = 1 driver.quit() gt2vs.getText2VoiceStream("유튜브 동영상 재생을 종료합니다. 감사합니다.", "./yt_end.wav") play_file("./yt_end.wav") print('Youtube movie End.') break if (already_off == 0): print('Youtube movie End.') driver.quit()
def main(): KWSID = ['기가지니', '지니야', '친구야', '자기야'] while 1: recog = kws.test(KWSID[0]) if recog == 200: GPIO.output(31, GPIO.HIGH) print('KWS Dectected ...\n Start STT...') text = gv2t.getVoice2Text() print('Recognized Text: ' + text) if text.find("노래 틀어줘") >= 0 or text.find( "노래 들려줘") >= 0 or text.find("노래") >= 0: split_text = text.split(" ") serach_text = split_text[split_text.index("노래") - 1] output_file = "search_text.wav" tts.getText2VoiceStream("유튜브에서 " + serach_text + "노래를 재생합니다.", output_file) MS.play_file(output_file) result_url = youtube_search(serach_text + "노래") play_with_url(result_url) time.sleep(2) GPIO.output(31, GPIO.LOW) else: print('KWS Not Dectected ...')
def main(): result = queryByVoice() tts.getText2VoiceStream(result, "result_mesg.wav") MS.play_file("result_mesg.wav") #print(tts_result) '''
def gs_call(): global Time Time = 30 global num1, num2, play_flag, start if num1 == 0 or num1 == 1 or num2 == 0 or num2 == 1: Time = 30 elif num1 == 2 or num2 == 2: Time = 40 elif num1 == 3 or num2 == 3: Time = 30 elif num1 == 4 or num2 == 4: Time = 20 if start == 0: print('start function started') tts.getText2VoiceStream(giveSolution(), "result_TTS.wav") MS.play_file("result_TTS.wav") start = 1 threading.Timer(Time, gs_call).start() #12345 if play_flag != 0 and start != 0 and start != 1: print('flag function started') tts.getText2VoiceStream(giveSolution(), "result_TTS.wav") MS.play_file("result_TTS.wav") threading.Timer(Time, gs_call).start() if play_flag == 1 and start == 1: start = 2
def main(): while 1: retry_game = True button = False recog = kws_test() print(recog) msg = '종료' say_exit = msg if recog == 200: time.sleep(0.8) while 1: if retry_game: print("Speech Recognize Start.....\n") gt2vs.getText2VoiceStream("검색하고자 하는 가수명을 말씀하세요.", "./say_singer.wav") play_file("./say_singer.wav") text = gv2t.getVoice2Text() if (text == '' or text == '종료'): gt2vs.getText2VoiceStream( "유튜브 동영상 프로그램을 종료합니다. 감사합니다.", "./yt_end.wav") play_file("./yt_end.wav") break if (say_exit in text): break target_url = search_ytmov(text) #searching youtube movie exec_browser( target_url, text) #Playing most viewed youtube music video time.sleep(2) else: print('Not_play_now ...')
def main(): KWSID = ['친구야'] while 1: recog = kws.test(KWSID[0]) if recog == 200: print('kws Dectected ..\n Start STT...') text = gv2t.getVoice2Text() print('Recognized Text: ' + text) tts.getText2VoiceStream(checkCommand(text), "result_TTS.wav") MS.play_file("result_TTS.wav") time.sleep(1) else: print('KWS Not Dectected _')
def main(): #Example7 KWS+STT KWSID = ['기가지니', '지니야', '친구야', '자기야'] while 1: recog = kws.test(KWSID[0]) if recog == 200: print('KWS Dectected …\n Start STT…') text = gv2t.getVoice2Text() print('Recognized Text: ' + text) tts.getText2VoiceStream(checkCommand(text), "result_TTS.wav") MS.play_file("result_TTS.wav") time.sleep(2) else: print('KWS Not Dectected …')
def main(): global wc_dict make_dict() #find_capital_quiz() while 1: retry_game = True button = False recog = kws_test() say_exit = '종료' say_retry = '재실행' say_retry2 = '네' say_retry3 = '그래' if recog == 200: gt2vt.getText2VoiceStream( "지금부터 나라수도 맞추기 게임을 시작합니다. 게임 중지를 원하시면 종료라고 말씀해 주세요.", "./cc_opening.wav") gt2vt.play_file("./cc_opening.wav") time.sleep(0.8) while 1: if retry_game: find_capital_quiz() gt2vt.getText2VoiceStream("나라수도 맞추기 게임을 다시 시작할까요?", "./stc_thanku.wav") gt2vt.play_file("./stc_thanku.wav") text = gv2t.getVoice2Text() if (say_exit in text): print("게임을 종료합니다.") gt2vt.getText2VoiceStream("감사합니다", "./thanku.wav") gt2vt.play_file("./stc_thanku.wav") break elif (say_retry in text or say_retry2 in text or say_retry3 in text): gt2vt.getText2VoiceStream("나라수도 맞추기 게임을 다시 시작합니다.", "./cc_regame.wav") gt2vt.play_file("./cc_regame.wav") retry_game = True else: gt2vt.getText2VoiceStream("감사합니다", "./thanku.wav") gt2vt.play_file("./thanku.wav") break else: print('Not play now ...')
def search_ytmov(text): ytmov_list = [] gt2vs.getText2VoiceStream("검색어" + text + "해당하는 유튜브 동영상을 검색중입니다 잠시만 기다려주세요", "./yt_search.wav") play_file("./yt_search.wav") textToSearch = text query = quote(textToSearch) url = "https://www.youtube.com/results?search_sort=video_view_count&filters=video%2C+video&search_query=" + query response = urllib.request.urlopen(url) html = response.read() soup = BeautifulSoup(html) for vid in soup.findAll(attrs={'class': 'yt-uix-tile-link'}): temp_str = ('https://www.youtube.com' + vid['href']) ytmov_list.append(temp_str) print("----------------") print(ytmov_list[1]) # Return the most viewed YouTube movie's url return ytmov_list[1]
def queryByVoice(): print ("\n\n\n질의할 내용을 말씀해 보세요.\n\n듣고 있는 중......\n") request = generate_request() resultText = '' response = stub.queryByVoice(request) if response.resultCd == 200: print("질의 내용: %s" % (response.uword)) for a in response.action: response = a.mesg parsing_resp = response.replace('<![CDATA[', '') parsing_resp = parsing_resp.replace(']]>', '') resultText = parsing_resp print("\n질의에 대한 답변: " + parsing_resp +'\n\n\n') else: print("\n\nresultCd: %d\n" % (response.resultCd)) print("정상적인 음성인식이 되지 않았습니다.") tts.getText2VoiceStream(resultText, "result_mesg.wav") #MS.play_file("result_mesg.wav") return resultText
def voice_talk(): answer_str = dss.queryByVoice() tts_result = tts.getText2VoiceStream(answer_str, "result_msg.wav") if answer_str == '': print("질문이 없었습니다.") return 0 elif tts_result == 500: print("TTS 동작에러입니다.") return 0 else: MS.play_file("result_msg.wav")
def main(): setup() while 1: retry_game = True button = False recog=kws_test() say_exit = '종료'.decode('utf-8') if recog == 200: gt2vt.getText2VoiceStream("안녕하세요 영리한 휴지통입니다","./stc_opening.wav") gt2vt.play_file("./stc_opening.wav") time.sleep(0.8) while 1: if retry_game: text = gv2t.getVoice2Text() control_action(text) if(say_exit in text): gt2vt.getText2VoiceStream("감사합니다","./stc_thanku.wav") gt2vt.play_file("./stc_opening.wav") break else: print('Not play now ...')
def control_action(text): open_can = '열어'.decode('utf-8') open_can2 = '열어줘'.decode('utf-8') open_can3 = '여러'.decode('utf-8') close_can = '닫아'.decode('utf-8') close_can2 = '닫아줘'.decode('utf-8') #cmd_init() if (open_can in text or open_can2 in text): print('open the trash can') gt2vt.getText2VoiceStream("네에","./stc_yes.wav") gt2vt.play_file("./stc_yes.wav") time.sleep(1) open_tc() time.sleep(3) elif (close_can in text or close_can2 in text): print('close the trash can') gt2vt.getText2VoiceStream("네에","./stc_yes.wav") gt2vt.play_file("./stc_yes.wav") close_tc() else: print('action nothing')
def text_talk(): input_str = input("나무에게 하고싶은 말을 적으세요:") answer_str = qt.return_answer(input_str) if len(answer_str) == 0: print("답할말이 없습니다.") return 0 print("응답 : " + answer_str) tts_result = tts.getText2VoiceStream(answer_str, "result_msg1.wav") if tts_result == 500: print("TTS 동작에러입니다.") return 0 else: MS.play_file("result_msg1.wav")
def main(): #Example7 KWS+STT KWSID = ['기가지니', '지니야', '친구야', '자기야'] global but_commu but_commu = 0 gs_call() while 1: if but_commu == 0: time.sleep(5) recog1 = kws.test(KWSID[0]) if recog1 == 200: print('KWS Dectected …\n Start STT…') text = gv2t.getVoice2Text() print('Recognized Text: ' + text) tts.getText2VoiceStream(checkCommand(text), "result_TTS.wav") MS.play_file("result_TTS.wav") time.sleep(2) else: print('KWS Not Dectected …') if but_commu == 1: recog2 = kws.btn_test(KWSID[0]) if recog2 == 200: print('KWS Dectected ...\n Start STT...') text = dss.queryByVoice() tts_result = tts.getText2VoiceStream(text, "result_mesg.wav") if text == '': print('질의한 내용이 없습니다.') but_commu = 0 elif tts_result == 500: print("TTS 동작 에러입니다.\n") but_commu = 0 break else: MS.play_file("result_mesg.wav") but_commu = 0 time.sleep(2) else: print('KWS Not Dectected ...')
def main(): #Example8 Button+STT+DSS KWSID = ['기가지니', '지니야', '친구야', '자기야'] while 1: recog = kws.btn_test(KWSID[0]) if recog == 200: print('KWS Dectected ...\n Start STT...') text = dss.queryByVoice() tts_result = tts.getText2VoiceStream(text, "result_mesg.wav") if text == '': print('질의한 내용이 없습니다.') elif tts_result == 500: print("TTS 동작 에러입니다.\n") break else: MS.play_file("result_mesg.wav") time.sleep(2) else: print('KWS Not Dectected ...')
def main(): #Example8 KWS+STT+DSS KWSID = ['기가지니', '지니야', '친구야', '자기야'] while 1: recog=kws.test(KWSID[0]) if recog == 200: print('KWS Dectected ...\n') dssAnswer = dss.queryByVoice() ttsResult = tts.getText2VoiceStream(dssAnswer, "result_mesg.wav") if dssAnswer == '': print('질의한 내용이 없습니다.\n\n\n') elif ttsResult == 500: print("TTS 동작 에러입니다.\n\n\n") break else: kws.gkitAudio.playWav("result_mesg.wav") time.sleep(2) else: print('KWS Not Dectected ...')
def find_capital_quiz(): global wc_dict num_country = len(wc_dict) comment_exit = '종료' for i in range(num_country): country, capital = random.choice(list(wc_dict.items())) print(country + "는 어디에 수도인가?") gt2vt.getText2VoiceStream(country + "는 어디에 수도입니까?", "./question.wav") gt2vt.play_file("./question.wav") text = gv2t.getVoice2Text() print(text + '\n') if (comment_exit in text): gameover = True break elif (wc_dict[country] == text): print("정답입니다.") gt2vt.getText2VoiceStream("정답입니다.", "./right_answer.wav") gt2vt.play_file("./right_answer.wav") time.sleep(2) elif text == "": print("아직 답변을 듣지 못하였습니다. 3초의 시간을 더 드립니다.") gt2vt.getText2VoiceStream("아직 답변을 듣지 못하였습니다. 3초의 시간을 더 드립니다.", "./waits_3sec.wav") gt2vt.play_file("./waits_3sec.wav") gt2vt.getText2VoiceStream("3초", "./cn_sec.wav") gt2vt.play_file("./cn_sec.wav") time.sleep(0.8) gt2vt.getText2VoiceStream("2초", "./cn_sec.wav") gt2vt.play_file("./cn_sec.wav") time.sleep(0.8) gt2vt.getText2VoiceStream("1초", "./cn_sec.wav") gt2vt.play_file("./cn_sec.wav") time.sleep(0.8) gt2vt.getText2VoiceStream("이제 말씀하세요", "./say_answer.wav") gt2vt.play_file("./say_answer.wav") text2 = gv2t.getVoice2Text() if (wc_dict[country] == text2): print("정답입니다.") gt2vt.getText2VoiceStream("정답입니다.", "./right_answer.wav") gt2vt.play_file("./right_answer.wav") time.sleep(3) else: print("오답입니다.") gt2vt.getText2VoiceStream( "틀렸습니다. 정답은 " + country + "의 수도는 " + capital + "입니다.", "./wrong_answer.wav") gt2vt.play_file("./wrong_answer.wav") time.sleep(3) else: print("오답입니다.") gt2vt.getText2VoiceStream( "틀렸습니다. 정답은 " + country + "의 수도는 " + capital + "입니다.", "./wrong_answer.wav") gt2vt.play_file("./wrong_answer.wav") time.sleep(3) del wc_dict[country] gt2vt.getText2VoiceStream("다음 문제를 진행하도록 하겠습니다.", "./next_quiz.wav") gt2vt.play_file("./next_quiz.wav") if gameover == True: make_dict() gt2vt.getText2VoiceStream("게임을 종료합니다.", "./game_end.wav") gt2vt.play_file("./game_end.wav")
def initial_func(): current_time = datetime.datetime.now().strftime("%m월 %d일 %H시 %M분") output_file = "init.wav" tts.getText2VoiceStream("안녕하세요 나무의 전원이 켜졌습니다. 현재 시간은"+current_time+"입니다", output_file) MS.play_file(output_file)
def gs_call(): tts.getText2VoiceStream(giveSolution(), "result_TTS.wav") MS.play_file("result_TTS.wav") threading.Timer(1200, gs_call).start()