Raspberry Piをしゃべらせてみたよ。
さて、今回は超小型コンピューターRaspberry Piをしゃべらせてみます。基本操作が少し分かってきたのでちょっとだけプログラミングもしてみました。
Node.js
「サーバーサイドで利用出来るJavaScript」というモノがある。ということは知っていたのですが、通常のレンタルサーバーでは利用出来なかったりして取っ付きにくい印象を持っていました。
公式ページにはこんな風に書かれています。
Node.js®は、 ChromeのV8 JavaScriptエンジン上に構築されたJavaScriptのプラットフォームです。 Node.jsは軽量で効率的にイベントを駆動させるノンブロッキングI / Oモデルを使用しています。 Node.jsのパッケージのエコシステム “NPM” は世界で最大級のオープンソースのライブラリです。
うーん。かえって分からん。ただ、Raspberry PiをこのNode.jsを利用して動作させている記事を見て以前より気になっていました。
習うより慣れろ。まずはこのNode.jsを利用してRaspberry Piをしゃべらせてみることにします。
NPM
公式ページにはこのように書かれています。
NPMはJavaScriptのためのパッケージマネージャです。
現在の総パッケージ数は239,710とあります。どうもこのパッケージを利用することで多くの機能を追加・実行する事が出来るということの様です。
こちらの記事(フロントエンド開発の3ステップ(npmことはじめ) - Qiita)を拝見したところ、
ライブラリ入れ放題、中毒者続出の npm install(中略)
登録されているパッケージをフル活用すれば、できないことはほとんどないでしょう。
こんな風に表現されています。なるほど。様々なパッケージを利用することで高度な機能も実現出来るな気がしてきました。
試してみた
Node.jsのインストールはこんな感じでやってみました。(Raspberry Piに最新版Node.jsをダウンロード - Qiita )その後パッケージを2つ利用してPaspberry Piをしゃべらせてみようという算段です。
voicetext - npm
こちらの記事 ( VoiceText Web APIのNode.jsライブラリ作った - ぽっちぽちにしてやんよ)を拝見してから、Raspberry Piを購入したら真っ先に利用してみようと思っていました。
HOYA社の合成音声ライブラリVoice Text Web API をNode.jsから実行可能にしてくれるライブラリです。
実行に関してはこちらの記事( VoiceTextを使ってsayコマンドよりいい感じに文章を読み上げる - Labo Memo )でサンプルを公開してくれていましたので参考にさせていただきました。
|
|
でパッケージをインストール。サンプルのJavaScriptファイルvoicetext_test.js
をパッケージとと同じ階層に設置します。(上記Labo Memoさんのコードを転記させていただきます)
|
|
JavaScriptファイルを実行。
|
|
することでHOYAさまの合成ライブラリを通じて作成されたwavファイルをダウンロードすることが出来ます。
node-aplay - npm
ブラウザを利用すればaudio
タグを利用して簡単にwavファイルを再生することが出来ますが、Paspberry Piの様なハードから直接再生させようとするとなかなか大変な実装が必要となります。
linuxのパッケージソフト「ALSA」を利用すれば、コマンドラインでaplay
というコマンドを利用して音源ファイルを再生することが出来るのですが…。これをJavaScriptで操作する方法はないか一思案。
検索で探してみたら、ありました。Linuxコマンドaplay
をJavaScriptで実行可能にしてくれるライブラリがこのnode-aplay
です。
|
|
でインストール。(「ALSA」の実行環境は事前に整えておきます)実行用のJavaScript(node-aplay_test.js)を作成します。
|
|
JavaScriptファイルを実行。
|
|
これで指定したwavファイルが再生されます。
やってみた
上記の2つのパッケージをインストールして、実行用のJavaScriptファイルをまとめてvoice.js
としました。こんな感じです。
|
|
ファイルの階層はこんな感じになります。
voice
と名付けたディレクトリに2つのパッケージをインストールしました。自動的にnode_modules
ファイルで振り分けられたのが分かると思います。
|
|
で実行します。
可愛らしい声でしゃべりました。
まとめ
ひとまずRaspberry Piも喋れるようになりました。
少しづつ機能を追加していきたいなと思います。ではまた。