예제 #1
0
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()
예제 #2
0
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
예제 #5
0
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 ...')
예제 #6
0
파일: test.py 프로젝트: sonnonet/jjvision
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 …')
예제 #8
0
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 ...')
예제 #9
0
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
예제 #11
0
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")
예제 #12
0
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 ...')
예제 #13
0
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')
예제 #14
0
파일: vidaOS.py 프로젝트: yujin-hong/Vida
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")
예제 #15
0
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 ...')
예제 #16
0
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 ...')
예제 #17
0
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 ...')
예제 #18
0
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")
예제 #19
0
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)
예제 #20
0
def gs_call():
    tts.getText2VoiceStream(giveSolution(), "result_TTS.wav")
    MS.play_file("result_TTS.wav")

    threading.Timer(1200, gs_call).start()