News/サービスを組み合わせてコミュニケーションを広げよう!(口語翻訳と音声合成の組み合わせ)

サービスを組み合わせてコミュニケーションを広げよう!(口語翻訳と音声合成の組み合わせ)

2020年の東京オリンピックでは様々な国から多くの外国人が日本に訪れるかと思います。
街を歩いていて、ガイドブック片手にリュックサックを背負った人が、道や行きたい場所を聞いてくる機会も増えるんじゃないでしょうか。
そんな時アタフタして

「Sorry I can't speak english...」

と言いながらササッと立ち去るのは何とも恥ずかしいものです。


・「相手の話した外国語を日本語の文章で読みたい(聞きたい)」
・「自分の話した日本語(文章)を英語やその他の言語で相手に伝えたい」
・「言ってる事は分かるけど、どうやって説明すればいいか分からずモヤモヤしてしまう」

外国人慣れしていない苦手意識も相まって、適切に対応できず悔しい思いをした方も多いんじゃないでしょうか。
こんな時こそRECAIUSの出番です。

現在提供されているRECAIUSAPIサービスはそれ1つでも十分な力を発揮しますが、
自分の目的に合わせて組み合わせる事で利用用途の幅をさらに広げる事ができます。

今回は、「日本語の文章を英語に翻訳して、音声として出力する」というケースを想定したアプリケーションを作ってみましょう。
説明にあたってJavaのサンプルアプリケーションを用意しましたので、このサンプルに沿って進めます。

必要なAPI

先述の「日本語の文章を英語に翻訳して、音声として出力する」というケースをアプリとして実現する場合は、以下のAPIを用います。

・認証API
  どのサービスを利用するにも必ず必要となります。

・口語翻訳API
  日本語を英語(またはその他の言語)に翻訳させるために利用します。

・音声合成API
  翻訳した言語を音声として再生するために用います。

利用の流れ

1.認証トークンの取得
2.口語翻訳APIサービスの関数の呼び出し
3.音声合成APIサービスの関数の呼び出し
4.認証トークンの破棄

上記の手順で処理を実装します。

※デベロッパー登録を事前に済ませておいて下さい。
※手順1, 4の認証トークンの取得と破棄については本記事では割愛します。
(詳細は認証APIの利用方法の記事を御覧下さい。)
※手順2, 3の各APIサービスの利用方法については個別でBlog記事がありますのでそちらも参考にしてみて下さい。
(認証APIを用いた音声合成の利用方法口語翻訳APIの利用方法)

サンプルアプリの解説

ここからは、実際のソースコードに沿って処理内容の解説を行います。

共通パラメータ

今回は認証API、口語翻訳API、音声合成APIの3種類のAPIを利用しますが、どのAPIでも共通で使用するものや全体を通して必要になるものを34〜64行目で定義しています。

口語翻訳で必要なパラメータ

71〜86行目で口語翻訳APIを呼び出す際に使用するパラメータを定義しています。
詳細については口語翻訳APIドキュメントや、利用方法についてのBlogを参考にして下さい(口語翻訳APIの利用方法)。

音声合成で必要なパラメータ

93〜100行目で音声合成で必要なパラメータを定義しています。
詳しい説明は実際に使用している箇所で説明します。

トークンの取得

119〜176行目で認証トークンを取得します。
処理自体は認証APIの利用方法時と同じ内容です。

ただし、135行目で指定しているサービスが2つ設定されています。 今回はそれぞれのサービス名、口語翻訳"machine_translation"と音声合成"speech_synthesis"を指定しています。

口語翻訳APIの呼び出し

182行目から口語翻訳処理が始まります。
処理内容は口語翻訳APIの利用方法の時と同じ内容です。

翻訳結果の英文はこの後の音声合成で必要なため、変数で保存しておきます。(246行目)

音声合成APIの呼び出し

261行目から音声合成処理になります。
翻訳された英文を音声にして再生します。 リクエストボディには以下のパラメータを指定します。

キー 説明
plain_text 任意の文字列 音声として再生させる文章を指定します。
今回は翻訳された英文を指定します。
lang en_US 音声合成元の言語を指定します。
今回は英語を再生するので、"en_US"を指定します。
speaker_id en_US-F0001-H00T 話者IDを指定します。
今回は英語のネイティブスピーカーである"ジェーン:女性"のIDを指定します。

(話者の種類や声色などは今回固定しています。その他の種類については音声合成APIドキュメントを参照して下さい。)

最後に

今回のサンプルでは、元になる日本語を英語に翻訳し、さらにそれを音声に変換して再生するというAPIの組み合わせによる例を紹介しました。 もちろんその逆の、英文を日本語に翻訳してそれを音声に換えるといった事も可能です。
コミュニケーションの方法は多種多様ですが、音声(会話)を使った方法は効果や意思を伝えるツールとしては一番ではないでしょうか。

RECAIUSでサポートしている言語はまだ少ないですが、 今後より多くの言語を利用可能にし、2020年の東京オリンピックのような外国人が多く訪れる環境であっても 頼りになるパートナーとして利用してもらえればと思います。

更新情報はTwitterでもお知らせしますので、是非Twitterのフォローをよろしくお願いします。
@recaius_dev_jp