Node-RED で Watson Text to Speech を試してみる


はじめに

このドキュメントは Node-RED を利用して、IBM Watson Text to Speech を体験するための手順を示しています。
ここで利用する Node-RED は、IBM Cloud にデプロイされたものを想定しています。

Node-REDパレット管理

音声を再生するためのノードを、Node-RED に組み込みます。

ノード追加

右上の「ハンバーガーメニュー」をクリックし、「パレット管理」 をクリックします。

パレット設定画面で 「ノードを追加」 タブをクリックします。

ノードを検索 テキストボックスに play と入力すると候補が表示されます。

node-red-contrib-play-audio「ノードを追加」 ボタンをクリックします。

確認ダイアログが表示されるので、「追加」 ボタンをクリックします。

しばらくするとノードが追加されたことを表すメッセージが表示されます。

Node-REDフロー作成

英語テキストの音声を確認してみます。

injectノード

パレット上部の「共通 タブ」から inject ノードをワークスペースにドラッグします。

text to speechノード

パレット下部の「IBM Watson タブ」から text to speech ノードをワークスペースにドラッグします。

play audioノード

パレット上部の「出力 タブ」から play audio ノードをワークスペースにドラッグします。

functionノード

パレット上部の「機能 タブ」から function ノードをワークスペースにドラッグします。

ノード接続

[inject][function][text to speech][play audio] の順にノードを接続します。

少しコーディング

Watson に話してもらう英文を記述します。

function ノードをダブルクリックし、ソースコード編集画面を開きます。そして下記のコードを記述します。

msg.payload = "I have a pen.";
return msg;

音声設定

出力する音声を設定します。 play audio ノードをダブルクリックし、TTSボイスを English に設定します。

Text-To-Speech-API準備

いったん Node-RED から離れて、IBM Cloud の GUI から Watson Text to Speech API を準備します。

リソースの作成

IBM Cloud のダッシュボード、もしくはリソース・リストにある 「リソースの作成」ボタンをクリックします。

検索テキストボックスに text と入力すると、[Text to Speech] の候補が表示されるのでクリックします。

サービスの設定画面で ライト 無料 となっていることを確認して、「作成」ボタンをクリックします。

API情報表示

作成された API の詳細画面が表示されるので、左メニュの 「管理」 をクリックします。

Node-REDへText to Speech組み込み

Node-RED と Watson API を連携させる方法はいくつかあります。

  • API 鍵による連携
  • Cloud Foundry アプリケーションの接続

今回は「API 鍵による連携」で Node-RED と Watson API を連携します。

API鍵の組み込み

Watson API の管理画面から 資格情報「API 鍵」 をコピーします。

Node-RED フローエディタを表示し、ワークスペースに配置してある[text to speech]ノードをダブルクリックします。

API key を入力する欄があるので、貼り付けます。

EndPoint-URLの組み込み

Watson API の管理画面から 資格情報「URL」 をコピーします。

Node-RED フローエディタを表示し、ワークスペースに配置してある[text to speech]ノードをダブルクリックします。

Service Endpoint を入力する欄があるので、貼り付けます。

Node-REDでWatson-Text to Speech体験

Node-RED と Watson Text to Speech の連携は完了したので、Watson の機能を試してみます。

流し込むテキストと音声の言語設定

引き続き [text to speech]ノードの設定画面で下記設定をします。

  • LanguageUS English
  • VoiceEmilyV3

デプロイ

いままで設置してきた フローやコーディングを確定して、実際に動作するようにします。画面上部の 「デプロイ」ボタンをクリックします。

実行

ワークスペースに配置してある inject ノードの左側のボタンをクリックして、フローを実行します。すると functionノードに記述した英文が Text to Speech に送信され、音声データがパソコンから聞こえてきます。

終わりに

文字列を設定するだけで簡単にテキスト音声を得られることが確認できたかと思います。

「日本語」「英語」以外にも翻訳可能な言語があります。

いろいろなアプリやサービスの中に気軽に音声読み上げ機能を追加することが可能になります。試してみてはいかがでしょうかっ!