Help us understand the problem. What is going on with this article?

IBM BluemixのWatson API(Language Translation, Text to Speech)を使って、多言語チャットを実現する

More than 3 years have passed since last update.

短い前置き

ようこそ、コグニティブの時代へ。

WatsonはIBMが開発した質問応答システム・意思決定支援システムであり、自然言語を理解し、学習することで人間の意思決定を支援します。

そんなWatsonの機能を簡単に利用できる環境がIBM Bluemixには揃っており、なんとAPI経由でそのWatsonの機能を呼び出すことが可能となっています。即コグニティブです。

また、WatsonのAPIを利用する上で是非利用したいのがBluemixの「Node-RED」です。

Node-REDとはブロックを繋ぎ合わせるだけでアプリケーションが作成可能なツールで、もともとBluemixとIoTデバイスの連携を容易にすることに注目して開発されたものですが、その便利さから最近ではソーシャル、アナリティクス、そしてWatsonと、様々な機能追加がなされています。

そこで今回はBluemixの「Node-RED」と「Watson」を使い、チャットアプリを作成することを通して、いかに簡単にアプリケーションが作成できるかを紹介していきたいと思います。

Watson API

WatsonのAPIには様々な種類があり、その機能は日々更新されています。
BMblog1.png
画像認識、自然言語による会話、性格診断などいろいろな機能がありますが、今回は「Language Translation」と「Text to Speech」の2つの機能を組み合わせて使ってみたいと思います。

Language Translationはその名の通り言語の翻訳をしてくれる機能で、現在62の言語を認識し、いくつかの翻訳モデルを有しています。ちなみに日本語は認識はしてはくれますが英語→日本語の翻訳モデルはまだ対応できていません。

Text to Speechは入力したテキストを音声として読み上げてくれる機能です。こちらは日本語に対応しており、API経由で利用することができます。

作成するアプリの概要

今回はWatson APIの「Language Translation」と「Text to Speech」の機能を使って、英語で入力された文章を様々な言語に翻訳し、読み上げてくれるチャットアプリを作りたいと思います。

全体像は以下のような形を想定しています。
BMblog3.png

実装

BMblog2.png

まずはチャット部分を作ります。
BMblog5.png

チャットはここを参考にし、WebSocketを用いて作成しました。Node-REDではノードを置くだけでWebSocketのサーバー側が実装されるのでとても便利で早いです。使うときはjavascriptなどでクライアント側から呼び出せばいいだけになっています。

次にLanguage Translation部分。
BMblog6.png

翻訳の肝となる部分であり、英語で入力された文章をLanguage Translationにそのまま入力し、outputとしてそれぞれの言語の文章をWebSocketに入力しています。

Language Translationの設定もこれだけです。非常に簡単です。
BMblog7.png

こんなに大量のWebSocketを立てる必要はありませんが、できるだけプログラミングの手間を減らし、Node-REDの機能を利用することを考えてこのようにしました。

最後に、HTML部分です。
BMblog8.png
ここでは実際にアプリケーションがデプロイされるURLやHTMLの内容を定義します。ここでWebSocketとの連携や、APIの呼び出しを行いました。

今回Text to SpeechはこのHTMLノードの中でAPI経由で呼び出していますが、Node-REDではText to Speechのノードを利用できるようになっているため、当然そちらを使っても同じことができます。
BMblog9.png

テスト

完成したチャットをテストしていきます。
BMblog10.png
チャットボックスに英語で入力を行うと、自動でフランス語、スペイン語、ポルトガル語、アラビア語に翻訳され、右側のボックスに表示されます。

また、名前欄の下には読み上げ言語を選択するプルダウンメニューがあり、ここで選択した言語で読み上げてくれます。

まとめ

このようにNode-REDの機能を使えばプログラミングが苦手な私でも簡単にアプリケーションを作成することが可能になります。実際にコードを書いたのはjavascriptとHTMLだけです。

Bluemix、Node-REDはアイデアをすぐに形にできる分かりやすいツールだと思いますので、アプリケーション作成に是非お役立て下さい。即コグニティブです。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away