Spika for Business×Microsoft Translator Text APIで翻訳Botを作ってみた

はじめに

弊社製品「Spika for Business」とコグニティブサービスの活用の可能性の一つとして、入力内容を自動で翻訳してくれるチャットボットを作成しようと考えました。

※「Spika for Business」(以下、Spika)とは・・・
自由なカスタマイズができるリアルタイムチャットソリューションです。

今回は以下のサービスを使用します。
・Microsoft Text Analytics API(言語判定)(以下、Text Analytics API)
・Microsoft Translator Text API(翻訳)(以下、Translator Text API)
・Microsoft Azure Functions(API作成)(以下、Azure Functions)

機能概要

Spikaの指定ルーム上で入力された文章を日本語か英語か判断し、日本語であれば英語に
英語であれば日本語に翻訳を行い、翻訳後の文章を返すBotを作成します。

Azure FunctionsでAPIを作成する

Azure portalでAzure Functionsのリソースを作成します。

・Azure Functionsとは・・・
C#、F#、Node.js、Python、PHP などの様々な開発言語を使用して、開発を行うことができます(今回はnode.jsを使用しました)。Azure Functionsにはコード全体を考えることなく、実行したい小規模なコード (“関数”) を実行できるという特徴があり、これにより開発の効率を高めることができます。
(参照https://docs.microsoft.com/ja-jp/azure/azure-functions/functions-overview

以下がソースコードの編集画面です。


Azure Functionsを使用し、Text Analytics APIとTranslator Text API、SpikaをつなぐAPIを作成していきます。このAPIでは主に以下の4つの処理を行っています。
順に説明していきます。

①Spikaからのデータの受取
SpikaのWebHook機能を利用して、SpikaからAPIにデータをPOST送信しています。
API側ではSpikaから受け取ったデータから入力したテキストと、入力したユーザ名を取得します。

②入力された文章の言語の判定
ユーザがSpikaの該当ルームに入力した文章が英語か、日本語かを判断するために
Text Analytics APIを利用します。

・Text Analytics APIとは・・・
文章を渡すとその文章の、言語の種類、キーフレーズ、感情のスコアを返してくれます。今回はこの要素の中の「言語の種類」を取得することで、日本語か、英語かの判断が可能となっています。

③入力された文章の翻訳
今回のBotのメイン部分、翻訳機能にはTranslator Text APIを使用しています。
Translator Text APIを使用するためにまずトークンを作成します。

トークンを作成後、そのTranslator Text APIのトークンに翻訳を行う文章をget送信することで、Translator Text APIから翻訳後の文章が返ってきます。

④spikaへの翻訳後の文章送信
最後に③で取得した翻訳後の文章データをSpikaにPOST送信します。

Spika側で設定した受信用WebHookにJOSN形式のデータを送信します。
送信するデータには以下のような要素をもたせます。

これでSpika上で入力した文章を翻訳し、翻訳後の文章をSpikaに渡すAPIが完成しました。

 

翻訳ルーム(翻訳Botがいるチャットルーム)を利用してみる

まずは日本語から。
「一緒に昼食を食べに行きませんか?」と入力すると「Go to eat lunch together?」と返してくれました。

 

次に英語で「Let’s go eat sushi.」と入力すると「寿司を食べに行きましょう。」と返してくれました。

 

まとめ

今回翻訳機能をもつBotを作成してみて、コグニティブサービスを利用することで、日常で使用しているツールや道具がとても便利になると思いました。また今回試した翻訳機能はチャットツールだけでなく音声サービスや映像サービスなどにも応用できると感じ、日々の生活の中でもコグニティブサービスを活かすようなアイデアを考えていくことが大切だと感じました。


「Spika for Business」を使用してみませんか?

ご興味持った方はisana.netまでお問い合わせ下さい。
詳細・お問い合せはこちら

%d人のブロガーが「いいね」をつけました。