このページの本文へ

Raspberry Pi×Watsonで音リモコンを作ろう

2016年04月21日 11時00分更新

横井一仁/日立製作所

  • この記事をはてなブックマークに追加
本文印刷

IoTといえば、Googleが買収したNestのように、家電のコントロールが注目されています。IBMのクラウド・サービス「IBM Bluemix(以下、Bluemix)」を使ったIoTアプリの開発方法を紹介する連載第3回は、ユーザーがRaspberry Piに接続したUSBマイクに向かって「It’s hot...(暑い)」としゃべると、扇風機が動くWebアプリを作ります。

今回は音声で機器を制御するシステムをNode-RED※1で開発し、デバイスとしてRaspberry Pi※2を使います。

具体的には、マイクから入力された音声をRaspberry Pi内部で“hot”という単語が含まれているかを、Bluemixの「Watson Speech to Text」サービスで識別します。含まれていたら扇風機につながっているリレーのスイッチを入れます。この処理のロジックの記述にNode-REDを使っています。

※1:Node-REDは、ファイルからバイナリデータを読み込む、条件分岐をする、外部コマンドを実行する、などの処理がカプセル化されている“処理ノード”をGUIでつなぐことで、一連の処理を開発できる開発環境です。処理ノードについては、第1回の記事を参考にして下さい。Node-REDを習得するには、Node-REDユーザー会の勉強会、IBMが開催しているハンズオンに参加する方法が、学習効率が高くお勧めです。また、技術向け記事サイトであるQiitaにもNode-REDに関する情報が多数掲載されており、参考になります。

※2:Raspberry Piは、教育用に開発されたシングルボードコンピュータです。Raspberry Piは、Raspberry Pi向けLinux OS「Raspbian」をインストールすれば、安価なLinuxマシンとして動作します。特にRaspberry Piは、GPIO(General Purpose Input/Output)端子を経由して電子機器と接続できるという特徴があります。本記事ではRaspberry Pi 2 Model Bを用いましたが、最新のRaspberry Pi 3 Model Bでも同じ開発方法となります。

使用したシステム

今回開発するシステムで利用したソフトウェア、サービス、ハードウェアの一覧です。

・ソフトウェア、サービス

名称など備考
Raspbian version 1.5.0, Release date 2015-11-21https://www.raspberrypi.org/downloads/noobs/
Node.js v4.2.6https://nodejs.org/
FFMPEG 2.8.6https://www.ffmpeg.org/
Watsonサービスの処理ノード音声を分析してテキストに変換する「Watson Speech to Text」

・ハードウェア

 型番発売元備考URL
Raspberry Pi 2 スターターキット(無線版)Raspberry Pi 2 Model Bスイッチサイエンス構成は、Raspberry Pi 2 Model B、ケース、USB型無線LANアダプター、HDMIケーブル、8GBマイクロSDカード、電源供給用USBケーブル、USB電源向けACアダプターhttps://www.switch-science.com/
USBヘッドセットHS-EP13USVエレコム http://www.elecom.co.jp/
USB給電型扇風機 Digio2UA-045-BKナカバヤシ http://www.nakabayashi.co.jp/
USBキーボード、マウス--  
HDMI端子のあるディスプレイ--  
インターネット接続可能な無線LANルータ--  
ブレッドボードBB-801CIXI WANJIE ELECTRONICS  
リレー941H-2C-5DHSIN DA PRECISION CO., LTD. http://www.hsinda.com.cn/
ブレッドボード用マイクロBメスUSBコネクタDIP化キット-秋月電子通商2個http://akizukidenshi.com/
ブレッドボード・ジャンパーコード(オス-メス)15センチ(青)-Herwell Asia Limited http://www.herwell-asia.com/
ブレッドボード・ジャンパーコード(オス-メス10センチ20本セット-CIXI WANJIE ELECTRONICS  

Raspbian版Node-REDを使う

プログラミングを始める前に、PC版のNode-REDとRaspberry Pi用Linux OS「Raspbian」のNode-REDの違いを説明します。

Raspbian版Node-REDには、Raspberry Pi向け処理ノードが用意されています。これらの制御用の処理ノードを使って、GPIO端子やマウスから受け取ったイベントをきっかけとして処理を開始したり、処理中にGPIO端子を制御したりできます。今回は、左側に端子のあるrpi-gpioノードを使用しました。このノードは、入力をきかっけとして、指定したGPIO端子の電流ON/OFFを制御できます。

Raspbian版Node-REDのRaspberry Pi向け処理ノード

Watsonサービスと連携する処理ノードについては、Raspbian版Node-REDには標準で用意されていないため、Node.jsのモジュール管理ツールnpmを使って手動でインストールする必要があります。下記コマンドをターミナルから実行すると、Watsonサービスの処理ノードをRaspberry Piでも使えるようになります。


sudo npm install node-red-bluemix-nodes

インストールした処理ノードは、インターネット上のWatsonサービスのAPIにアクセスし、Node-RED上でWatsonの機能を利用できるようにする処理ノードです。今回は、音声を認識するWatson Speech to Textサービスを利用しました。

Watsonサービスの処理ノード

今回のように環境標準では用意されていないNode-REDの処理ノードはたくさんあります。どのような処理ノードがあるかは、Node-RED Libraryのサイトを参照してください。

この連載の記事

一覧へ
Web Professionalトップページバナー

この記事の編集者は以下の記事をオススメしています

ASCII.jp会員サービス 週刊Web Professional登録

Webディレクター江口明日香が行く