多言語音声翻訳技術で「言語の壁」をなくす。NICTの音声認識・機械翻訳・音声合成APIを試してみた

このエントリーをはてなブックマークに追加

外国人に道を尋ねられたときや海外旅行にいったとき「自動で翻訳してくれるツールがあったらいいのに…。」と、言葉の壁のせいで、困っている人を手助けできないなんてこと、多いですよね。

国立研究開発法人情報通信研究機構(NICT)は、音声認識や機械翻訳、音声合成などの技術を駆使し、世界から言葉の壁をなくすため、多言語音声翻訳技術の研究開発、普及・展開に取り組んでいる団体のひとつです。

NICTは、世界を変える製品・サービスを募集すべく、試作品(PoC)コンテストを開催。本コンテスト参加者に向けて、最先端技術の詰まった3つのAPIを無償で開放しています。

>> 試作品(PoC)コンテストへの参加はこちらから

API使用までの一連の流れ

コンテスト用に開放されているAPIは、音声認識、機械翻訳、音声合成の3種類。今回の検証は、多言語音声翻訳コンテスト用に公開されているサンプルコードを利用し、進めていきます。

このサンプルコードでは、

  1. アプリケーションIDとシークレットキーから、サンドボックスサーバーのアクセストークンを取得
  2. ファイルから音声を認識しテキストを生成
  3. 生成されたテキストをあらかじめ選択しておいた言語に翻訳
  4. 翻訳データから、音声を合成

という一連の流れがおこなわれています。

実際にサンプルコードを実行するためには、下記の作業が必要です。

サンドボックスサーバー利用の申請を出し、アプリケーションIDとシークレットキーを取得

試作品(PoC)コンテストに応募できる作品は、フェアリーデバイセズ株式会社が提供するサンドボックスサーバーを利用したものに限られているため、サンドボックスサーバーの利用申請が必須となります。取得したアプリケーションIDとシークレットキーは、後ほどサンプルコード上に入力していきます。

ノイズの少ない環境で音声を録音+録音データの整形

今回の検証では、iPhone SEの内臓マイクで録音した音声を使用しました。

音声認識APIで認識できるデータは、16kHz、16bit(リトルエンディアン)、channel 1の リニアPCM形式のみです。

たとえば、録音した音声のデータが44.1kHz、 16bit(リトルエンディアン)、channel 1の .wav形式ファイルの場合、APIが正常に動作するよう、データの整形をおこなっていく必要があります。

プログラムビルド・実行

サンプルコード上にアプリケーションIDシークレットキーを入力し、認識させたい音声データが何語なのか選択・何語に翻訳したいか選択・音声合成したい言語を選択し、準備完了。

次は、実行後の結果を見ていきます。

もはや通訳不要?予想をはるかに上回る検証結果

さっそくAPIの精度をみていきます。

今回使用する音声データは、「道に迷っています。誰か助けてください。」という内容のもの。

音声認識の結果は以下。


result:{
    "?xml": {
        "@version": "1.0",
        "@encoding": "UTF-8",
        "@standalone": "no"
    },
    "STML": {
        "@UtteranceID": "0",
        "@Version": "1.0",
        "User": {
            "@ID": "N/A"
        },
        "SR_OUT": {
            "@Language": "ja",
            "NBest": {
                "@Order": "1",
                "s": {
                    "@Delimiter": "",
                    "@Duration": "1",
                    "#text": "道に迷っています誰か助けてください",
                    "Word": [
                        "道|ミチ|道|名詞-一般||||",
                        "に|ニ|に|助詞-格助詞-一般||||",
                        "迷っ|マヨッ|迷う|動詞-自立|五段・ワ行促音便|連用タ接続||",
                        "て|テ|て|助詞-接続助詞||||",
                        "い|イ|いる|動詞-非自立|一段|連用形||",
                        "ます|マス|ます|助動詞|特殊・マス|基本形||",
                        "|||SENT-START-END||||",
                        "誰|ダレ|誰|名詞-代名詞-一般||||",
                        "か|カ|か|助詞-副助詞/並立助詞/終助詞||||",
                        "助け|タスケ|助ける|動詞-自立|一段|連用形||",
                        "て|テ|て|助詞-接続助詞||||",
                        "ください|クダサイ|くださる|動詞-非自立|五段・ラ行特殊|命令i||",
                        "|||SENT-START-END||||",
                        "|||UTT-END||||"
                    ]
                }
            }
        }
    }
}
道に迷っています誰か助けてください

ある程度整った環境で録音した場合、かなり高精度の認識が可能なようです。

続けて翻訳の結果はこうなりました。


result: {
  "?xml": {
    "@version": "1.0",
    "@encoding": "UTF-8",
    "@standalone": "no"
  },
  "STML": {
    "@UtteranceID": "0",
    "@Version": "1.0",
    "User": {
      "@ID": "N/A"
    },
    "MT_OUT": {
      "@SourceLanguage": "ja",
      "@TargetLanguage": "en",
      "NBest": {
        "@Order": "1",
        "s": "Someone's lost, please help me."
      }
    }
  }
}
result: Someone's lost, please help me.

機械翻訳では、日本語にありがちな主語のない文章だったため、Someoneが主語として補完されています。主語なしの文章や、指示語の多い文章など、日常的な話し言葉に近いほど難易度が上がります。その中で、全体的な意味合いが通じるレベルにまとめ上げているのはさすがの一言に尽きます。

いよいよ3つめのAPI、「音声合成API」を検証していきます。

結果として、このような音声が生成されました。

音声合成と聞くと、カタコトの音声を思い浮かべますが、英会話のCDや車内アナウンスと違いが分からないくらい流暢な音声に仕上がっています。

アイデア × 音声翻訳技術で「言葉の壁」をなくす

今回のAPIの精度検証で、現時点における音声認識と機械翻訳、音声合成のレベルが見えてきました。一昔前までは、音声翻訳技術の精度は低く実用的なものはかなり限られていましたが、現在では人工知能の進歩などによって実用レベルになっていることがわかります。

実際、「VoiceTra」(NICT)や「ili」、「POKETALK」など多くの自動翻訳機はすでに開発・実用化されており、国際的なコミュニケーションに役立てられています。

NICTはアイデア次第ではもっと面白い活用方法があると考え、アイデアコンテスト・PoC(試作品)コンテストの開催しています。

NICTが挙げているアイデア例には、

  • 対面での接客を想定した双方向コミュニケーション対応のタブレット型翻訳機
  • 通訳なしで訪日外国人を誘導するメガホン型翻訳機
  • 病院で使用する外国人患者とのコミュニケーションに特化した翻訳アプリ

といったものがあります。

成立目前と言われている外国人労働者受け入れ拡大など、今後も日本国内で外国語に触れる機会が増えてきているため、音声翻訳技術の重要性は今後も増していきます。

是非一度、音声翻訳が活用できる場面を考えてみてはどうでしょうか。

>> 試作品(PoC)コンテストへの参加はこちらから