LoginSignup
0
1

More than 5 years have passed since last update.

say + Python subprocess > order_gesture_180225.py > v0.1, v0.2 > インターバルごとに「home position」、「command」と発音する

Last updated at Posted at 2018-02-25
動作環境
GeForce GTX 1070 (8GB)
ASRock Z170M Pro4S [Intel Z170chipset]
Ubuntu 16.04 LTS desktop amd64
TensorFlow v1.2.1
cuDNN v5.1 for Linux
CUDA v8.0
Python 3.5.2
IPython 6.0.0 -- An enhanced Interactive Python.
gcc (Ubuntu 5.4.0-6ubuntu1~16.04.4) 5.4.0 20160609
GNU bash, version 4.3.48(1)-release (x86_64-pc-linux-gnu)
scipy v0.19.1
geopandas v0.3.0
MATLAB R2017b (Home Edition)
ADDA v.1.3b6
gnustep-gui-runtime v0.24.0-3.1

プロジェクト開始: https://qiita.com/7of9/items/4077c92b9a773e054193

MemoryEnhancer > MEGLV > UI > 音声によるコマンド受付の応答 | sayコマンドのセットアップ(Ubuntu 16.04 LTS)

UI > rotate arm (to the) right > どういう動きなのか? | コマンド案 v0.1 > home position | hand roll | forearm pitch | arm yaw
の続き。

必要な作業

グローブUI(ESP8266 + MPU-9250)によるQuaternionのデータをコマンドに訳そうとしている。
そのためにはグローブUIの動きのデータを測定する必要がある。

コマンドをサーバーが識別できるようにするためには、サーバーが使用者に命令を発して、使用者がそれにもとづきコマンドを繰り返し実行する、という作業を通したデータ取りが必要になる。

@ 社員をサーフィンへ行かせよう by Yvon Chouinard (シュイナード)

わずか15歳にしてオオタカを罠で捕らえ、手の上で眠ってもらえるほどの信頼を勝ち取るまで夜通し付き添い、誇り高きこの鳥を狩りの補助役としてだけ働くよう訓練するのだから、禅問答ではないが、「どちらが訓練されているのか」ということになる。

「どちらが訓練されているのか」

処理概要

  1. gnustep-gui-runtimeのsayコマンドを使う
  2. 「home position」を発する
  3. 「command」を発する
  4. 2と3を繰り返す

code v0.1

order_gesture_180225.py
import subprocess as sb
import sys
import time
from datetime import datetime as dt

'''
v0.1 Feb. 25, 2018
    - add main loop
    - add run_say()
'''


def run_say(param):
    sb.call(('say ' + param).split())
    hhnnss = dt.now().strftime('%H:%M:%S')
    print('%s %s' % (hhnnss, param))


INTERVAL_SEC = 5  # interval between sound

for loop in range(3):
    run_say('home position')
    time.sleep(INTERVAL_SEC)
    run_say('command')
    time.sleep(INTERVAL_SEC)

run_say('finish')

run
$ python3 order_gesture_180225.py 
11:53:32 home position
2018-02-25 11:53:37.222 GSSpeechServer[26735] No handle for event rport on descriptor 14
11:53:37 command
11:53:42 home position
2018-02-25 11:53:47.310 GSSpeechServer[26735] No handle for event rport on descriptor 14
11:53:47 command
11:53:52 home position
2018-02-25 11:53:57.403 GSSpeechServer[26735] No handle for event rport on descriptor 14
11:53:57 command
11:54:02 finish

運用

Home positionと言われたら、home positionにする。

Commandと言われたら、データを取りたいコマンドのいずれかを行う。

Peekで動画を取りながら、データもファイル出力をしておく。動画を見ながらデータに対するコマンド識別のための処理を検討する。 

code v0.2

  • NUM_LOOPを追加
order_gesture_180225.py
import subprocess as sb
import sys
import time
from datetime import datetime as dt

'''
v0.2 Mar. 04, 2018
   - add [NUM_LOOP]
v0.1 Feb. 25, 2018
   - add main loop
   - add run_say()
'''


def run_say(param):
    sb.call(('say ' + param).split())
    hhnnss = dt.now().strftime('%H:%M:%S')
    print('%s %s' % (hhnnss, param))


INTERVAL_SEC = 10  # interval between sound
NUM_LOOP = 5

for loop in range(NUM_LOOP):
    run_say('home position')
    time.sleep(INTERVAL_SEC)
    run_say('command')
    time.sleep(INTERVAL_SEC)

run_say('finish')

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1