問題
PythonにてJuliusのプログラムを作っていたところ、
if文で条件分岐した後にその中でもう一度if文を使用したところ、
話した内容がうまく認識されず、
音声認識を常時稼働させるためにwhile Trueを置いていて、
それのせいで認識しないまままた最初の文(Print("Hello World!"))に戻ってしまいます。
該当のソースコード
Python
1import socket 2import time 3 4HOST = '127.0.0.1' 5PORT = 10500 6DATESIZE = 1024 7 8class Julius: 9 10 def __init__(self): 11 12 self.sock = None 13 14 def run(self): 15 16 with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as self.sock: 17 self.sock.connect((HOST, PORT)) 18 19 strTemp = "" 20 fin_flag = False 21 22 while True: 23 24 data = self.sock.recv(DATESIZE).decode('utf-8') 25 26 for line in data.split('\n'): 27 index = line.find('WORD="') 28 if index != -1: 29 strTemp = strTemp + line[index+6:line.find('"',index+6)] 30 31 if '</RECOGOUT>' in line: 32 fin_flag = True 33 34 if fin_flag == True: 35 if 'A' in strTemp: 36 print("Hello World!") 37 time.sleep(2) 38 print("-聞き取り中-") 39 if 'B' in strTemp: 40 print("Good afternoon!") 41 break 42 if 'C' in strTemp: 43 print("Good evening!") 44 break 45 46 fin_flag = False 47 strTemp = "" 48 49if __name__ == "__main__": 50 51 julius = Julius() 52 julius.run()
試したこと
- 2つ目のifのところで動作が終わった後にbreakをつけた
↓
問題に改善は見られなかった
- while True を消した
↓
実行してもprint文も出力せずにファイルが終了してしまった
###Pythonについて
- Python3