ブロックを積みながら(47) Node-RED、Dashboard、audio out

Joseph Halfmoon

このところDashboard用のノードを勉強しております。今回は「Dashboardの」audio outノードです(似たものがDashboardの外にもあり。)Dashboard用と言いつつ、Dashboardの表面には見えませぬ。しかし「結構使える」気がします(個人の感想です。)まあ、ちょっと使い方難しいところもあるけれども。

※「ブロックを積みながら」投稿順 index はこちら

さて今回のノードはDashboardを開いているブラウザ機能に依存する部分が大です。今回実験に使用したのは、Windows 10 上の以下のブラウザです。

Google Chrome 96.0.4664.45 (64ビット)

Dashboardのaudio outノードの基本機能

以下の2つが基本機能といえるじゃないかと思います。

    1. 音声データファイル(.wav, .mp3)などをブラウザに送って音を鳴らす
    2. 文字列データをブラウザに送ってTTS(Text To Speach)で喋らせる

第1の機能は、payloadにバイナリの音声データを載せて送り出す必要ありです。当然ファイルからのデータ読み出しを行わないとならないと思います。こちらの機能を実験してみるのはファイルからのデータ読み出しノードを実験する時にいたしとうございまする。今回はパス。

第2の機能は、payloadに載せた文字列を、ブラウザのTTS機能で喋らせるというものです。payloadには普通に文字列をおけば良いので簡単。ただし、Dashboardを開いているブラウザ側にTTS機能が無ければなりません。まあ、「普通の」ブラウザ使っていたら使える筈だよね、ということでOK(何がOKなのよ?)

実験に使用したフローとその設定

実験に使用したフローは極めて簡単です。冒頭のアイキャッチ画像に示しましたが、Injectノードから文字列を送り、Audio outノードで受け取ってDashboard経由でDashboardを開いているブラウザに喋らせるという段取りです。Injectノードの設定は以下です。

DashboardAudioOut_Inject上記は、日本語TTS用で「ごきげんよう」ですが、英語TTSをテストする場合には、今週思い出したAraha様のお言葉

Hi, Andy!

を採用させていただきました。

本題の audio out ノードの設定は以下です。TTS Voiceのプルダウンメニューを開くと、以下のようにずらずらと使用可能なTTSボイスのリストが現れます。以下は、MicroSoftの日本語ボイス4種。女性3種、男性1種。

TTS000その後に続く、Googleのボイスは各国語とりまぜて以下が使えました。テストしたのは英語(米語女性1種、UK英語男女各1種)と日本語(女性1種)です。

TTS001
実験結果

Injectすれば、「ごきげんよう」、「Hi、Andy」が聞こえてきました。実験はOKです。

以下、単なる老人の妄言です。そういえば昔、ちょっとだけTTSに関わっていたことがあるのです。こうしてみると今やクオリティの良い音声がブラウザ開けば流れてきます。また、スマホでの入力も気づけば私の音声認識に頼っているし。。。音声合成や、音声認識に苦労していた(私は苦労してないケド)ころがつい昨日のように思い出されます。時代の変化は速いです。

今回、日本語音声(MS4種、Google1種)を聞き比べた感じだと、MSの4種は女性(Ayumi様、Haruka様、Sayaka様)も男性(Ichiro様)もお名前の割に(失礼)落ち着いた雰囲気のボイスじゃないかと思います。いかにも「エンタープライズ」ユース向けに音声を調整してある感じがします。それに対してGoogleのはちょっと若々しい感じで多少「コマーシャル」ユース、特に若年層向けの味付けかと感じました。

昔聞いた話では、あまり「キャピキャピした声」で音声ガイドをやると年齢層の高いユーザさん、とくに中高年の女性から買ってもらえないらしいです。生活家電などへの応用でのTTSの発音は「落ち着いた雰囲気」「特定層へのアピールより、万人に嫌われないボイス」が大事だそうな。某社は「落ち着いて聞きやすい」音素を取得するために選任の女性アナウンサー的な人を確保していたとか、いないとか。。。

ちょっと何言っているか分からない

Dashboardを開いているブラウザのタブから別タブへ移って(Dashboardは開いたまま)も、Dashboard宛てにTTSデータを送れば、音声が聞こえます。

Dashboardのタブを閉じてしまえば、音声は聞こえなくなります。

ちょっとね、挙動不審だったのが以下です。Dashboardを開いているブラウザのタブを一端閉じ。再びDashboardを開いてみます。グラフデータなどは、何事も無かったかのように以前の値から継続したものが表示されます。しかし、TTSを鳴らしてみると、以下みたいな状態になります(Node-REDエディタ上のエラー表示。)Ayumi様はお怒りのようです。別に英文のHi Andyを送られたからではありませんよ。エラーが無ければ、それなりに(日本語風の英語っぽく)「ハイ アンディ」言います。

DashboardAudioOut_test_Error上のようにエラーになると、Dashboard開いていても音声が聞こえません。再度Dashboardを開きなおしても全然です。

しかし、Dashboardタブから、別の表示をしているタブへ移ると再びTTS音声が聞こえるようになりました。そしてDashboardに戻ればそこでも音声OKです。何、この挙動。ちょっと何言っているんだか分からない。

ブロックを積みながら(46) Node-RED、Dashboard、gaugeノード へ戻る

ブロックを積みながら(48) Node-RED、play audioノードにwavファイルへ進む