9
© Hitachi, Ltd. 2016. All rights reserved. 株株株株 株株株株株 2016/6/28 株株 Raspberry Pi 株 Watson 株 株株株株株株株株

Raspberry PiとWatsonで音リモコンを開発

Embed Size (px)

Citation preview

Page 1: Raspberry PiとWatsonで音リモコンを開発

© Hitachi, Ltd. 2016. All rights reserved.

株式会社 日立製作所

2016/6/28

横井 一仁

Raspberry Pi とWatson で音リモコンを開発

Page 2: Raspberry PiとWatsonで音リモコンを開発

© Hitachi, Ltd. 2016. All rights reserved.

Node-RED とは

2

• 処理がカプセル化されたノードという単位を GUI で繫ぐのみで一連の処理を作成できる開発 / 実行環境

• Node-RED の提供形態• Bluemix 版

  DB 、 Watson ノードが充実

• OSS 版 ファイル読み書き、 コマンド実行ノード等を利用可

• Raspberry Pi 版  OSS 版のノードに加え、  GPIO 制御ノード等を利用可

 → 今回は Raspberry Pi 版に Watson ノードを追加して利用※Watson 、 Bluemix は International Business Machines Corporation の登録商標、製品名です。※GPIO: General Purpose Input/Output

Page 3: Raspberry PiとWatsonで音リモコンを開発

© Hitachi, Ltd. 2016. All rights reserved.

Raspberry Pi に接続したマイクに向かって「 It’s hot( 暑い ) 」と発言すると、扇風機が動く音リモコンを開発

• Raspberry Pi 版の Node-RED を利用

• Watson Speech to Text を用いて音声認識

• GPIO 端子でリレーを制御し、扇風機の電源を ON/OFF

Node-RED で開発した音リモコン

3

IBM Bluemix

GPIO端子

USBマイク

「暑い」と発言

Node-RED

WatsonSpeech to Text

(1)音声を録音

(2)音声データをテキストに変換

(3)テキストに「暑い」という単語が含まれている場合、リレーのスイッチをON

音声データ テキスト (4)扇風機の

電源ON

Raspberry Pi リレー

Page 4: Raspberry PiとWatsonで音リモコンを開発

© Hitachi, Ltd. 2016. All rights reserved.

• 主なハードウェア構成• Raspberry Pi2 Model B• USB 接続ヘッドセット、 USB 接続 Wifi アダプタ、 USB 接

続扇風機• リレー、 USB コネクタ

• ソフトウェア構成• OS: Raspbian version May 2016• 追加ブラウザ : iceweasel (Epiphany は一部ノードを編集できない

ため )• 追加ノード : Watson Speech to Text

• 主なインストールコマンド

sudo apt-get install npm iceweasel

npm install node-red-node-watson

動作環境

4

Raspberry Pi 版の Node-RED にWatson ノードが追加される

Page 5: Raspberry PiとWatsonで音リモコンを開発

© Hitachi, Ltd. 2016. All rights reserved.

Node-RED の処理フロー

5

(1) マイクで録音し、 音声ファイル保存

(2) Watson のサーバへ 音声ファイルをアップロードし、 音声認識結果のテキストを取得

(3) “hot” という単語を 含むか判定 (4) GPIO 端子に電流

ON/OFF 信号を設定

# 処理ノード 使用名 役割

1 ingest Run 処理を定期実行

2 Exec Recordvoice

外部コマンド実行

3 File( 左右に端子あり )

Read voice file

ファイル読み込み

4 debug Error コマンドのエラー出力

# 処理ノード 使用名 役割

5 Speechto Text

WatsonSpeech to Text

音声認識実行

6 debug Text 音声認識結果出力

7 switch hot? 文字列判定

8 template ON, OFF Relay に渡す値設定

9 rpi-gpio( 左に端子あり )

Relay GPIO 端子の電流 ON/OFF

※ 各ノード詳細

Page 6: Raspberry PiとWatsonで音リモコンを開発

© Hitachi, Ltd. 2016. All rights reserved.

音声録音、音声認識

6

• exec ノード (Record voice)• arecord コマンドを用いて 5 秒間録音• ファイルは wav 形式で保存

• speech to text ノード (Watson Speech to Text)• Bluemix 上で Watson Speech to Text のサービスを作成• サービスの環境変数 Username と Password を貼り付け

Exec ノードの設定 Text to speech ノードの設定

Page 7: Raspberry PiとWatsonで音リモコンを開発

© Hitachi, Ltd. 2016. All rights reserved.

条件判定、 GPIO 端子制御

7

• switch ノード (hot?)• 音声認識結果に文字列 hot を含むか判定• 判定結果を基に、 0,1 の値を返す template ノードに処理を引き継ぐ

• rpi-gpio ノード (Relay)• GPIO 端子の 18 番を制御するように設定• template ノードから受け取った値 0,1 を基に電流の ON/OFF を制御

switch ノードの設定 Rpi-gpio ノードの設定

Page 8: Raspberry PiとWatsonで音リモコンを開発

© Hitachi, Ltd. 2016. All rights reserved.

ブレッドボードで作成した回路

8

USB電源 扇風機へ接続

リレー

• GPIO 端子に電流を流すとリレーのスイッチを入れるよう配線

• リレーのスイッチにより、 USB の電源を ON/OFF 制御

配線の様子 配線図

Page 9: Raspberry PiとWatsonで音リモコンを開発

© Hitachi, Ltd. 2016. All rights reserved.

最後に

9

• Node-RED を用いて開発する利点• 開発時間が短い ( 約 1 時間 )• 他者への説明が容易

• 発展アイデア• 条件判定のバリエーション追加• 照明、エアコン等の機器に対応• WordNet を用いた同義語判定

• 詳細はユーザ会で連載したASCII 記事に掲載

http://bit.ly/1XVF63n