{"id":1901,"date":"2018-02-02T14:49:11","date_gmt":"2018-02-02T05:49:11","guid":{"rendered":"http:\/\/bezelie.com\/blog\/?page_id=1901"},"modified":"2018-02-25T18:25:18","modified_gmt":"2018-02-25T09:25:18","slug":"%e3%83%97%e3%83%ad%e3%82%b0%e3%83%a9%e3%83%a0%e8%a7%a3%e8%aa%ac%e3%80%8cdemo_chat1-py%e3%80%8d","status":"publish","type":"page","link":"http:\/\/bezelie.com\/blog\/?page_id=1901","title":{"rendered":"\u30d7\u30ed\u30b0\u30e9\u30e0\u89e3\u8aac\u300cdemo_chat1.py\u300d"},"content":{"rendered":"<p>\u30fbdemo_chat1.py\u306f\u521d\u671f\u72b6\u614b\u306e\u3079\u30bc\u30ea\u30fc\u304c\u81ea\u52d5\u8d77\u52d5\u3059\u308b\u30d7\u30ed\u30b0\u30e9\u30e0\u306e\u3046\u3061\u306e\u3072\u3068\u3064\u3067\u3001\u97f3\u58f0\u4f53\u3092\u884c\u3044\u307e\u3059\u3002<\/p>\n<hr \/>\n<h5>\u30e2\u30b8\u30e5\u30fc\u30eb\u306e\u8aad\u307f\u8fbc\u307f<\/h5>\n<pre class=\"height:200 lang:python range:1-21 decode:true\" title=\"demo_chat1.py\">#!\/usr\/bin\/python\n# -*- coding: utf-8 -*-\n# \u97f3\u58f0\u5bfe\u8a71\u30c7\u30e2\n# for Bezelie Edgar\n# for Raspberry Pi\n# by Jun Toyoda (Team Bezelie)\n# from Aug15th2017\n\nfrom datetime import datetime      # \u73fe\u5728\u6642\u523b\u53d6\u5f97\nfrom random import randint         # \u4e71\u6570\u306e\u767a\u751f\nfrom time import sleep             # \u30a6\u30a7\u30a4\u30c8\u51e6\u7406\nimport subprocess                  # \u5916\u90e8\u30d7\u30ed\u30bb\u30b9\u3092\u5b9f\u884c\u3059\u308b\u30e2\u30b8\u30e5\u30fc\u30eb\nimport threading                   # \u30de\u30eb\u30c1\u30b9\u30ec\u30c3\u30c9\u51e6\u7406\nimport socket                      # \u30bd\u30b1\u30c3\u30c8\u901a\u4fe1\u30e2\u30b8\u30e5\u30fc\u30eb\nimport select                      # I\/O\u51e6\u7406\u5b8c\u4e86\u5f85\u6a5f\u30e2\u30b8\u30e5\u30fc\u30eb\nimport json                        # json\u30d5\u30a1\u30a4\u30eb\u3092\u6271\u3046\u30e2\u30b8\u30e5\u30fc\u30eb\nimport csv                         # CSV\u30d5\u30a1\u30a4\u30eb\u3092\u6271\u3046\u30e2\u30b8\u30e5\u30fc\u30eb\nimport sys                         # python\u7d42\u4e86sys.exit()\u306e\u305f\u3081\u306b\u5fc5\u8981\nimport re                          # \u6b63\u898f\u8868\u73fe\u30e2\u30b8\u30e5\u30fc\u30eb\nimport bezelie                     # \u3079\u30bc\u30ea\u30fc\u5c02\u7528\u30b5\u30fc\u30dc\u5236\u5fa1\u30e2\u30b8\u30e5\u30fc\u30eb\n\ncsvFile   = \"\/home\/pi\/bezelie\/chatDialog.csv\"          # \u5bfe\u8a71\u30ea\u30b9\u30c8\njsonFile  = \"\/home\/pi\/bezelie\/edgar\/data_chat.json\"    # \u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\nttsFile   = \"\/home\/pi\/bezelie\/edgar\/exec_openJTalk.sh\" # \u97f3\u58f0\u5408\u6210\ndebugFile = \"\/home\/pi\/bezelie\/debug.txt\"               # debug\u7528\n\n# \u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\u306e\u8aad\u307f\u8fbc\u307f\nf = open (jsonFile,'r')\njDict = json.load(f)\nname = jDict['data0'][0]['name']       # \u3079\u30bc\u30ea\u30fc\u306e\u5225\u540d\u3002\nuser = jDict['data0'][0]['user']       # \u30e6\u30fc\u30b6\u30fc\u306e\u30cb\u30c3\u30af\u30cd\u30fc\u30e0\u3002\nvol = jDict['data0'][0]['vol']         # \u30b9\u30d4\u30fc\u30ab\u30fc\u97f3\u91cf\u3002\nsubprocess.call('amixer cset numid=1 '+vol+'% -q', shell=True)      # \u30b9\u30d4\u30fc\u30ab\u30fc\u97f3\u91cf\n# mic = jDict['data0'][0]['mic']         # \u30de\u30a4\u30af\u611f\u5ea6\u3002\nmic = \"60\"                               # \u30de\u30a4\u30af\u611f\u5ea6\u3002\nsubprocess.call('sudo amixer sset Mic '+mic+' -c 0 -q', shell=True) # \u30de\u30a4\u30af\u611f\u5ea6\u8a2d\u5b9a\n\n# \u5909\u6570\u306e\u521d\u671f\u5316\nmuteTime = 1        # \u97f3\u58f0\u5165\u529b\u3092\u7121\u8996\u3059\u308b\u6642\u9593\nbufferSize = 256    # \u53d7\u4fe1\u3059\u308b\u30c7\u30fc\u30bf\u306e\u6700\u5927\u30d0\u30a4\u30c8\u3002\uff12\u306e\u500d\u6570\u304c\u671b\u307e\u3057\u3044\u3002\n\n# \u95a2\u6570\ndef timeCheck(): # \u6d3b\u52d5\u6642\u9593\u5185\u304b\u3069\u3046\u304b\u306e\u30c1\u30a7\u30c3\u30af\n  f = open (jsonFile,'r')\n  jDict = json.load(f)\n  awake1Start = jDict['data1'][0]['awake1Start']\n  awake1End = jDict['data1'][0]['awake1End']\n  awake2Start = jDict['data1'][0]['awake2Start']\n  awake2End  = jDict['data1'][0]['awake2End']\n  t = datetime.now()\n  if   int(t.hour) &gt;  int(awake1Start[0:2]) and int(t.hour) &lt;    int(awake1End[0:2]):\n    flag = True\n  elif int(t.hour) == int(awake1Start[0:2]) and int(t.minute) &gt;= int(awake1Start[3:5]):\n    flag = True\n  elif int(t.hour) == int(awake1End[0:2])   and int(t.minute) &lt;= int(awake1End[3:5]):\n    flag = True\n  elif int(t.hour) &gt;  int(awake2Start[0:2]) and int(t.hour) &lt;    int(awake2End[0:2]):\n    flag = True\n  elif int(t.hour) == int(awake2Start[0:2]) and int(t.minute) &gt;= int(awake2Start[3:5]):\n    flag = True\n  elif int(t.hour) == int(awake2End[0:2])   and int(t.minute) &lt;= int(awake2End[3:5]):\n    flag = True\n  else:\n    flag = False # It is not Active Time\n  return flag\n\ndef alarm():\n  f = open (jsonFile,'r')\n  jDict = json.load(f)\n  alarmOn = jDict['data1'][0]['alarmOn']\n  alarmTime = jDict['data1'][0]['alarmTime']\n  alarmKind = jDict['data1'][0]['alarmKind']\n  now = datetime.now()\n  if int(now.hour) == int(alarmTime[0:2]) and int(now.minute) == int(alarmTime[3:5]):\n    if alarmOn == \"true\":\n      # subprocess.call('sudo amixer -q sset Mic 0 -c 0', shell=True) \n      if alarmKind == 'mild':\n        bez.moveAct('happy')\n        subprocess.call(\"sh \"+ttsFile+\" \"+\"\u671d\u3067\u3059\u3088\", shell=True)\n        bez.stop()\n      else:\n        bez.moveAct('happy')\n        subprocess.call(\"sh \"+ttsFile+\" \"+\"\u671d\u3060\u3088\u8d77\u304d\u3066\u8d77\u304d\u3066\u8d77\u304d\u3066\u30fc\", shell=True)\n        bez.stop()\n      sleep (muteTime)\n      # subprocess.call('sudo amixer -q sset Mic '+mic+' -c 0', shell=True)\n  t=threading.Timer(20,alarm) # \uff4e\u79d2\u5f8c\u306b\u307e\u305f\u30b9\u30ec\u30c3\u30c9\u3092\u8d77\u52d5\u3059\u308b\n  t.setDaemon(True)           # \u30e1\u30a4\u30f3\u30b9\u30ec\u30c3\u30c9\u304c\u7d42\u4e86\u3057\u305f\u3089\u7d42\u4e86\u3055\u305b\u308b\n  t.start()\n\ndef replyMessage(keyWord):        # \u5bfe\u8a71\n  data = []                       # \u5bfe\u8a71\u30d5\u30a1\u30a4\u30eb\uff08csv\uff09\u3092\u5909\u6570data\u306b\u8aad\u307f\u8fbc\u3080\n  with open(csvFile, 'rb') as f:  # csvFile\u3092\u30aa\u30fc\u30d7\u30f3\n    for i in csv.reader(f):       # \u30d5\u30a1\u30a4\u30eb\u304b\u3089\uff11\u884c\u305a\u3064i\u306b\u8aad\u307f\u8fbc\u3080\n      data.append(i)              # data\u306b\u8ffd\u52a0\n\n  data1 = []                      # data\u304b\u3089\u8cea\u554f\u5185\u5bb9\u304c\u30ad\u30fc\u30ef\u30fc\u30c9\u306b\u4e00\u81f4\u3057\u3066\u3044\u308b\u884c\u3092data1\u3068\u3057\u3066\u629c\u304d\u51fa\u3059\n  for index,i in enumerate(data): # index=\u9023\u756a\n    if unicode(i[0], 'utf-8')==keyWord:  # i[0]\u306fstr\u306a\u306e\u3067utf-8\u306b\u5909\u63db\u3057\u3066\u6bd4\u8f03\u3059\u308b\u5fc5\u8981\u304c\u3042\u308b\n      j = randint(1,100)          # \uff11\u304b\u3089\uff11\uff10\uff10\u307e\u3067\u306e\u4e71\u6570\u3092\u767a\u751f\u3055\u305b\u308b\n      data1.append(i+[j]+[index]) # data1=\u8cea\u554f\u5185\u5bb9,\u8fd4\u7b54,\u4e71\u6570,\u9023\u756a\u306e\u30ea\u30b9\u30c8\n\n  if data1 == []:                 # data1\u304c\u7a7a\u3063\u307d\u3060\u3063\u305f\u3089\u30e9\u30f3\u30c0\u30e0\u3067\u8fd4\u3059\n    for index,i in enumerate(data):\n      j = randint(1,100)\n      data1.append(i+[j]+[index])\n\n  maxNum = 0                      # \u8907\u6570\u306e\u5019\u88dc\u304b\u3089\u30e9\u30f3\u30c0\u30e0\u3067\u9078\u51fa\u3002data1\u304b\u3089\u6b04\u6570\u5024\u304c\u6700\u5927\u306a\u3082\u306e\u3092\u9078\u3076\n  for i in data1:\n    if i[2] &gt; maxNum:\n      maxNum = i[2]\n      ansNum = i[3]\n\n  # \u767a\u8a71\n  # subprocess.call('sudo amixer -q sset Mic 0 -c 0', shell=True)  # \u81ea\u5206\u306e\u58f0\u3092\u8a8d\u8b58\u3057\u3066\u3057\u307e\u308f\u306a\u3044\u3088\u3046\u306b\u30de\u30a4\u30af\u3092\u5207\u308b\n  # \u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\u306e\u8aad\u307f\u8fbc\u307f\n  f = open (jsonFile,'r')\n  jDict = json.load(f)\n  vol = jDict['data0'][0]['vol']         # \u30b9\u30d4\u30fc\u30ab\u30fc\u30dc\u30ea\u30e5\u30fc\u30e0\n  # mic = jDict['data0'][0]['mic']         # \u30de\u30a4\u30af\u611f\u5ea6\n\n  if timeCheck(): # \u6d3b\u52d5\u6642\u9593\u3060\u3063\u305f\u3089\u4f1a\u8a71\u3059\u308b\n    bez.moveRnd()\n    subprocess.call('amixer cset numid=1 '+vol+'% -q', shell=True) # \u30b9\u30d4\u30fc\u30ab\u30fc\u97f3\u91cf\n    subprocess.call(\"sh \"+ttsFile+\" \"+data[ansNum][1], shell=True)\n    bez.stop()\n  else:           # \u6d3b\u52d5\u6642\u9593\u5916\u306f\u4f1a\u8a71\u3057\u306a\u3044\n    subprocess.call('amixer cset numid=1 60% -q', shell=True)      # \u30b9\u30d4\u30fc\u30ab\u30fc\u97f3\u91cf\n    subprocess.call(\"sh \"+ttsFile+\" \"+\"\u6d3b\u52d5\u6642\u9593\u5916\u3067\u3059\", shell=True)\n    sleep (5)\n    subprocess.call('amixer cset numid=1 '+vol+'% -q', shell=True) # \u30b9\u30d4\u30fc\u30ab\u30fc\u97f3\u91cf\n  # subprocess.call('sudo amixer -q sset Mic '+mic+' -c 0', shell=True)  # \u30de\u30a4\u30af\u611f\u5ea6\u3092\u5143\u306b\u623b\u3059\n\ndef socket_buffer_clear():\n  while True:\n    rlist, _, _ = select.select([client], [], [], 1)\n    if len(rlist) &gt; 0:\n      dummy_buffer = client.recv(bufferSize)\n    else:\n      break\n\ndef debug_message(message):\n  t = datetime.now()\n  message = str(t.minute)+\":\"+str(t.second)+\":\"+message\n  print message\n#  writeFile(message)\n#  sys.stdout.write(message)\n#\u3000pass\n\ndef writeFile(text):                # \u30c7\u30d0\u30c3\u30b0\u30d5\u30a1\u30a4\u30eb\u51fa\u529b\u6a5f\u80fd\n  f = open (debugFile,'r')\n  textBefore = \"\"\n  for row in f:\n    textBefore = textBefore + row\n  f.close()\n  f = open (debugFile,'w')\n  f.write(textBefore + text + \"\\n\")\n  f.close()\n\n# \u30b5\u30fc\u30dc\u306e\u521d\u671f\u5316\nbez = bezelie.Control() # \u3079\u30bc\u30ea\u30fc\u64cd\u4f5c\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u306e\u751f\u6210\nbez.moveCenter()        # \u30b5\u30fc\u30dc\u306e\u56de\u8ee2\u4f4d\u7f6e\u3092\u30c8\u30ea\u30e0\u5024\u306b\u5408\u308f\u305b\u308b\nclient = socket.socket(socket.AF_INET, socket.SOCK_STREAM)\n\n# \u30e1\u30a4\u30f3\u30eb\u30fc\u30d7\ndef main():\n  t=threading.Timer(10,alarm)\n  t.setDaemon(True)\n  t.start()\n  bez.moveAct('happy')\n  subprocess.call(\"sh \"+ttsFile+\" \"+u\"\u3053\u3093\u306b\u3061\u306f\"+user, shell=True)\n  subprocess.call(\"sh \"+ttsFile+\" \"+u\"\u307c\u304f\"+name, shell=True)\n  bez.stop()\n  # subprocess.call('sh exec_camera.sh', shell=True)            # \u30ab\u30e1\u30e9\u306e\u6620\u50cf\u3092\u30c7\u30a3\u30b9\u30d7\u30ec\u30a4\u306b\u8868\u793a\n  sleep (0.5)\n  # TCP\u30af\u30e9\u30a4\u30a2\u30f3\u30c8\u3092\u4f5c\u6210\u3057Julius\u30b5\u30fc\u30d0\u30fc\u306b\u63a5\u7d9a\u3059\u308b\n  enabled_julius = False\n  for count in range(5):\n    try:\n      client.connect(('localhost', 10500))\n      enabled_julius = True\n      break\n    except socket.error, e:\n      print 'failed socket connect. retry'\n      sleep (1)\n  if enabled_julius == False:\n    print 'Julius\u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093\u3067\u3057\u305f'\n    sys.exit(1)\n  data = \"\"\n  socket_buffer_clear()\n  try:\n    while True:\n      if \"&lt;\/RECOGOUT&gt;\\n.\" in data:  # RECOGOUT\u30c4\u30ea\u30fc\u306e\u6700\u7d42\u884c\u3092\u898b\u3064\u3051\u305f\u3089\u4ee5\u4e0b\u306e\u51e6\u7406\u3092\u884c\u3046\n        data = re.search(r'WORD\\S+', data)                          # data\u304b\u3089WORD\\s\u3067\u59cb\u307e\u308b\u884c\u3092\u62bd\u51fa\n        keyWord = data.group().replace(\"WORD=\",\"\").replace(\"\\\"\",\"\") # data\u304b\u3089\u30ad\u30fc\u30ef\u30fc\u30c9\u4ee5\u5916\u3092\u524a\u9664\n        replyMessage(keyWord)\n        socket_buffer_clear()\n        data = \"\"  # \u8a8d\u8b58\u7d42\u4e86\u3057\u305f\u306e\u3067\u30c7\u30fc\u30bf\u3092\u30ea\u30bb\u30c3\u30c8\u3059\u308b\n      else:\n        data = data + client.recv(bufferSize)  # Julius\u30b5\u30fc\u30d0\u30fc\u304b\u3089\u53d7\u4fe1\n  except KeyboardInterrupt: # CTRL+C\u3067\u7d42\u4e86\n    debug_message(' \u7d42\u4e86\u3057\u307e\u3057\u305f')\n    client.close()\n    bez.moveCenter()\n    bez.stop()\n    sys.exit(0)\n\nif __name__ == \"__main__\":\n  main()\n  sys.exit(0)<\/pre>\n<p style=\"padding-left: 30px;\">\u30fbthreading\u30e2\u30b8\u30e5\u30fc\u30eb\u306f\u30a2\u30e9\u30fc\u30e0\u306e\u6642\u9593\u51e6\u7406\u306b\u4f7f\u3044\u307e\u3059\u3002<br \/>\n\u30fbre\u306f\u6b63\u5f15\u304d\u8868\u73fe\u3092\u4f7f\u3046\u305f\u3081\u306e\u30e2\u30b8\u30e5\u30fc\u30eb\u3067\u3059\u3002<\/p>\n<h5>\u521d\u671f\u8a2d\u5b9a<\/h5>\n<pre class=\"height:200 lang:python range:21-41 decode:true\" title=\"demo_chat1.py\">#!\/usr\/bin\/python\n# -*- coding: utf-8 -*-\n# \u97f3\u58f0\u5bfe\u8a71\u30c7\u30e2\n# for Bezelie Edgar\n# for Raspberry Pi\n# by Jun Toyoda (Team Bezelie)\n# from Aug15th2017\n\nfrom datetime import datetime      # \u73fe\u5728\u6642\u523b\u53d6\u5f97\nfrom random import randint         # \u4e71\u6570\u306e\u767a\u751f\nfrom time import sleep             # \u30a6\u30a7\u30a4\u30c8\u51e6\u7406\nimport subprocess                  # \u5916\u90e8\u30d7\u30ed\u30bb\u30b9\u3092\u5b9f\u884c\u3059\u308b\u30e2\u30b8\u30e5\u30fc\u30eb\nimport threading                   # \u30de\u30eb\u30c1\u30b9\u30ec\u30c3\u30c9\u51e6\u7406\nimport socket                      # \u30bd\u30b1\u30c3\u30c8\u901a\u4fe1\u30e2\u30b8\u30e5\u30fc\u30eb\nimport select                      # I\/O\u51e6\u7406\u5b8c\u4e86\u5f85\u6a5f\u30e2\u30b8\u30e5\u30fc\u30eb\nimport json                        # json\u30d5\u30a1\u30a4\u30eb\u3092\u6271\u3046\u30e2\u30b8\u30e5\u30fc\u30eb\nimport csv                         # CSV\u30d5\u30a1\u30a4\u30eb\u3092\u6271\u3046\u30e2\u30b8\u30e5\u30fc\u30eb\nimport sys                         # python\u7d42\u4e86sys.exit()\u306e\u305f\u3081\u306b\u5fc5\u8981\nimport re                          # \u6b63\u898f\u8868\u73fe\u30e2\u30b8\u30e5\u30fc\u30eb\nimport bezelie                     # \u3079\u30bc\u30ea\u30fc\u5c02\u7528\u30b5\u30fc\u30dc\u5236\u5fa1\u30e2\u30b8\u30e5\u30fc\u30eb\n\ncsvFile   = \"\/home\/pi\/bezelie\/chatDialog.csv\"          # \u5bfe\u8a71\u30ea\u30b9\u30c8\njsonFile  = \"\/home\/pi\/bezelie\/edgar\/data_chat.json\"    # \u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\nttsFile   = \"\/home\/pi\/bezelie\/edgar\/exec_openJTalk.sh\" # \u97f3\u58f0\u5408\u6210\ndebugFile = \"\/home\/pi\/bezelie\/debug.txt\"               # debug\u7528\n\n# \u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\u306e\u8aad\u307f\u8fbc\u307f\nf = open (jsonFile,'r')\njDict = json.load(f)\nname = jDict['data0'][0]['name']       # \u3079\u30bc\u30ea\u30fc\u306e\u5225\u540d\u3002\nuser = jDict['data0'][0]['user']       # \u30e6\u30fc\u30b6\u30fc\u306e\u30cb\u30c3\u30af\u30cd\u30fc\u30e0\u3002\nvol = jDict['data0'][0]['vol']         # \u30b9\u30d4\u30fc\u30ab\u30fc\u97f3\u91cf\u3002\nsubprocess.call('amixer cset numid=1 '+vol+'% -q', shell=True)      # \u30b9\u30d4\u30fc\u30ab\u30fc\u97f3\u91cf\n# mic = jDict['data0'][0]['mic']         # \u30de\u30a4\u30af\u611f\u5ea6\u3002\nmic = \"60\"                               # \u30de\u30a4\u30af\u611f\u5ea6\u3002\nsubprocess.call('sudo amixer sset Mic '+mic+' -c 0 -q', shell=True) # \u30de\u30a4\u30af\u611f\u5ea6\u8a2d\u5b9a\n\n# \u5909\u6570\u306e\u521d\u671f\u5316\nmuteTime = 1        # \u97f3\u58f0\u5165\u529b\u3092\u7121\u8996\u3059\u308b\u6642\u9593\nbufferSize = 256    # \u53d7\u4fe1\u3059\u308b\u30c7\u30fc\u30bf\u306e\u6700\u5927\u30d0\u30a4\u30c8\u3002\uff12\u306e\u500d\u6570\u304c\u671b\u307e\u3057\u3044\u3002\n\n# \u95a2\u6570\ndef timeCheck(): # \u6d3b\u52d5\u6642\u9593\u5185\u304b\u3069\u3046\u304b\u306e\u30c1\u30a7\u30c3\u30af\n  f = open (jsonFile,'r')\n  jDict = json.load(f)\n  awake1Start = jDict['data1'][0]['awake1Start']\n  awake1End = jDict['data1'][0]['awake1End']\n  awake2Start = jDict['data1'][0]['awake2Start']\n  awake2End  = jDict['data1'][0]['awake2End']\n  t = datetime.now()\n  if   int(t.hour) &gt;  int(awake1Start[0:2]) and int(t.hour) &lt;    int(awake1End[0:2]):\n    flag = True\n  elif int(t.hour) == int(awake1Start[0:2]) and int(t.minute) &gt;= int(awake1Start[3:5]):\n    flag = True\n  elif int(t.hour) == int(awake1End[0:2])   and int(t.minute) &lt;= int(awake1End[3:5]):\n    flag = True\n  elif int(t.hour) &gt;  int(awake2Start[0:2]) and int(t.hour) &lt;    int(awake2End[0:2]):\n    flag = True\n  elif int(t.hour) == int(awake2Start[0:2]) and int(t.minute) &gt;= int(awake2Start[3:5]):\n    flag = True\n  elif int(t.hour) == int(awake2End[0:2])   and int(t.minute) &lt;= int(awake2End[3:5]):\n    flag = True\n  else:\n    flag = False # It is not Active Time\n  return flag\n\ndef alarm():\n  f = open (jsonFile,'r')\n  jDict = json.load(f)\n  alarmOn = jDict['data1'][0]['alarmOn']\n  alarmTime = jDict['data1'][0]['alarmTime']\n  alarmKind = jDict['data1'][0]['alarmKind']\n  now = datetime.now()\n  if int(now.hour) == int(alarmTime[0:2]) and int(now.minute) == int(alarmTime[3:5]):\n    if alarmOn == \"true\":\n      # subprocess.call('sudo amixer -q sset Mic 0 -c 0', shell=True) \n      if alarmKind == 'mild':\n        bez.moveAct('happy')\n        subprocess.call(\"sh \"+ttsFile+\" \"+\"\u671d\u3067\u3059\u3088\", shell=True)\n        bez.stop()\n      else:\n        bez.moveAct('happy')\n        subprocess.call(\"sh \"+ttsFile+\" \"+\"\u671d\u3060\u3088\u8d77\u304d\u3066\u8d77\u304d\u3066\u8d77\u304d\u3066\u30fc\", shell=True)\n        bez.stop()\n      sleep (muteTime)\n      # subprocess.call('sudo amixer -q sset Mic '+mic+' -c 0', shell=True)\n  t=threading.Timer(20,alarm) # \uff4e\u79d2\u5f8c\u306b\u307e\u305f\u30b9\u30ec\u30c3\u30c9\u3092\u8d77\u52d5\u3059\u308b\n  t.setDaemon(True)           # \u30e1\u30a4\u30f3\u30b9\u30ec\u30c3\u30c9\u304c\u7d42\u4e86\u3057\u305f\u3089\u7d42\u4e86\u3055\u305b\u308b\n  t.start()\n\ndef replyMessage(keyWord):        # \u5bfe\u8a71\n  data = []                       # \u5bfe\u8a71\u30d5\u30a1\u30a4\u30eb\uff08csv\uff09\u3092\u5909\u6570data\u306b\u8aad\u307f\u8fbc\u3080\n  with open(csvFile, 'rb') as f:  # csvFile\u3092\u30aa\u30fc\u30d7\u30f3\n    for i in csv.reader(f):       # \u30d5\u30a1\u30a4\u30eb\u304b\u3089\uff11\u884c\u305a\u3064i\u306b\u8aad\u307f\u8fbc\u3080\n      data.append(i)              # data\u306b\u8ffd\u52a0\n\n  data1 = []                      # data\u304b\u3089\u8cea\u554f\u5185\u5bb9\u304c\u30ad\u30fc\u30ef\u30fc\u30c9\u306b\u4e00\u81f4\u3057\u3066\u3044\u308b\u884c\u3092data1\u3068\u3057\u3066\u629c\u304d\u51fa\u3059\n  for index,i in enumerate(data): # index=\u9023\u756a\n    if unicode(i[0], 'utf-8')==keyWord:  # i[0]\u306fstr\u306a\u306e\u3067utf-8\u306b\u5909\u63db\u3057\u3066\u6bd4\u8f03\u3059\u308b\u5fc5\u8981\u304c\u3042\u308b\n      j = randint(1,100)          # \uff11\u304b\u3089\uff11\uff10\uff10\u307e\u3067\u306e\u4e71\u6570\u3092\u767a\u751f\u3055\u305b\u308b\n      data1.append(i+[j]+[index]) # data1=\u8cea\u554f\u5185\u5bb9,\u8fd4\u7b54,\u4e71\u6570,\u9023\u756a\u306e\u30ea\u30b9\u30c8\n\n  if data1 == []:                 # data1\u304c\u7a7a\u3063\u307d\u3060\u3063\u305f\u3089\u30e9\u30f3\u30c0\u30e0\u3067\u8fd4\u3059\n    for index,i in enumerate(data):\n      j = randint(1,100)\n      data1.append(i+[j]+[index])\n\n  maxNum = 0                      # \u8907\u6570\u306e\u5019\u88dc\u304b\u3089\u30e9\u30f3\u30c0\u30e0\u3067\u9078\u51fa\u3002data1\u304b\u3089\u6b04\u6570\u5024\u304c\u6700\u5927\u306a\u3082\u306e\u3092\u9078\u3076\n  for i in data1:\n    if i[2] &gt; maxNum:\n      maxNum = i[2]\n      ansNum = i[3]\n\n  # \u767a\u8a71\n  # subprocess.call('sudo amixer -q sset Mic 0 -c 0', shell=True)  # \u81ea\u5206\u306e\u58f0\u3092\u8a8d\u8b58\u3057\u3066\u3057\u307e\u308f\u306a\u3044\u3088\u3046\u306b\u30de\u30a4\u30af\u3092\u5207\u308b\n  # \u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\u306e\u8aad\u307f\u8fbc\u307f\n  f = open (jsonFile,'r')\n  jDict = json.load(f)\n  vol = jDict['data0'][0]['vol']         # \u30b9\u30d4\u30fc\u30ab\u30fc\u30dc\u30ea\u30e5\u30fc\u30e0\n  # mic = jDict['data0'][0]['mic']         # \u30de\u30a4\u30af\u611f\u5ea6\n\n  if timeCheck(): # \u6d3b\u52d5\u6642\u9593\u3060\u3063\u305f\u3089\u4f1a\u8a71\u3059\u308b\n    bez.moveRnd()\n    subprocess.call('amixer cset numid=1 '+vol+'% -q', shell=True) # \u30b9\u30d4\u30fc\u30ab\u30fc\u97f3\u91cf\n    subprocess.call(\"sh \"+ttsFile+\" \"+data[ansNum][1], shell=True)\n    bez.stop()\n  else:           # \u6d3b\u52d5\u6642\u9593\u5916\u306f\u4f1a\u8a71\u3057\u306a\u3044\n    subprocess.call('amixer cset numid=1 60% -q', shell=True)      # \u30b9\u30d4\u30fc\u30ab\u30fc\u97f3\u91cf\n    subprocess.call(\"sh \"+ttsFile+\" \"+\"\u6d3b\u52d5\u6642\u9593\u5916\u3067\u3059\", shell=True)\n    sleep (5)\n    subprocess.call('amixer cset numid=1 '+vol+'% -q', shell=True) # \u30b9\u30d4\u30fc\u30ab\u30fc\u97f3\u91cf\n  # subprocess.call('sudo amixer -q sset Mic '+mic+' -c 0', shell=True)  # \u30de\u30a4\u30af\u611f\u5ea6\u3092\u5143\u306b\u623b\u3059\n\ndef socket_buffer_clear():\n  while True:\n    rlist, _, _ = select.select([client], [], [], 1)\n    if len(rlist) &gt; 0:\n      dummy_buffer = client.recv(bufferSize)\n    else:\n      break\n\ndef debug_message(message):\n  t = datetime.now()\n  message = str(t.minute)+\":\"+str(t.second)+\":\"+message\n  print message\n#  writeFile(message)\n#  sys.stdout.write(message)\n#\u3000pass\n\ndef writeFile(text):                # \u30c7\u30d0\u30c3\u30b0\u30d5\u30a1\u30a4\u30eb\u51fa\u529b\u6a5f\u80fd\n  f = open (debugFile,'r')\n  textBefore = \"\"\n  for row in f:\n    textBefore = textBefore + row\n  f.close()\n  f = open (debugFile,'w')\n  f.write(textBefore + text + \"\\n\")\n  f.close()\n\n# \u30b5\u30fc\u30dc\u306e\u521d\u671f\u5316\nbez = bezelie.Control() # \u3079\u30bc\u30ea\u30fc\u64cd\u4f5c\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u306e\u751f\u6210\nbez.moveCenter()        # \u30b5\u30fc\u30dc\u306e\u56de\u8ee2\u4f4d\u7f6e\u3092\u30c8\u30ea\u30e0\u5024\u306b\u5408\u308f\u305b\u308b\nclient = socket.socket(socket.AF_INET, socket.SOCK_STREAM)\n\n# \u30e1\u30a4\u30f3\u30eb\u30fc\u30d7\ndef main():\n  t=threading.Timer(10,alarm)\n  t.setDaemon(True)\n  t.start()\n  bez.moveAct('happy')\n  subprocess.call(\"sh \"+ttsFile+\" \"+u\"\u3053\u3093\u306b\u3061\u306f\"+user, shell=True)\n  subprocess.call(\"sh \"+ttsFile+\" \"+u\"\u307c\u304f\"+name, shell=True)\n  bez.stop()\n  # subprocess.call('sh exec_camera.sh', shell=True)            # \u30ab\u30e1\u30e9\u306e\u6620\u50cf\u3092\u30c7\u30a3\u30b9\u30d7\u30ec\u30a4\u306b\u8868\u793a\n  sleep (0.5)\n  # TCP\u30af\u30e9\u30a4\u30a2\u30f3\u30c8\u3092\u4f5c\u6210\u3057Julius\u30b5\u30fc\u30d0\u30fc\u306b\u63a5\u7d9a\u3059\u308b\n  enabled_julius = False\n  for count in range(5):\n    try:\n      client.connect(('localhost', 10500))\n      enabled_julius = True\n      break\n    except socket.error, e:\n      print 'failed socket connect. retry'\n      sleep (1)\n  if enabled_julius == False:\n    print 'Julius\u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093\u3067\u3057\u305f'\n    sys.exit(1)\n  data = \"\"\n  socket_buffer_clear()\n  try:\n    while True:\n      if \"&lt;\/RECOGOUT&gt;\\n.\" in data:  # RECOGOUT\u30c4\u30ea\u30fc\u306e\u6700\u7d42\u884c\u3092\u898b\u3064\u3051\u305f\u3089\u4ee5\u4e0b\u306e\u51e6\u7406\u3092\u884c\u3046\n        data = re.search(r'WORD\\S+', data)                          # data\u304b\u3089WORD\\s\u3067\u59cb\u307e\u308b\u884c\u3092\u62bd\u51fa\n        keyWord = data.group().replace(\"WORD=\",\"\").replace(\"\\\"\",\"\") # data\u304b\u3089\u30ad\u30fc\u30ef\u30fc\u30c9\u4ee5\u5916\u3092\u524a\u9664\n        replyMessage(keyWord)\n        socket_buffer_clear()\n        data = \"\"  # \u8a8d\u8b58\u7d42\u4e86\u3057\u305f\u306e\u3067\u30c7\u30fc\u30bf\u3092\u30ea\u30bb\u30c3\u30c8\u3059\u308b\n      else:\n        data = data + client.recv(bufferSize)  # Julius\u30b5\u30fc\u30d0\u30fc\u304b\u3089\u53d7\u4fe1\n  except KeyboardInterrupt: # CTRL+C\u3067\u7d42\u4e86\n    debug_message(' \u7d42\u4e86\u3057\u307e\u3057\u305f')\n    client.close()\n    bez.moveCenter()\n    bez.stop()\n    sys.exit(0)\n\nif __name__ == \"__main__\":\n  main()\n  sys.exit(0)<\/pre>\n<p style=\"padding-left: 30px;\">\u30fbdata_chat.json\u3092\u8aad\u307f\u8fbc\u307f\u3001\u30e6\u30fc\u30b6\u30fc\u540d\u3001\u30ed\u30dc\u30c3\u30c8\u540d\u3001\u30b9\u30d4\u30fc\u30ab\u30fc\u30dc\u30ea\u30e5\u30fc\u30e0\u306a\u3069\u3092\u8aad\u307f\u8fbc\u3093\u3067\u3044\u307e\u3059\u3002<br \/>\n\u30fb\u30de\u30a4\u30af\u611f\u5ea6\u3092\u8aad\u307f\u8fbc\u3080\u51e6\u7406\u304c\u30b3\u30e1\u30f3\u30c8\u30a2\u30a6\u30c8\u3055\u308c\u3066\u3044\u308b\u306e\u306f\u3001\u30ad\u30c3\u30c8\u4ed8\u5c5e\u306e\u30de\u30a4\u30af\u306b\u611f\u5ea6\u8abf\u6574\u6a5f\u80fd\u304c\u7121\u3044\u304b\u3089\u3067\u3059\u3002<\/p>\n<h5>\u95a2\u6570\u5b9a\u7fa9<\/h5>\n<pre class=\"height:200 lang:python range:41-90 decode:true\" title=\"demo_chat1.py\">#!\/usr\/bin\/python\n# -*- coding: utf-8 -*-\n# \u97f3\u58f0\u5bfe\u8a71\u30c7\u30e2\n# for Bezelie Edgar\n# for Raspberry Pi\n# by Jun Toyoda (Team Bezelie)\n# from Aug15th2017\n\nfrom datetime import datetime      # \u73fe\u5728\u6642\u523b\u53d6\u5f97\nfrom random import randint         # \u4e71\u6570\u306e\u767a\u751f\nfrom time import sleep             # \u30a6\u30a7\u30a4\u30c8\u51e6\u7406\nimport subprocess                  # \u5916\u90e8\u30d7\u30ed\u30bb\u30b9\u3092\u5b9f\u884c\u3059\u308b\u30e2\u30b8\u30e5\u30fc\u30eb\nimport threading                   # \u30de\u30eb\u30c1\u30b9\u30ec\u30c3\u30c9\u51e6\u7406\nimport socket                      # \u30bd\u30b1\u30c3\u30c8\u901a\u4fe1\u30e2\u30b8\u30e5\u30fc\u30eb\nimport select                      # I\/O\u51e6\u7406\u5b8c\u4e86\u5f85\u6a5f\u30e2\u30b8\u30e5\u30fc\u30eb\nimport json                        # json\u30d5\u30a1\u30a4\u30eb\u3092\u6271\u3046\u30e2\u30b8\u30e5\u30fc\u30eb\nimport csv                         # CSV\u30d5\u30a1\u30a4\u30eb\u3092\u6271\u3046\u30e2\u30b8\u30e5\u30fc\u30eb\nimport sys                         # python\u7d42\u4e86sys.exit()\u306e\u305f\u3081\u306b\u5fc5\u8981\nimport re                          # \u6b63\u898f\u8868\u73fe\u30e2\u30b8\u30e5\u30fc\u30eb\nimport bezelie                     # \u3079\u30bc\u30ea\u30fc\u5c02\u7528\u30b5\u30fc\u30dc\u5236\u5fa1\u30e2\u30b8\u30e5\u30fc\u30eb\n\ncsvFile   = \"\/home\/pi\/bezelie\/chatDialog.csv\"          # \u5bfe\u8a71\u30ea\u30b9\u30c8\njsonFile  = \"\/home\/pi\/bezelie\/edgar\/data_chat.json\"    # \u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\nttsFile   = \"\/home\/pi\/bezelie\/edgar\/exec_openJTalk.sh\" # \u97f3\u58f0\u5408\u6210\ndebugFile = \"\/home\/pi\/bezelie\/debug.txt\"               # debug\u7528\n\n# \u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\u306e\u8aad\u307f\u8fbc\u307f\nf = open (jsonFile,'r')\njDict = json.load(f)\nname = jDict['data0'][0]['name']       # \u3079\u30bc\u30ea\u30fc\u306e\u5225\u540d\u3002\nuser = jDict['data0'][0]['user']       # \u30e6\u30fc\u30b6\u30fc\u306e\u30cb\u30c3\u30af\u30cd\u30fc\u30e0\u3002\nvol = jDict['data0'][0]['vol']         # \u30b9\u30d4\u30fc\u30ab\u30fc\u97f3\u91cf\u3002\nsubprocess.call('amixer cset numid=1 '+vol+'% -q', shell=True)      # \u30b9\u30d4\u30fc\u30ab\u30fc\u97f3\u91cf\n# mic = jDict['data0'][0]['mic']         # \u30de\u30a4\u30af\u611f\u5ea6\u3002\nmic = \"60\"                               # \u30de\u30a4\u30af\u611f\u5ea6\u3002\nsubprocess.call('sudo amixer sset Mic '+mic+' -c 0 -q', shell=True) # \u30de\u30a4\u30af\u611f\u5ea6\u8a2d\u5b9a\n\n# \u5909\u6570\u306e\u521d\u671f\u5316\nmuteTime = 1        # \u97f3\u58f0\u5165\u529b\u3092\u7121\u8996\u3059\u308b\u6642\u9593\nbufferSize = 256    # \u53d7\u4fe1\u3059\u308b\u30c7\u30fc\u30bf\u306e\u6700\u5927\u30d0\u30a4\u30c8\u3002\uff12\u306e\u500d\u6570\u304c\u671b\u307e\u3057\u3044\u3002\n\n# \u95a2\u6570\ndef timeCheck(): # \u6d3b\u52d5\u6642\u9593\u5185\u304b\u3069\u3046\u304b\u306e\u30c1\u30a7\u30c3\u30af\n  f = open (jsonFile,'r')\n  jDict = json.load(f)\n  awake1Start = jDict['data1'][0]['awake1Start']\n  awake1End = jDict['data1'][0]['awake1End']\n  awake2Start = jDict['data1'][0]['awake2Start']\n  awake2End  = jDict['data1'][0]['awake2End']\n  t = datetime.now()\n  if   int(t.hour) &gt;  int(awake1Start[0:2]) and int(t.hour) &lt;    int(awake1End[0:2]):\n    flag = True\n  elif int(t.hour) == int(awake1Start[0:2]) and int(t.minute) &gt;= int(awake1Start[3:5]):\n    flag = True\n  elif int(t.hour) == int(awake1End[0:2])   and int(t.minute) &lt;= int(awake1End[3:5]):\n    flag = True\n  elif int(t.hour) &gt;  int(awake2Start[0:2]) and int(t.hour) &lt;    int(awake2End[0:2]):\n    flag = True\n  elif int(t.hour) == int(awake2Start[0:2]) and int(t.minute) &gt;= int(awake2Start[3:5]):\n    flag = True\n  elif int(t.hour) == int(awake2End[0:2])   and int(t.minute) &lt;= int(awake2End[3:5]):\n    flag = True\n  else:\n    flag = False # It is not Active Time\n  return flag\n\ndef alarm():\n  f = open (jsonFile,'r')\n  jDict = json.load(f)\n  alarmOn = jDict['data1'][0]['alarmOn']\n  alarmTime = jDict['data1'][0]['alarmTime']\n  alarmKind = jDict['data1'][0]['alarmKind']\n  now = datetime.now()\n  if int(now.hour) == int(alarmTime[0:2]) and int(now.minute) == int(alarmTime[3:5]):\n    if alarmOn == \"true\":\n      # subprocess.call('sudo amixer -q sset Mic 0 -c 0', shell=True) \n      if alarmKind == 'mild':\n        bez.moveAct('happy')\n        subprocess.call(\"sh \"+ttsFile+\" \"+\"\u671d\u3067\u3059\u3088\", shell=True)\n        bez.stop()\n      else:\n        bez.moveAct('happy')\n        subprocess.call(\"sh \"+ttsFile+\" \"+\"\u671d\u3060\u3088\u8d77\u304d\u3066\u8d77\u304d\u3066\u8d77\u304d\u3066\u30fc\", shell=True)\n        bez.stop()\n      sleep (muteTime)\n      # subprocess.call('sudo amixer -q sset Mic '+mic+' -c 0', shell=True)\n  t=threading.Timer(20,alarm) # \uff4e\u79d2\u5f8c\u306b\u307e\u305f\u30b9\u30ec\u30c3\u30c9\u3092\u8d77\u52d5\u3059\u308b\n  t.setDaemon(True)           # \u30e1\u30a4\u30f3\u30b9\u30ec\u30c3\u30c9\u304c\u7d42\u4e86\u3057\u305f\u3089\u7d42\u4e86\u3055\u305b\u308b\n  t.start()\n\ndef replyMessage(keyWord):        # \u5bfe\u8a71\n  data = []                       # \u5bfe\u8a71\u30d5\u30a1\u30a4\u30eb\uff08csv\uff09\u3092\u5909\u6570data\u306b\u8aad\u307f\u8fbc\u3080\n  with open(csvFile, 'rb') as f:  # csvFile\u3092\u30aa\u30fc\u30d7\u30f3\n    for i in csv.reader(f):       # \u30d5\u30a1\u30a4\u30eb\u304b\u3089\uff11\u884c\u305a\u3064i\u306b\u8aad\u307f\u8fbc\u3080\n      data.append(i)              # data\u306b\u8ffd\u52a0\n\n  data1 = []                      # data\u304b\u3089\u8cea\u554f\u5185\u5bb9\u304c\u30ad\u30fc\u30ef\u30fc\u30c9\u306b\u4e00\u81f4\u3057\u3066\u3044\u308b\u884c\u3092data1\u3068\u3057\u3066\u629c\u304d\u51fa\u3059\n  for index,i in enumerate(data): # index=\u9023\u756a\n    if unicode(i[0], 'utf-8')==keyWord:  # i[0]\u306fstr\u306a\u306e\u3067utf-8\u306b\u5909\u63db\u3057\u3066\u6bd4\u8f03\u3059\u308b\u5fc5\u8981\u304c\u3042\u308b\n      j = randint(1,100)          # \uff11\u304b\u3089\uff11\uff10\uff10\u307e\u3067\u306e\u4e71\u6570\u3092\u767a\u751f\u3055\u305b\u308b\n      data1.append(i+[j]+[index]) # data1=\u8cea\u554f\u5185\u5bb9,\u8fd4\u7b54,\u4e71\u6570,\u9023\u756a\u306e\u30ea\u30b9\u30c8\n\n  if data1 == []:                 # data1\u304c\u7a7a\u3063\u307d\u3060\u3063\u305f\u3089\u30e9\u30f3\u30c0\u30e0\u3067\u8fd4\u3059\n    for index,i in enumerate(data):\n      j = randint(1,100)\n      data1.append(i+[j]+[index])\n\n  maxNum = 0                      # \u8907\u6570\u306e\u5019\u88dc\u304b\u3089\u30e9\u30f3\u30c0\u30e0\u3067\u9078\u51fa\u3002data1\u304b\u3089\u6b04\u6570\u5024\u304c\u6700\u5927\u306a\u3082\u306e\u3092\u9078\u3076\n  for i in data1:\n    if i[2] &gt; maxNum:\n      maxNum = i[2]\n      ansNum = i[3]\n\n  # \u767a\u8a71\n  # subprocess.call('sudo amixer -q sset Mic 0 -c 0', shell=True)  # \u81ea\u5206\u306e\u58f0\u3092\u8a8d\u8b58\u3057\u3066\u3057\u307e\u308f\u306a\u3044\u3088\u3046\u306b\u30de\u30a4\u30af\u3092\u5207\u308b\n  # \u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\u306e\u8aad\u307f\u8fbc\u307f\n  f = open (jsonFile,'r')\n  jDict = json.load(f)\n  vol = jDict['data0'][0]['vol']         # \u30b9\u30d4\u30fc\u30ab\u30fc\u30dc\u30ea\u30e5\u30fc\u30e0\n  # mic = jDict['data0'][0]['mic']         # \u30de\u30a4\u30af\u611f\u5ea6\n\n  if timeCheck(): # \u6d3b\u52d5\u6642\u9593\u3060\u3063\u305f\u3089\u4f1a\u8a71\u3059\u308b\n    bez.moveRnd()\n    subprocess.call('amixer cset numid=1 '+vol+'% -q', shell=True) # \u30b9\u30d4\u30fc\u30ab\u30fc\u97f3\u91cf\n    subprocess.call(\"sh \"+ttsFile+\" \"+data[ansNum][1], shell=True)\n    bez.stop()\n  else:           # \u6d3b\u52d5\u6642\u9593\u5916\u306f\u4f1a\u8a71\u3057\u306a\u3044\n    subprocess.call('amixer cset numid=1 60% -q', shell=True)      # \u30b9\u30d4\u30fc\u30ab\u30fc\u97f3\u91cf\n    subprocess.call(\"sh \"+ttsFile+\" \"+\"\u6d3b\u52d5\u6642\u9593\u5916\u3067\u3059\", shell=True)\n    sleep (5)\n    subprocess.call('amixer cset numid=1 '+vol+'% -q', shell=True) # \u30b9\u30d4\u30fc\u30ab\u30fc\u97f3\u91cf\n  # subprocess.call('sudo amixer -q sset Mic '+mic+' -c 0', shell=True)  # \u30de\u30a4\u30af\u611f\u5ea6\u3092\u5143\u306b\u623b\u3059\n\ndef socket_buffer_clear():\n  while True:\n    rlist, _, _ = select.select([client], [], [], 1)\n    if len(rlist) &gt; 0:\n      dummy_buffer = client.recv(bufferSize)\n    else:\n      break\n\ndef debug_message(message):\n  t = datetime.now()\n  message = str(t.minute)+\":\"+str(t.second)+\":\"+message\n  print message\n#  writeFile(message)\n#  sys.stdout.write(message)\n#\u3000pass\n\ndef writeFile(text):                # \u30c7\u30d0\u30c3\u30b0\u30d5\u30a1\u30a4\u30eb\u51fa\u529b\u6a5f\u80fd\n  f = open (debugFile,'r')\n  textBefore = \"\"\n  for row in f:\n    textBefore = textBefore + row\n  f.close()\n  f = open (debugFile,'w')\n  f.write(textBefore + text + \"\\n\")\n  f.close()\n\n# \u30b5\u30fc\u30dc\u306e\u521d\u671f\u5316\nbez = bezelie.Control() # \u3079\u30bc\u30ea\u30fc\u64cd\u4f5c\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u306e\u751f\u6210\nbez.moveCenter()        # \u30b5\u30fc\u30dc\u306e\u56de\u8ee2\u4f4d\u7f6e\u3092\u30c8\u30ea\u30e0\u5024\u306b\u5408\u308f\u305b\u308b\nclient = socket.socket(socket.AF_INET, socket.SOCK_STREAM)\n\n# \u30e1\u30a4\u30f3\u30eb\u30fc\u30d7\ndef main():\n  t=threading.Timer(10,alarm)\n  t.setDaemon(True)\n  t.start()\n  bez.moveAct('happy')\n  subprocess.call(\"sh \"+ttsFile+\" \"+u\"\u3053\u3093\u306b\u3061\u306f\"+user, shell=True)\n  subprocess.call(\"sh \"+ttsFile+\" \"+u\"\u307c\u304f\"+name, shell=True)\n  bez.stop()\n  # subprocess.call('sh exec_camera.sh', shell=True)            # \u30ab\u30e1\u30e9\u306e\u6620\u50cf\u3092\u30c7\u30a3\u30b9\u30d7\u30ec\u30a4\u306b\u8868\u793a\n  sleep (0.5)\n  # TCP\u30af\u30e9\u30a4\u30a2\u30f3\u30c8\u3092\u4f5c\u6210\u3057Julius\u30b5\u30fc\u30d0\u30fc\u306b\u63a5\u7d9a\u3059\u308b\n  enabled_julius = False\n  for count in range(5):\n    try:\n      client.connect(('localhost', 10500))\n      enabled_julius = True\n      break\n    except socket.error, e:\n      print 'failed socket connect. retry'\n      sleep (1)\n  if enabled_julius == False:\n    print 'Julius\u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093\u3067\u3057\u305f'\n    sys.exit(1)\n  data = \"\"\n  socket_buffer_clear()\n  try:\n    while True:\n      if \"&lt;\/RECOGOUT&gt;\\n.\" in data:  # RECOGOUT\u30c4\u30ea\u30fc\u306e\u6700\u7d42\u884c\u3092\u898b\u3064\u3051\u305f\u3089\u4ee5\u4e0b\u306e\u51e6\u7406\u3092\u884c\u3046\n        data = re.search(r'WORD\\S+', data)                          # data\u304b\u3089WORD\\s\u3067\u59cb\u307e\u308b\u884c\u3092\u62bd\u51fa\n        keyWord = data.group().replace(\"WORD=\",\"\").replace(\"\\\"\",\"\") # data\u304b\u3089\u30ad\u30fc\u30ef\u30fc\u30c9\u4ee5\u5916\u3092\u524a\u9664\n        replyMessage(keyWord)\n        socket_buffer_clear()\n        data = \"\"  # \u8a8d\u8b58\u7d42\u4e86\u3057\u305f\u306e\u3067\u30c7\u30fc\u30bf\u3092\u30ea\u30bb\u30c3\u30c8\u3059\u308b\n      else:\n        data = data + client.recv(bufferSize)  # Julius\u30b5\u30fc\u30d0\u30fc\u304b\u3089\u53d7\u4fe1\n  except KeyboardInterrupt: # CTRL+C\u3067\u7d42\u4e86\n    debug_message(' \u7d42\u4e86\u3057\u307e\u3057\u305f')\n    client.close()\n    bez.moveCenter()\n    bez.stop()\n    sys.exit(0)\n\nif __name__ == \"__main__\":\n  main()\n  sys.exit(0)<\/pre>\n<p style=\"padding-left: 30px;\">\u30fbalarm()\u306f\u30e6\u30fc\u30b6\u30fc\u304c\u8a2d\u5b9a\u3057\u305f\u6642\u9593\u306b\u306a\u3063\u305f\u3089\u76ee\u899a\u307e\u3057\u306e\u30e1\u30c3\u30bb\u30fc\u30b8\u3092\u767a\u8a71\u3055\u305b\u308b\u95a2\u6570\u3067\u3059\u3002<\/p>\n<h5>\u8fd4\u7b54\u51e6\u7406<\/h5>\n<pre class=\"height:200 lang:python range:90-141 decode:true\" title=\"demo_chat1.py\">#!\/usr\/bin\/python\n# -*- coding: utf-8 -*-\n# \u97f3\u58f0\u5bfe\u8a71\u30c7\u30e2\n# for Bezelie Edgar\n# for Raspberry Pi\n# by Jun Toyoda (Team Bezelie)\n# from Aug15th2017\n\nfrom datetime import datetime      # \u73fe\u5728\u6642\u523b\u53d6\u5f97\nfrom random import randint         # \u4e71\u6570\u306e\u767a\u751f\nfrom time import sleep             # \u30a6\u30a7\u30a4\u30c8\u51e6\u7406\nimport subprocess                  # \u5916\u90e8\u30d7\u30ed\u30bb\u30b9\u3092\u5b9f\u884c\u3059\u308b\u30e2\u30b8\u30e5\u30fc\u30eb\nimport threading                   # \u30de\u30eb\u30c1\u30b9\u30ec\u30c3\u30c9\u51e6\u7406\nimport socket                      # \u30bd\u30b1\u30c3\u30c8\u901a\u4fe1\u30e2\u30b8\u30e5\u30fc\u30eb\nimport select                      # I\/O\u51e6\u7406\u5b8c\u4e86\u5f85\u6a5f\u30e2\u30b8\u30e5\u30fc\u30eb\nimport json                        # json\u30d5\u30a1\u30a4\u30eb\u3092\u6271\u3046\u30e2\u30b8\u30e5\u30fc\u30eb\nimport csv                         # CSV\u30d5\u30a1\u30a4\u30eb\u3092\u6271\u3046\u30e2\u30b8\u30e5\u30fc\u30eb\nimport sys                         # python\u7d42\u4e86sys.exit()\u306e\u305f\u3081\u306b\u5fc5\u8981\nimport re                          # \u6b63\u898f\u8868\u73fe\u30e2\u30b8\u30e5\u30fc\u30eb\nimport bezelie                     # \u3079\u30bc\u30ea\u30fc\u5c02\u7528\u30b5\u30fc\u30dc\u5236\u5fa1\u30e2\u30b8\u30e5\u30fc\u30eb\n\ncsvFile   = \"\/home\/pi\/bezelie\/chatDialog.csv\"          # \u5bfe\u8a71\u30ea\u30b9\u30c8\njsonFile  = \"\/home\/pi\/bezelie\/edgar\/data_chat.json\"    # \u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\nttsFile   = \"\/home\/pi\/bezelie\/edgar\/exec_openJTalk.sh\" # \u97f3\u58f0\u5408\u6210\ndebugFile = \"\/home\/pi\/bezelie\/debug.txt\"               # debug\u7528\n\n# \u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\u306e\u8aad\u307f\u8fbc\u307f\nf = open (jsonFile,'r')\njDict = json.load(f)\nname = jDict['data0'][0]['name']       # \u3079\u30bc\u30ea\u30fc\u306e\u5225\u540d\u3002\nuser = jDict['data0'][0]['user']       # \u30e6\u30fc\u30b6\u30fc\u306e\u30cb\u30c3\u30af\u30cd\u30fc\u30e0\u3002\nvol = jDict['data0'][0]['vol']         # \u30b9\u30d4\u30fc\u30ab\u30fc\u97f3\u91cf\u3002\nsubprocess.call('amixer cset numid=1 '+vol+'% -q', shell=True)      # \u30b9\u30d4\u30fc\u30ab\u30fc\u97f3\u91cf\n# mic = jDict['data0'][0]['mic']         # \u30de\u30a4\u30af\u611f\u5ea6\u3002\nmic = \"60\"                               # \u30de\u30a4\u30af\u611f\u5ea6\u3002\nsubprocess.call('sudo amixer sset Mic '+mic+' -c 0 -q', shell=True) # \u30de\u30a4\u30af\u611f\u5ea6\u8a2d\u5b9a\n\n# \u5909\u6570\u306e\u521d\u671f\u5316\nmuteTime = 1        # \u97f3\u58f0\u5165\u529b\u3092\u7121\u8996\u3059\u308b\u6642\u9593\nbufferSize = 256    # \u53d7\u4fe1\u3059\u308b\u30c7\u30fc\u30bf\u306e\u6700\u5927\u30d0\u30a4\u30c8\u3002\uff12\u306e\u500d\u6570\u304c\u671b\u307e\u3057\u3044\u3002\n\n# \u95a2\u6570\ndef timeCheck(): # \u6d3b\u52d5\u6642\u9593\u5185\u304b\u3069\u3046\u304b\u306e\u30c1\u30a7\u30c3\u30af\n  f = open (jsonFile,'r')\n  jDict = json.load(f)\n  awake1Start = jDict['data1'][0]['awake1Start']\n  awake1End = jDict['data1'][0]['awake1End']\n  awake2Start = jDict['data1'][0]['awake2Start']\n  awake2End  = jDict['data1'][0]['awake2End']\n  t = datetime.now()\n  if   int(t.hour) &gt;  int(awake1Start[0:2]) and int(t.hour) &lt;    int(awake1End[0:2]):\n    flag = True\n  elif int(t.hour) == int(awake1Start[0:2]) and int(t.minute) &gt;= int(awake1Start[3:5]):\n    flag = True\n  elif int(t.hour) == int(awake1End[0:2])   and int(t.minute) &lt;= int(awake1End[3:5]):\n    flag = True\n  elif int(t.hour) &gt;  int(awake2Start[0:2]) and int(t.hour) &lt;    int(awake2End[0:2]):\n    flag = True\n  elif int(t.hour) == int(awake2Start[0:2]) and int(t.minute) &gt;= int(awake2Start[3:5]):\n    flag = True\n  elif int(t.hour) == int(awake2End[0:2])   and int(t.minute) &lt;= int(awake2End[3:5]):\n    flag = True\n  else:\n    flag = False # It is not Active Time\n  return flag\n\ndef alarm():\n  f = open (jsonFile,'r')\n  jDict = json.load(f)\n  alarmOn = jDict['data1'][0]['alarmOn']\n  alarmTime = jDict['data1'][0]['alarmTime']\n  alarmKind = jDict['data1'][0]['alarmKind']\n  now = datetime.now()\n  if int(now.hour) == int(alarmTime[0:2]) and int(now.minute) == int(alarmTime[3:5]):\n    if alarmOn == \"true\":\n      # subprocess.call('sudo amixer -q sset Mic 0 -c 0', shell=True) \n      if alarmKind == 'mild':\n        bez.moveAct('happy')\n        subprocess.call(\"sh \"+ttsFile+\" \"+\"\u671d\u3067\u3059\u3088\", shell=True)\n        bez.stop()\n      else:\n        bez.moveAct('happy')\n        subprocess.call(\"sh \"+ttsFile+\" \"+\"\u671d\u3060\u3088\u8d77\u304d\u3066\u8d77\u304d\u3066\u8d77\u304d\u3066\u30fc\", shell=True)\n        bez.stop()\n      sleep (muteTime)\n      # subprocess.call('sudo amixer -q sset Mic '+mic+' -c 0', shell=True)\n  t=threading.Timer(20,alarm) # \uff4e\u79d2\u5f8c\u306b\u307e\u305f\u30b9\u30ec\u30c3\u30c9\u3092\u8d77\u52d5\u3059\u308b\n  t.setDaemon(True)           # \u30e1\u30a4\u30f3\u30b9\u30ec\u30c3\u30c9\u304c\u7d42\u4e86\u3057\u305f\u3089\u7d42\u4e86\u3055\u305b\u308b\n  t.start()\n\ndef replyMessage(keyWord):        # \u5bfe\u8a71\n  data = []                       # \u5bfe\u8a71\u30d5\u30a1\u30a4\u30eb\uff08csv\uff09\u3092\u5909\u6570data\u306b\u8aad\u307f\u8fbc\u3080\n  with open(csvFile, 'rb') as f:  # csvFile\u3092\u30aa\u30fc\u30d7\u30f3\n    for i in csv.reader(f):       # \u30d5\u30a1\u30a4\u30eb\u304b\u3089\uff11\u884c\u305a\u3064i\u306b\u8aad\u307f\u8fbc\u3080\n      data.append(i)              # data\u306b\u8ffd\u52a0\n\n  data1 = []                      # data\u304b\u3089\u8cea\u554f\u5185\u5bb9\u304c\u30ad\u30fc\u30ef\u30fc\u30c9\u306b\u4e00\u81f4\u3057\u3066\u3044\u308b\u884c\u3092data1\u3068\u3057\u3066\u629c\u304d\u51fa\u3059\n  for index,i in enumerate(data): # index=\u9023\u756a\n    if unicode(i[0], 'utf-8')==keyWord:  # i[0]\u306fstr\u306a\u306e\u3067utf-8\u306b\u5909\u63db\u3057\u3066\u6bd4\u8f03\u3059\u308b\u5fc5\u8981\u304c\u3042\u308b\n      j = randint(1,100)          # \uff11\u304b\u3089\uff11\uff10\uff10\u307e\u3067\u306e\u4e71\u6570\u3092\u767a\u751f\u3055\u305b\u308b\n      data1.append(i+[j]+[index]) # data1=\u8cea\u554f\u5185\u5bb9,\u8fd4\u7b54,\u4e71\u6570,\u9023\u756a\u306e\u30ea\u30b9\u30c8\n\n  if data1 == []:                 # data1\u304c\u7a7a\u3063\u307d\u3060\u3063\u305f\u3089\u30e9\u30f3\u30c0\u30e0\u3067\u8fd4\u3059\n    for index,i in enumerate(data):\n      j = randint(1,100)\n      data1.append(i+[j]+[index])\n\n  maxNum = 0                      # \u8907\u6570\u306e\u5019\u88dc\u304b\u3089\u30e9\u30f3\u30c0\u30e0\u3067\u9078\u51fa\u3002data1\u304b\u3089\u6b04\u6570\u5024\u304c\u6700\u5927\u306a\u3082\u306e\u3092\u9078\u3076\n  for i in data1:\n    if i[2] &gt; maxNum:\n      maxNum = i[2]\n      ansNum = i[3]\n\n  # \u767a\u8a71\n  # subprocess.call('sudo amixer -q sset Mic 0 -c 0', shell=True)  # \u81ea\u5206\u306e\u58f0\u3092\u8a8d\u8b58\u3057\u3066\u3057\u307e\u308f\u306a\u3044\u3088\u3046\u306b\u30de\u30a4\u30af\u3092\u5207\u308b\n  # \u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\u306e\u8aad\u307f\u8fbc\u307f\n  f = open (jsonFile,'r')\n  jDict = json.load(f)\n  vol = jDict['data0'][0]['vol']         # \u30b9\u30d4\u30fc\u30ab\u30fc\u30dc\u30ea\u30e5\u30fc\u30e0\n  # mic = jDict['data0'][0]['mic']         # \u30de\u30a4\u30af\u611f\u5ea6\n\n  if timeCheck(): # \u6d3b\u52d5\u6642\u9593\u3060\u3063\u305f\u3089\u4f1a\u8a71\u3059\u308b\n    bez.moveRnd()\n    subprocess.call('amixer cset numid=1 '+vol+'% -q', shell=True) # \u30b9\u30d4\u30fc\u30ab\u30fc\u97f3\u91cf\n    subprocess.call(\"sh \"+ttsFile+\" \"+data[ansNum][1], shell=True)\n    bez.stop()\n  else:           # \u6d3b\u52d5\u6642\u9593\u5916\u306f\u4f1a\u8a71\u3057\u306a\u3044\n    subprocess.call('amixer cset numid=1 60% -q', shell=True)      # \u30b9\u30d4\u30fc\u30ab\u30fc\u97f3\u91cf\n    subprocess.call(\"sh \"+ttsFile+\" \"+\"\u6d3b\u52d5\u6642\u9593\u5916\u3067\u3059\", shell=True)\n    sleep (5)\n    subprocess.call('amixer cset numid=1 '+vol+'% -q', shell=True) # \u30b9\u30d4\u30fc\u30ab\u30fc\u97f3\u91cf\n  # subprocess.call('sudo amixer -q sset Mic '+mic+' -c 0', shell=True)  # \u30de\u30a4\u30af\u611f\u5ea6\u3092\u5143\u306b\u623b\u3059\n\ndef socket_buffer_clear():\n  while True:\n    rlist, _, _ = select.select([client], [], [], 1)\n    if len(rlist) &gt; 0:\n      dummy_buffer = client.recv(bufferSize)\n    else:\n      break\n\ndef debug_message(message):\n  t = datetime.now()\n  message = str(t.minute)+\":\"+str(t.second)+\":\"+message\n  print message\n#  writeFile(message)\n#  sys.stdout.write(message)\n#\u3000pass\n\ndef writeFile(text):                # \u30c7\u30d0\u30c3\u30b0\u30d5\u30a1\u30a4\u30eb\u51fa\u529b\u6a5f\u80fd\n  f = open (debugFile,'r')\n  textBefore = \"\"\n  for row in f:\n    textBefore = textBefore + row\n  f.close()\n  f = open (debugFile,'w')\n  f.write(textBefore + text + \"\\n\")\n  f.close()\n\n# \u30b5\u30fc\u30dc\u306e\u521d\u671f\u5316\nbez = bezelie.Control() # \u3079\u30bc\u30ea\u30fc\u64cd\u4f5c\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u306e\u751f\u6210\nbez.moveCenter()        # \u30b5\u30fc\u30dc\u306e\u56de\u8ee2\u4f4d\u7f6e\u3092\u30c8\u30ea\u30e0\u5024\u306b\u5408\u308f\u305b\u308b\nclient = socket.socket(socket.AF_INET, socket.SOCK_STREAM)\n\n# \u30e1\u30a4\u30f3\u30eb\u30fc\u30d7\ndef main():\n  t=threading.Timer(10,alarm)\n  t.setDaemon(True)\n  t.start()\n  bez.moveAct('happy')\n  subprocess.call(\"sh \"+ttsFile+\" \"+u\"\u3053\u3093\u306b\u3061\u306f\"+user, shell=True)\n  subprocess.call(\"sh \"+ttsFile+\" \"+u\"\u307c\u304f\"+name, shell=True)\n  bez.stop()\n  # subprocess.call('sh exec_camera.sh', shell=True)            # \u30ab\u30e1\u30e9\u306e\u6620\u50cf\u3092\u30c7\u30a3\u30b9\u30d7\u30ec\u30a4\u306b\u8868\u793a\n  sleep (0.5)\n  # TCP\u30af\u30e9\u30a4\u30a2\u30f3\u30c8\u3092\u4f5c\u6210\u3057Julius\u30b5\u30fc\u30d0\u30fc\u306b\u63a5\u7d9a\u3059\u308b\n  enabled_julius = False\n  for count in range(5):\n    try:\n      client.connect(('localhost', 10500))\n      enabled_julius = True\n      break\n    except socket.error, e:\n      print 'failed socket connect. retry'\n      sleep (1)\n  if enabled_julius == False:\n    print 'Julius\u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093\u3067\u3057\u305f'\n    sys.exit(1)\n  data = \"\"\n  socket_buffer_clear()\n  try:\n    while True:\n      if \"&lt;\/RECOGOUT&gt;\\n.\" in data:  # RECOGOUT\u30c4\u30ea\u30fc\u306e\u6700\u7d42\u884c\u3092\u898b\u3064\u3051\u305f\u3089\u4ee5\u4e0b\u306e\u51e6\u7406\u3092\u884c\u3046\n        data = re.search(r'WORD\\S+', data)                          # data\u304b\u3089WORD\\s\u3067\u59cb\u307e\u308b\u884c\u3092\u62bd\u51fa\n        keyWord = data.group().replace(\"WORD=\",\"\").replace(\"\\\"\",\"\") # data\u304b\u3089\u30ad\u30fc\u30ef\u30fc\u30c9\u4ee5\u5916\u3092\u524a\u9664\n        replyMessage(keyWord)\n        socket_buffer_clear()\n        data = \"\"  # \u8a8d\u8b58\u7d42\u4e86\u3057\u305f\u306e\u3067\u30c7\u30fc\u30bf\u3092\u30ea\u30bb\u30c3\u30c8\u3059\u308b\n      else:\n        data = data + client.recv(bufferSize)  # Julius\u30b5\u30fc\u30d0\u30fc\u304b\u3089\u53d7\u4fe1\n  except KeyboardInterrupt: # CTRL+C\u3067\u7d42\u4e86\n    debug_message(' \u7d42\u4e86\u3057\u307e\u3057\u305f')\n    client.close()\n    bez.moveCenter()\n    bez.stop()\n    sys.exit(0)\n\nif __name__ == \"__main__\":\n  main()\n  sys.exit(0)<\/pre>\n<p style=\"padding-left: 30px;\">\u30fbreplayMessage()\u306fkeyword\u3092\u53d7\u3051\u53d6\u3063\u305f\u3089\u3001\u305d\u308c\u306b\u4e00\u81f4\u3059\u308b\u8fd4\u7b54\u5019\u88dc\u3092\u30ea\u30b9\u30c8\u30a2\u30c3\u30d7\u3057\u3001\u305d\u306e\u4e2d\u304b\u3089\u30e9\u30f3\u30c0\u30e0\u3067\u8fd4\u7b54\u3092\u9078\u3076\u95a2\u6570\u3067\u3059\u3002\u975e\u6d3b\u52d5\u6642\u9593\u306e\u5834\u5408\u306f\u3001\u30dc\u30ea\u30e5\u30fc\u30e0\u3092\u843d\u3068\u3057\u3066\u300c\u6d3b\u52d5\u6642\u9593\u5916\u3067\u3059\u300d\u3068\u558b\u3089\u305b\u3066\u3044\u307e\u3059\u3002<\/p>\n<h5>\u30c7\u30d0\u30c3\u30b0\u7528\u6a5f\u80fd<\/h5>\n<pre class=\"height:200 lang:python range:141-159 decode:true\" title=\"demo_chat1.py\">#!\/usr\/bin\/python\n# -*- coding: utf-8 -*-\n# \u97f3\u58f0\u5bfe\u8a71\u30c7\u30e2\n# for Bezelie Edgar\n# for Raspberry Pi\n# by Jun Toyoda (Team Bezelie)\n# from Aug15th2017\n\nfrom datetime import datetime      # \u73fe\u5728\u6642\u523b\u53d6\u5f97\nfrom random import randint         # \u4e71\u6570\u306e\u767a\u751f\nfrom time import sleep             # \u30a6\u30a7\u30a4\u30c8\u51e6\u7406\nimport subprocess                  # \u5916\u90e8\u30d7\u30ed\u30bb\u30b9\u3092\u5b9f\u884c\u3059\u308b\u30e2\u30b8\u30e5\u30fc\u30eb\nimport threading                   # \u30de\u30eb\u30c1\u30b9\u30ec\u30c3\u30c9\u51e6\u7406\nimport socket                      # \u30bd\u30b1\u30c3\u30c8\u901a\u4fe1\u30e2\u30b8\u30e5\u30fc\u30eb\nimport select                      # I\/O\u51e6\u7406\u5b8c\u4e86\u5f85\u6a5f\u30e2\u30b8\u30e5\u30fc\u30eb\nimport json                        # json\u30d5\u30a1\u30a4\u30eb\u3092\u6271\u3046\u30e2\u30b8\u30e5\u30fc\u30eb\nimport csv                         # CSV\u30d5\u30a1\u30a4\u30eb\u3092\u6271\u3046\u30e2\u30b8\u30e5\u30fc\u30eb\nimport sys                         # python\u7d42\u4e86sys.exit()\u306e\u305f\u3081\u306b\u5fc5\u8981\nimport re                          # \u6b63\u898f\u8868\u73fe\u30e2\u30b8\u30e5\u30fc\u30eb\nimport bezelie                     # \u3079\u30bc\u30ea\u30fc\u5c02\u7528\u30b5\u30fc\u30dc\u5236\u5fa1\u30e2\u30b8\u30e5\u30fc\u30eb\n\ncsvFile   = \"\/home\/pi\/bezelie\/chatDialog.csv\"          # \u5bfe\u8a71\u30ea\u30b9\u30c8\njsonFile  = \"\/home\/pi\/bezelie\/edgar\/data_chat.json\"    # \u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\nttsFile   = \"\/home\/pi\/bezelie\/edgar\/exec_openJTalk.sh\" # \u97f3\u58f0\u5408\u6210\ndebugFile = \"\/home\/pi\/bezelie\/debug.txt\"               # debug\u7528\n\n# \u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\u306e\u8aad\u307f\u8fbc\u307f\nf = open (jsonFile,'r')\njDict = json.load(f)\nname = jDict['data0'][0]['name']       # \u3079\u30bc\u30ea\u30fc\u306e\u5225\u540d\u3002\nuser = jDict['data0'][0]['user']       # \u30e6\u30fc\u30b6\u30fc\u306e\u30cb\u30c3\u30af\u30cd\u30fc\u30e0\u3002\nvol = jDict['data0'][0]['vol']         # \u30b9\u30d4\u30fc\u30ab\u30fc\u97f3\u91cf\u3002\nsubprocess.call('amixer cset numid=1 '+vol+'% -q', shell=True)      # \u30b9\u30d4\u30fc\u30ab\u30fc\u97f3\u91cf\n# mic = jDict['data0'][0]['mic']         # \u30de\u30a4\u30af\u611f\u5ea6\u3002\nmic = \"60\"                               # \u30de\u30a4\u30af\u611f\u5ea6\u3002\nsubprocess.call('sudo amixer sset Mic '+mic+' -c 0 -q', shell=True) # \u30de\u30a4\u30af\u611f\u5ea6\u8a2d\u5b9a\n\n# \u5909\u6570\u306e\u521d\u671f\u5316\nmuteTime = 1        # \u97f3\u58f0\u5165\u529b\u3092\u7121\u8996\u3059\u308b\u6642\u9593\nbufferSize = 256    # \u53d7\u4fe1\u3059\u308b\u30c7\u30fc\u30bf\u306e\u6700\u5927\u30d0\u30a4\u30c8\u3002\uff12\u306e\u500d\u6570\u304c\u671b\u307e\u3057\u3044\u3002\n\n# \u95a2\u6570\ndef timeCheck(): # \u6d3b\u52d5\u6642\u9593\u5185\u304b\u3069\u3046\u304b\u306e\u30c1\u30a7\u30c3\u30af\n  f = open (jsonFile,'r')\n  jDict = json.load(f)\n  awake1Start = jDict['data1'][0]['awake1Start']\n  awake1End = jDict['data1'][0]['awake1End']\n  awake2Start = jDict['data1'][0]['awake2Start']\n  awake2End  = jDict['data1'][0]['awake2End']\n  t = datetime.now()\n  if   int(t.hour) &gt;  int(awake1Start[0:2]) and int(t.hour) &lt;    int(awake1End[0:2]):\n    flag = True\n  elif int(t.hour) == int(awake1Start[0:2]) and int(t.minute) &gt;= int(awake1Start[3:5]):\n    flag = True\n  elif int(t.hour) == int(awake1End[0:2])   and int(t.minute) &lt;= int(awake1End[3:5]):\n    flag = True\n  elif int(t.hour) &gt;  int(awake2Start[0:2]) and int(t.hour) &lt;    int(awake2End[0:2]):\n    flag = True\n  elif int(t.hour) == int(awake2Start[0:2]) and int(t.minute) &gt;= int(awake2Start[3:5]):\n    flag = True\n  elif int(t.hour) == int(awake2End[0:2])   and int(t.minute) &lt;= int(awake2End[3:5]):\n    flag = True\n  else:\n    flag = False # It is not Active Time\n  return flag\n\ndef alarm():\n  f = open (jsonFile,'r')\n  jDict = json.load(f)\n  alarmOn = jDict['data1'][0]['alarmOn']\n  alarmTime = jDict['data1'][0]['alarmTime']\n  alarmKind = jDict['data1'][0]['alarmKind']\n  now = datetime.now()\n  if int(now.hour) == int(alarmTime[0:2]) and int(now.minute) == int(alarmTime[3:5]):\n    if alarmOn == \"true\":\n      # subprocess.call('sudo amixer -q sset Mic 0 -c 0', shell=True) \n      if alarmKind == 'mild':\n        bez.moveAct('happy')\n        subprocess.call(\"sh \"+ttsFile+\" \"+\"\u671d\u3067\u3059\u3088\", shell=True)\n        bez.stop()\n      else:\n        bez.moveAct('happy')\n        subprocess.call(\"sh \"+ttsFile+\" \"+\"\u671d\u3060\u3088\u8d77\u304d\u3066\u8d77\u304d\u3066\u8d77\u304d\u3066\u30fc\", shell=True)\n        bez.stop()\n      sleep (muteTime)\n      # subprocess.call('sudo amixer -q sset Mic '+mic+' -c 0', shell=True)\n  t=threading.Timer(20,alarm) # \uff4e\u79d2\u5f8c\u306b\u307e\u305f\u30b9\u30ec\u30c3\u30c9\u3092\u8d77\u52d5\u3059\u308b\n  t.setDaemon(True)           # \u30e1\u30a4\u30f3\u30b9\u30ec\u30c3\u30c9\u304c\u7d42\u4e86\u3057\u305f\u3089\u7d42\u4e86\u3055\u305b\u308b\n  t.start()\n\ndef replyMessage(keyWord):        # \u5bfe\u8a71\n  data = []                       # \u5bfe\u8a71\u30d5\u30a1\u30a4\u30eb\uff08csv\uff09\u3092\u5909\u6570data\u306b\u8aad\u307f\u8fbc\u3080\n  with open(csvFile, 'rb') as f:  # csvFile\u3092\u30aa\u30fc\u30d7\u30f3\n    for i in csv.reader(f):       # \u30d5\u30a1\u30a4\u30eb\u304b\u3089\uff11\u884c\u305a\u3064i\u306b\u8aad\u307f\u8fbc\u3080\n      data.append(i)              # data\u306b\u8ffd\u52a0\n\n  data1 = []                      # data\u304b\u3089\u8cea\u554f\u5185\u5bb9\u304c\u30ad\u30fc\u30ef\u30fc\u30c9\u306b\u4e00\u81f4\u3057\u3066\u3044\u308b\u884c\u3092data1\u3068\u3057\u3066\u629c\u304d\u51fa\u3059\n  for index,i in enumerate(data): # index=\u9023\u756a\n    if unicode(i[0], 'utf-8')==keyWord:  # i[0]\u306fstr\u306a\u306e\u3067utf-8\u306b\u5909\u63db\u3057\u3066\u6bd4\u8f03\u3059\u308b\u5fc5\u8981\u304c\u3042\u308b\n      j = randint(1,100)          # \uff11\u304b\u3089\uff11\uff10\uff10\u307e\u3067\u306e\u4e71\u6570\u3092\u767a\u751f\u3055\u305b\u308b\n      data1.append(i+[j]+[index]) # data1=\u8cea\u554f\u5185\u5bb9,\u8fd4\u7b54,\u4e71\u6570,\u9023\u756a\u306e\u30ea\u30b9\u30c8\n\n  if data1 == []:                 # data1\u304c\u7a7a\u3063\u307d\u3060\u3063\u305f\u3089\u30e9\u30f3\u30c0\u30e0\u3067\u8fd4\u3059\n    for index,i in enumerate(data):\n      j = randint(1,100)\n      data1.append(i+[j]+[index])\n\n  maxNum = 0                      # \u8907\u6570\u306e\u5019\u88dc\u304b\u3089\u30e9\u30f3\u30c0\u30e0\u3067\u9078\u51fa\u3002data1\u304b\u3089\u6b04\u6570\u5024\u304c\u6700\u5927\u306a\u3082\u306e\u3092\u9078\u3076\n  for i in data1:\n    if i[2] &gt; maxNum:\n      maxNum = i[2]\n      ansNum = i[3]\n\n  # \u767a\u8a71\n  # subprocess.call('sudo amixer -q sset Mic 0 -c 0', shell=True)  # \u81ea\u5206\u306e\u58f0\u3092\u8a8d\u8b58\u3057\u3066\u3057\u307e\u308f\u306a\u3044\u3088\u3046\u306b\u30de\u30a4\u30af\u3092\u5207\u308b\n  # \u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\u306e\u8aad\u307f\u8fbc\u307f\n  f = open (jsonFile,'r')\n  jDict = json.load(f)\n  vol = jDict['data0'][0]['vol']         # \u30b9\u30d4\u30fc\u30ab\u30fc\u30dc\u30ea\u30e5\u30fc\u30e0\n  # mic = jDict['data0'][0]['mic']         # \u30de\u30a4\u30af\u611f\u5ea6\n\n  if timeCheck(): # \u6d3b\u52d5\u6642\u9593\u3060\u3063\u305f\u3089\u4f1a\u8a71\u3059\u308b\n    bez.moveRnd()\n    subprocess.call('amixer cset numid=1 '+vol+'% -q', shell=True) # \u30b9\u30d4\u30fc\u30ab\u30fc\u97f3\u91cf\n    subprocess.call(\"sh \"+ttsFile+\" \"+data[ansNum][1], shell=True)\n    bez.stop()\n  else:           # \u6d3b\u52d5\u6642\u9593\u5916\u306f\u4f1a\u8a71\u3057\u306a\u3044\n    subprocess.call('amixer cset numid=1 60% -q', shell=True)      # \u30b9\u30d4\u30fc\u30ab\u30fc\u97f3\u91cf\n    subprocess.call(\"sh \"+ttsFile+\" \"+\"\u6d3b\u52d5\u6642\u9593\u5916\u3067\u3059\", shell=True)\n    sleep (5)\n    subprocess.call('amixer cset numid=1 '+vol+'% -q', shell=True) # \u30b9\u30d4\u30fc\u30ab\u30fc\u97f3\u91cf\n  # subprocess.call('sudo amixer -q sset Mic '+mic+' -c 0', shell=True)  # \u30de\u30a4\u30af\u611f\u5ea6\u3092\u5143\u306b\u623b\u3059\n\ndef socket_buffer_clear():\n  while True:\n    rlist, _, _ = select.select([client], [], [], 1)\n    if len(rlist) &gt; 0:\n      dummy_buffer = client.recv(bufferSize)\n    else:\n      break\n\ndef debug_message(message):\n  t = datetime.now()\n  message = str(t.minute)+\":\"+str(t.second)+\":\"+message\n  print message\n#  writeFile(message)\n#  sys.stdout.write(message)\n#\u3000pass\n\ndef writeFile(text):                # \u30c7\u30d0\u30c3\u30b0\u30d5\u30a1\u30a4\u30eb\u51fa\u529b\u6a5f\u80fd\n  f = open (debugFile,'r')\n  textBefore = \"\"\n  for row in f:\n    textBefore = textBefore + row\n  f.close()\n  f = open (debugFile,'w')\n  f.write(textBefore + text + \"\\n\")\n  f.close()\n\n# \u30b5\u30fc\u30dc\u306e\u521d\u671f\u5316\nbez = bezelie.Control() # \u3079\u30bc\u30ea\u30fc\u64cd\u4f5c\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u306e\u751f\u6210\nbez.moveCenter()        # \u30b5\u30fc\u30dc\u306e\u56de\u8ee2\u4f4d\u7f6e\u3092\u30c8\u30ea\u30e0\u5024\u306b\u5408\u308f\u305b\u308b\nclient = socket.socket(socket.AF_INET, socket.SOCK_STREAM)\n\n# \u30e1\u30a4\u30f3\u30eb\u30fc\u30d7\ndef main():\n  t=threading.Timer(10,alarm)\n  t.setDaemon(True)\n  t.start()\n  bez.moveAct('happy')\n  subprocess.call(\"sh \"+ttsFile+\" \"+u\"\u3053\u3093\u306b\u3061\u306f\"+user, shell=True)\n  subprocess.call(\"sh \"+ttsFile+\" \"+u\"\u307c\u304f\"+name, shell=True)\n  bez.stop()\n  # subprocess.call('sh exec_camera.sh', shell=True)            # \u30ab\u30e1\u30e9\u306e\u6620\u50cf\u3092\u30c7\u30a3\u30b9\u30d7\u30ec\u30a4\u306b\u8868\u793a\n  sleep (0.5)\n  # TCP\u30af\u30e9\u30a4\u30a2\u30f3\u30c8\u3092\u4f5c\u6210\u3057Julius\u30b5\u30fc\u30d0\u30fc\u306b\u63a5\u7d9a\u3059\u308b\n  enabled_julius = False\n  for count in range(5):\n    try:\n      client.connect(('localhost', 10500))\n      enabled_julius = True\n      break\n    except socket.error, e:\n      print 'failed socket connect. retry'\n      sleep (1)\n  if enabled_julius == False:\n    print 'Julius\u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093\u3067\u3057\u305f'\n    sys.exit(1)\n  data = \"\"\n  socket_buffer_clear()\n  try:\n    while True:\n      if \"&lt;\/RECOGOUT&gt;\\n.\" in data:  # RECOGOUT\u30c4\u30ea\u30fc\u306e\u6700\u7d42\u884c\u3092\u898b\u3064\u3051\u305f\u3089\u4ee5\u4e0b\u306e\u51e6\u7406\u3092\u884c\u3046\n        data = re.search(r'WORD\\S+', data)                          # data\u304b\u3089WORD\\s\u3067\u59cb\u307e\u308b\u884c\u3092\u62bd\u51fa\n        keyWord = data.group().replace(\"WORD=\",\"\").replace(\"\\\"\",\"\") # data\u304b\u3089\u30ad\u30fc\u30ef\u30fc\u30c9\u4ee5\u5916\u3092\u524a\u9664\n        replyMessage(keyWord)\n        socket_buffer_clear()\n        data = \"\"  # \u8a8d\u8b58\u7d42\u4e86\u3057\u305f\u306e\u3067\u30c7\u30fc\u30bf\u3092\u30ea\u30bb\u30c3\u30c8\u3059\u308b\n      else:\n        data = data + client.recv(bufferSize)  # Julius\u30b5\u30fc\u30d0\u30fc\u304b\u3089\u53d7\u4fe1\n  except KeyboardInterrupt: # CTRL+C\u3067\u7d42\u4e86\n    debug_message(' \u7d42\u4e86\u3057\u307e\u3057\u305f')\n    client.close()\n    bez.moveCenter()\n    bez.stop()\n    sys.exit(0)\n\nif __name__ == \"__main__\":\n  main()\n  sys.exit(0)<\/pre>\n<p style=\"padding-left: 30px;\">\u30fb\u30c7\u30d0\u30c3\u30b0\u306e\u305f\u3081\u306e\u6a5f\u80fd\u3067\u3059\u3002\u30d7\u30ed\u30b0\u30e9\u30e0\u5185\u306e\u602a\u3057\u3044\u3044\u7b87\u6240\u306bdebug_message(&#8220;\u597d\u304d\u306a\u6587\u5b57\u5217&#8221;)\u3092\u633f\u5165\u3059\u308b\u3053\u3068\u3067\u3001debug.txt\u306b\u30e1\u30c3\u30bb\u30fc\u30b8\u304c\u51fa\u529b\u3055\u308c\u308b\u306e\u3067\u3001\u3069\u3053\u3067\u7570\u5e38\u304c\u767a\u751f\u3057\u305f\u304b\u306a\u3069\u3092\u30c1\u30a7\u30c3\u30af\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002<\/p>\n<h5>\u30e1\u30a4\u30f3\u30eb\u30fc\u30d7<\/h5>\n<pre class=\"height:200 lang:python range:159-300 decode:true\" title=\"demo_chat1.py\">#!\/usr\/bin\/python\n# -*- coding: utf-8 -*-\n# \u97f3\u58f0\u5bfe\u8a71\u30c7\u30e2\n# for Bezelie Edgar\n# for Raspberry Pi\n# by Jun Toyoda (Team Bezelie)\n# from Aug15th2017\n\nfrom datetime import datetime      # \u73fe\u5728\u6642\u523b\u53d6\u5f97\nfrom random import randint         # \u4e71\u6570\u306e\u767a\u751f\nfrom time import sleep             # \u30a6\u30a7\u30a4\u30c8\u51e6\u7406\nimport subprocess                  # \u5916\u90e8\u30d7\u30ed\u30bb\u30b9\u3092\u5b9f\u884c\u3059\u308b\u30e2\u30b8\u30e5\u30fc\u30eb\nimport threading                   # \u30de\u30eb\u30c1\u30b9\u30ec\u30c3\u30c9\u51e6\u7406\nimport socket                      # \u30bd\u30b1\u30c3\u30c8\u901a\u4fe1\u30e2\u30b8\u30e5\u30fc\u30eb\nimport select                      # I\/O\u51e6\u7406\u5b8c\u4e86\u5f85\u6a5f\u30e2\u30b8\u30e5\u30fc\u30eb\nimport json                        # json\u30d5\u30a1\u30a4\u30eb\u3092\u6271\u3046\u30e2\u30b8\u30e5\u30fc\u30eb\nimport csv                         # CSV\u30d5\u30a1\u30a4\u30eb\u3092\u6271\u3046\u30e2\u30b8\u30e5\u30fc\u30eb\nimport sys                         # python\u7d42\u4e86sys.exit()\u306e\u305f\u3081\u306b\u5fc5\u8981\nimport re                          # \u6b63\u898f\u8868\u73fe\u30e2\u30b8\u30e5\u30fc\u30eb\nimport bezelie                     # \u3079\u30bc\u30ea\u30fc\u5c02\u7528\u30b5\u30fc\u30dc\u5236\u5fa1\u30e2\u30b8\u30e5\u30fc\u30eb\n\ncsvFile   = \"\/home\/pi\/bezelie\/chatDialog.csv\"          # \u5bfe\u8a71\u30ea\u30b9\u30c8\njsonFile  = \"\/home\/pi\/bezelie\/edgar\/data_chat.json\"    # \u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\nttsFile   = \"\/home\/pi\/bezelie\/edgar\/exec_openJTalk.sh\" # \u97f3\u58f0\u5408\u6210\ndebugFile = \"\/home\/pi\/bezelie\/debug.txt\"               # debug\u7528\n\n# \u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\u306e\u8aad\u307f\u8fbc\u307f\nf = open (jsonFile,'r')\njDict = json.load(f)\nname = jDict['data0'][0]['name']       # \u3079\u30bc\u30ea\u30fc\u306e\u5225\u540d\u3002\nuser = jDict['data0'][0]['user']       # \u30e6\u30fc\u30b6\u30fc\u306e\u30cb\u30c3\u30af\u30cd\u30fc\u30e0\u3002\nvol = jDict['data0'][0]['vol']         # \u30b9\u30d4\u30fc\u30ab\u30fc\u97f3\u91cf\u3002\nsubprocess.call('amixer cset numid=1 '+vol+'% -q', shell=True)      # \u30b9\u30d4\u30fc\u30ab\u30fc\u97f3\u91cf\n# mic = jDict['data0'][0]['mic']         # \u30de\u30a4\u30af\u611f\u5ea6\u3002\nmic = \"60\"                               # \u30de\u30a4\u30af\u611f\u5ea6\u3002\nsubprocess.call('sudo amixer sset Mic '+mic+' -c 0 -q', shell=True) # \u30de\u30a4\u30af\u611f\u5ea6\u8a2d\u5b9a\n\n# \u5909\u6570\u306e\u521d\u671f\u5316\nmuteTime = 1        # \u97f3\u58f0\u5165\u529b\u3092\u7121\u8996\u3059\u308b\u6642\u9593\nbufferSize = 256    # \u53d7\u4fe1\u3059\u308b\u30c7\u30fc\u30bf\u306e\u6700\u5927\u30d0\u30a4\u30c8\u3002\uff12\u306e\u500d\u6570\u304c\u671b\u307e\u3057\u3044\u3002\n\n# \u95a2\u6570\ndef timeCheck(): # \u6d3b\u52d5\u6642\u9593\u5185\u304b\u3069\u3046\u304b\u306e\u30c1\u30a7\u30c3\u30af\n  f = open (jsonFile,'r')\n  jDict = json.load(f)\n  awake1Start = jDict['data1'][0]['awake1Start']\n  awake1End = jDict['data1'][0]['awake1End']\n  awake2Start = jDict['data1'][0]['awake2Start']\n  awake2End  = jDict['data1'][0]['awake2End']\n  t = datetime.now()\n  if   int(t.hour) &gt;  int(awake1Start[0:2]) and int(t.hour) &lt;    int(awake1End[0:2]):\n    flag = True\n  elif int(t.hour) == int(awake1Start[0:2]) and int(t.minute) &gt;= int(awake1Start[3:5]):\n    flag = True\n  elif int(t.hour) == int(awake1End[0:2])   and int(t.minute) &lt;= int(awake1End[3:5]):\n    flag = True\n  elif int(t.hour) &gt;  int(awake2Start[0:2]) and int(t.hour) &lt;    int(awake2End[0:2]):\n    flag = True\n  elif int(t.hour) == int(awake2Start[0:2]) and int(t.minute) &gt;= int(awake2Start[3:5]):\n    flag = True\n  elif int(t.hour) == int(awake2End[0:2])   and int(t.minute) &lt;= int(awake2End[3:5]):\n    flag = True\n  else:\n    flag = False # It is not Active Time\n  return flag\n\ndef alarm():\n  f = open (jsonFile,'r')\n  jDict = json.load(f)\n  alarmOn = jDict['data1'][0]['alarmOn']\n  alarmTime = jDict['data1'][0]['alarmTime']\n  alarmKind = jDict['data1'][0]['alarmKind']\n  now = datetime.now()\n  if int(now.hour) == int(alarmTime[0:2]) and int(now.minute) == int(alarmTime[3:5]):\n    if alarmOn == \"true\":\n      # subprocess.call('sudo amixer -q sset Mic 0 -c 0', shell=True) \n      if alarmKind == 'mild':\n        bez.moveAct('happy')\n        subprocess.call(\"sh \"+ttsFile+\" \"+\"\u671d\u3067\u3059\u3088\", shell=True)\n        bez.stop()\n      else:\n        bez.moveAct('happy')\n        subprocess.call(\"sh \"+ttsFile+\" \"+\"\u671d\u3060\u3088\u8d77\u304d\u3066\u8d77\u304d\u3066\u8d77\u304d\u3066\u30fc\", shell=True)\n        bez.stop()\n      sleep (muteTime)\n      # subprocess.call('sudo amixer -q sset Mic '+mic+' -c 0', shell=True)\n  t=threading.Timer(20,alarm) # \uff4e\u79d2\u5f8c\u306b\u307e\u305f\u30b9\u30ec\u30c3\u30c9\u3092\u8d77\u52d5\u3059\u308b\n  t.setDaemon(True)           # \u30e1\u30a4\u30f3\u30b9\u30ec\u30c3\u30c9\u304c\u7d42\u4e86\u3057\u305f\u3089\u7d42\u4e86\u3055\u305b\u308b\n  t.start()\n\ndef replyMessage(keyWord):        # \u5bfe\u8a71\n  data = []                       # \u5bfe\u8a71\u30d5\u30a1\u30a4\u30eb\uff08csv\uff09\u3092\u5909\u6570data\u306b\u8aad\u307f\u8fbc\u3080\n  with open(csvFile, 'rb') as f:  # csvFile\u3092\u30aa\u30fc\u30d7\u30f3\n    for i in csv.reader(f):       # \u30d5\u30a1\u30a4\u30eb\u304b\u3089\uff11\u884c\u305a\u3064i\u306b\u8aad\u307f\u8fbc\u3080\n      data.append(i)              # data\u306b\u8ffd\u52a0\n\n  data1 = []                      # data\u304b\u3089\u8cea\u554f\u5185\u5bb9\u304c\u30ad\u30fc\u30ef\u30fc\u30c9\u306b\u4e00\u81f4\u3057\u3066\u3044\u308b\u884c\u3092data1\u3068\u3057\u3066\u629c\u304d\u51fa\u3059\n  for index,i in enumerate(data): # index=\u9023\u756a\n    if unicode(i[0], 'utf-8')==keyWord:  # i[0]\u306fstr\u306a\u306e\u3067utf-8\u306b\u5909\u63db\u3057\u3066\u6bd4\u8f03\u3059\u308b\u5fc5\u8981\u304c\u3042\u308b\n      j = randint(1,100)          # \uff11\u304b\u3089\uff11\uff10\uff10\u307e\u3067\u306e\u4e71\u6570\u3092\u767a\u751f\u3055\u305b\u308b\n      data1.append(i+[j]+[index]) # data1=\u8cea\u554f\u5185\u5bb9,\u8fd4\u7b54,\u4e71\u6570,\u9023\u756a\u306e\u30ea\u30b9\u30c8\n\n  if data1 == []:                 # data1\u304c\u7a7a\u3063\u307d\u3060\u3063\u305f\u3089\u30e9\u30f3\u30c0\u30e0\u3067\u8fd4\u3059\n    for index,i in enumerate(data):\n      j = randint(1,100)\n      data1.append(i+[j]+[index])\n\n  maxNum = 0                      # \u8907\u6570\u306e\u5019\u88dc\u304b\u3089\u30e9\u30f3\u30c0\u30e0\u3067\u9078\u51fa\u3002data1\u304b\u3089\u6b04\u6570\u5024\u304c\u6700\u5927\u306a\u3082\u306e\u3092\u9078\u3076\n  for i in data1:\n    if i[2] &gt; maxNum:\n      maxNum = i[2]\n      ansNum = i[3]\n\n  # \u767a\u8a71\n  # subprocess.call('sudo amixer -q sset Mic 0 -c 0', shell=True)  # \u81ea\u5206\u306e\u58f0\u3092\u8a8d\u8b58\u3057\u3066\u3057\u307e\u308f\u306a\u3044\u3088\u3046\u306b\u30de\u30a4\u30af\u3092\u5207\u308b\n  # \u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\u306e\u8aad\u307f\u8fbc\u307f\n  f = open (jsonFile,'r')\n  jDict = json.load(f)\n  vol = jDict['data0'][0]['vol']         # \u30b9\u30d4\u30fc\u30ab\u30fc\u30dc\u30ea\u30e5\u30fc\u30e0\n  # mic = jDict['data0'][0]['mic']         # \u30de\u30a4\u30af\u611f\u5ea6\n\n  if timeCheck(): # \u6d3b\u52d5\u6642\u9593\u3060\u3063\u305f\u3089\u4f1a\u8a71\u3059\u308b\n    bez.moveRnd()\n    subprocess.call('amixer cset numid=1 '+vol+'% -q', shell=True) # \u30b9\u30d4\u30fc\u30ab\u30fc\u97f3\u91cf\n    subprocess.call(\"sh \"+ttsFile+\" \"+data[ansNum][1], shell=True)\n    bez.stop()\n  else:           # \u6d3b\u52d5\u6642\u9593\u5916\u306f\u4f1a\u8a71\u3057\u306a\u3044\n    subprocess.call('amixer cset numid=1 60% -q', shell=True)      # \u30b9\u30d4\u30fc\u30ab\u30fc\u97f3\u91cf\n    subprocess.call(\"sh \"+ttsFile+\" \"+\"\u6d3b\u52d5\u6642\u9593\u5916\u3067\u3059\", shell=True)\n    sleep (5)\n    subprocess.call('amixer cset numid=1 '+vol+'% -q', shell=True) # \u30b9\u30d4\u30fc\u30ab\u30fc\u97f3\u91cf\n  # subprocess.call('sudo amixer -q sset Mic '+mic+' -c 0', shell=True)  # \u30de\u30a4\u30af\u611f\u5ea6\u3092\u5143\u306b\u623b\u3059\n\ndef socket_buffer_clear():\n  while True:\n    rlist, _, _ = select.select([client], [], [], 1)\n    if len(rlist) &gt; 0:\n      dummy_buffer = client.recv(bufferSize)\n    else:\n      break\n\ndef debug_message(message):\n  t = datetime.now()\n  message = str(t.minute)+\":\"+str(t.second)+\":\"+message\n  print message\n#  writeFile(message)\n#  sys.stdout.write(message)\n#\u3000pass\n\ndef writeFile(text):                # \u30c7\u30d0\u30c3\u30b0\u30d5\u30a1\u30a4\u30eb\u51fa\u529b\u6a5f\u80fd\n  f = open (debugFile,'r')\n  textBefore = \"\"\n  for row in f:\n    textBefore = textBefore + row\n  f.close()\n  f = open (debugFile,'w')\n  f.write(textBefore + text + \"\\n\")\n  f.close()\n\n# \u30b5\u30fc\u30dc\u306e\u521d\u671f\u5316\nbez = bezelie.Control() # \u3079\u30bc\u30ea\u30fc\u64cd\u4f5c\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u306e\u751f\u6210\nbez.moveCenter()        # \u30b5\u30fc\u30dc\u306e\u56de\u8ee2\u4f4d\u7f6e\u3092\u30c8\u30ea\u30e0\u5024\u306b\u5408\u308f\u305b\u308b\nclient = socket.socket(socket.AF_INET, socket.SOCK_STREAM)\n\n# \u30e1\u30a4\u30f3\u30eb\u30fc\u30d7\ndef main():\n  t=threading.Timer(10,alarm)\n  t.setDaemon(True)\n  t.start()\n  bez.moveAct('happy')\n  subprocess.call(\"sh \"+ttsFile+\" \"+u\"\u3053\u3093\u306b\u3061\u306f\"+user, shell=True)\n  subprocess.call(\"sh \"+ttsFile+\" \"+u\"\u307c\u304f\"+name, shell=True)\n  bez.stop()\n  # subprocess.call('sh exec_camera.sh', shell=True)            # \u30ab\u30e1\u30e9\u306e\u6620\u50cf\u3092\u30c7\u30a3\u30b9\u30d7\u30ec\u30a4\u306b\u8868\u793a\n  sleep (0.5)\n  # TCP\u30af\u30e9\u30a4\u30a2\u30f3\u30c8\u3092\u4f5c\u6210\u3057Julius\u30b5\u30fc\u30d0\u30fc\u306b\u63a5\u7d9a\u3059\u308b\n  enabled_julius = False\n  for count in range(5):\n    try:\n      client.connect(('localhost', 10500))\n      enabled_julius = True\n      break\n    except socket.error, e:\n      print 'failed socket connect. retry'\n      sleep (1)\n  if enabled_julius == False:\n    print 'Julius\u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093\u3067\u3057\u305f'\n    sys.exit(1)\n  data = \"\"\n  socket_buffer_clear()\n  try:\n    while True:\n      if \"&lt;\/RECOGOUT&gt;\\n.\" in data:  # RECOGOUT\u30c4\u30ea\u30fc\u306e\u6700\u7d42\u884c\u3092\u898b\u3064\u3051\u305f\u3089\u4ee5\u4e0b\u306e\u51e6\u7406\u3092\u884c\u3046\n        data = re.search(r'WORD\\S+', data)                          # data\u304b\u3089WORD\\s\u3067\u59cb\u307e\u308b\u884c\u3092\u62bd\u51fa\n        keyWord = data.group().replace(\"WORD=\",\"\").replace(\"\\\"\",\"\") # data\u304b\u3089\u30ad\u30fc\u30ef\u30fc\u30c9\u4ee5\u5916\u3092\u524a\u9664\n        replyMessage(keyWord)\n        socket_buffer_clear()\n        data = \"\"  # \u8a8d\u8b58\u7d42\u4e86\u3057\u305f\u306e\u3067\u30c7\u30fc\u30bf\u3092\u30ea\u30bb\u30c3\u30c8\u3059\u308b\n      else:\n        data = data + client.recv(bufferSize)  # Julius\u30b5\u30fc\u30d0\u30fc\u304b\u3089\u53d7\u4fe1\n  except KeyboardInterrupt: # CTRL+C\u3067\u7d42\u4e86\n    debug_message(' \u7d42\u4e86\u3057\u307e\u3057\u305f')\n    client.close()\n    bez.moveCenter()\n    bez.stop()\n    sys.exit(0)\n\nif __name__ == \"__main__\":\n  main()\n  sys.exit(0)<\/pre>\n<p style=\"padding-left: 30px;\">\u30fb\uff12\uff10\uff10\u884c\u3067julius\u304b\u3089\u30c7\u30fc\u30bf\u3092\u53d7\u3051\u53d6\u308a\u3001\u305d\u306e\u4e2d\u306b&lt;\/RECOGOUT&gt;\\n\u304c\u542b\u307e\u308c\u3066\u3044\u305f\u3089\u3001\u305d\u306e\u76f4\u524d\u306b\u97f3\u58f0\u8a8d\u8b58\u306e\u7d50\u679c\u304c\u542b\u307e\u308c\u3066\u3044\u308b\u306e\u3067\u3001\uff11\uff19\uff14\u884c\u76ee\u3067WORD\\s\u304b\u3089\u59cb\u307e\u308b\u884c\u3092\u629c\u304d\u51fa\u3057\u3001\u3055\u3089\u306b\uff11\uff19\uff15\u884c\u76ee\u3067\u30ad\u30fc\u30ef\u30fc\u30c9\u4ee5\u5916\u3092\u524a\u9664\u3057\u3066\u3001replyMessage()\u3078\u9001\u3063\u3066\u3044\u307e\u3059\u3002<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u30fbdemo_chat1.py\u306f\u521d\u671f\u72b6\u614b\u306e\u3079\u30bc\u30ea\u30fc\u304c\u81ea\u52d5\u8d77\u52d5\u3059\u308b\u30d7\u30ed\u30b0\u30e9\u30e0\u306e\u3046\u3061\u306e\u3072\u3068\u3064\u3067\u3001\u97f3\u58f0\u4f53\u3092\u884c\u3044\u307e\u3059\u3002 \u30e2\u30b8\u30e5\u30fc\u30eb\u306e\u8aad\u307f\u8fbc\u307f #!\/usr\/bin\/python # -*- coding: utf-8 -*- #  &hellip; <a href=\"http:\/\/bezelie.com\/blog\/?page_id=1901\" class=\"more-link\"><span class=\"screen-reader-text\">&#8220;\u30d7\u30ed\u30b0\u30e9\u30e0\u89e3\u8aac\u300cdemo_chat1.py\u300d&#8221; \u306e<\/span>\u7d9a\u304d\u3092\u8aad\u3080<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-1901","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"http:\/\/bezelie.com\/blog\/index.php?rest_route=\/wp\/v2\/pages\/1901","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/bezelie.com\/blog\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"http:\/\/bezelie.com\/blog\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"http:\/\/bezelie.com\/blog\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/bezelie.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1901"}],"version-history":[{"count":10,"href":"http:\/\/bezelie.com\/blog\/index.php?rest_route=\/wp\/v2\/pages\/1901\/revisions"}],"predecessor-version":[{"id":2352,"href":"http:\/\/bezelie.com\/blog\/index.php?rest_route=\/wp\/v2\/pages\/1901\/revisions\/2352"}],"wp:attachment":[{"href":"http:\/\/bezelie.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1901"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}