ニュース

【GTCJ2015】ヤフーの音声認識サービス「YJVOICE」におけるディープラーニングの活用事例

スマートフォン向けアプリ18個で活用

2015年9月18日 開催

 GTC(Gpu Technology Conference) Japanの基調講演リポート記事(http://car.watch.impress.co.jp/docs/news/20150920_722084.html)でも紹介したように、9月18日に東京港区の虎ノ門ヒルズにおいて開催された「GTC Japan 2015」は、米国でのイベントと同じようにディープラーニングが主要なテーマになっており、NVIDIAやそのパートナー企業がディープラーニングに関して多数の講演を行った。

 その中でも大きな注目を集めたのは、日本での検索サービスではシェアNo.1を誇るヤフーが、国内で提供する音声認識サービス「YJVOCIE」におけるディープラーニング活用事例の講演だ。YJVOICEは、ヤフーが国内で提供しているスマートフォン向けアプリ(iOS、Android用)の18個で採用されている音声認識サービスで、多くのユーザーがそれとは知らず使っているのではないだろうか。ヤフー株式会社 Yahoo! JAPAN研究所 磯健一氏の講演では、そのYJVOICEでディープラーニングがどのように使われているのか、その仕組みなどに関しての説明が詳しく行われた。

ヤフーのスマートフォンアプリの音声認識「YJVOICE」にディープラーニングの仕組みを導入

 おそらくCar Watchの読者でヤフーを知らない人はいないと思うが、念のため説明しておくと、ヤフーはソフトバンクと米国の検索会社Yahoo!との合弁により設立された会社で(持ち株比率はソフトバンク 36.4%、Yahoo! 35.5%)、日本最大の検索サイト「Yahoo! Japan」をはじめとし、様々なインターネットサービスを提供している。検索以外のサービスとして、地図やネットオークション、乗換案内などを提供しているが、現在ではそれらのサービスをWebサイトからだけでなくiPhoneやAndroidなどのスマートフォンのアプリの形でも提供を行っている。

 磯氏によれば今回紹介されたヤフーの音声認識サービス「YJVOICE」は、そうしたヤフーが提供するサービスを利用するためのスマートフォンアプリの中に組み込まれる形で提供されているという。例えば、カーナビアプリであれば、目的地を検索するときに、文字の形で入力することもできるし、音声アシストと呼ばれる機能を呼び出して、マイクに向かって発生すると、それが文字の形で表示されて検索するという形になっている。その機能の裏側で動いているのがYJVOICEということになる。

 磯氏によれば、このYJVOICEは最近スマートフォンで一般的に利用されている音声認識の機能と同じように、音声認識はユーザーのスマートフォン側では行われておらず、ユーザーが発生した音声データをサーバーにアップロードし、それをサーバー側で解析し、その結果をユーザーのスマートフォンに返すという一連の作業が行われている(こうした方式を分散型音声認識と呼んでいる)。現在の音声認識はほぼ例外なくこうした仕組みになっており、Appleが提供するSiriも、Googleが提供するGoogle音声検索などもいずれも同じ仕組みになっている。

Googleのディーン上級フェローがディープラーニング(深層学習)について講演

http://car.watch.impress.co.jp/docs/event_repo/gtc2015/20150320_693719.html

顔認識や音声認識の誤認識を大幅に低下させる魔法の種とは?(Baidu)

http://car.watch.impress.co.jp/docs/event_repo/gtc2015/20150323_693951.html

 今回磯氏は、このYJVOICEの仕組みをもう少し詳しく解説した。磯氏は「ユーザーが発話を完了した直後に認識結果を返せるようにするため、10ミリ秒ごとに音声の断片データをパイプライン処理している」と述べ、10ミリ秒(1/100秒)ごとにデータを細分化してアップロードし、それをパイプラインのデータとして処理を行っていることを明かした。

 そのパイプライン処理では、音声断片が音声か背景音かを判別する音声検出、音声断片の発音記号を判別する音響モデル、そしてその発音記号列を単語列に変換(要するにカタカナを漢字などに変換するIMEのような作業を行う)する言語モデルの3つのプロセスを実行。磯氏によれば、このうちディープラーニングが応用されているのが音声検出と音響モデルとのことだ。

ヤフー株式会社 Yahoo! JAPAN研究所 磯健一氏
YJVOICEはスマートフォン向けの音声認識サービス
近年スマートフォンで一般敵に採用されている分散型音声認識
YJVOICEが導入されているスマートフォンのアプリ、検索やカーナビソフトなどが該当
YJVOICEの音声認識エンジンの仕組み
音声認識におけるディープラーニングの利用動向

GPUを利用したDNN学習により、雑音への耐性を上げていくことなどが可能に

 具体的には、DNN(Deep Neural Network)と呼ばれるディープラーニングの手法を応用し、これまでのサービスで蓄積した大規模な実音声データとその正解テキストをDNNで学習させるという。磯氏によれば「ヤフーのサービスにはカーナビのように、自動車での利用も考えているアプリもあるので、自動車内雑音などを重畳したデータも学習に加えて、耐雑音性能を改善する取り組みをしている」とのことで、すでに今年の5月から実サービスに利用されており、効果を上げている。

 磯氏によれば、DNNの学習に関しては、Theanoというディープラーニングのフレームワークを利用しており、自社で学習データと学習プログラムを用意して学習させて精度を上げているという。具体的には用意したサンプルデータをランダムに並べて、GPUメモリに収まるサイズに分けて、それをGPUに流し込んで演算していく。

 GPUを利用してDNN学習を行う効果についても説明した。CPUと比較した場合、IntelのXeon E5-2690/2.9GHzと、最新のNVIDIAのGPUであるTITAN Xでは、実に27.3倍、TITAN Xが高速に演算できたという。ただ、実際の学習時間はものすごくかかっており、1000時間強の音声データを用いてのDNN音響モデルを学習すると、Tesla M2090でおよそ1カ月かかったという。それに対して最新のTITAN Xでは約2週間だったということだ。

 なお、磯氏によれば、DNNの内部に用意した隠れ層(要するにニューラルネットワークの複雑さのこと)を増やしていくと、認識精度は上がっていったという。したがって、隠れ層を増やせば増やすほど効果はあるとのことだが、もちろんその分学習にかかる時間は増えることになるので、それはトレードオフになる。そのほか、事前学習をさせるかどうかに関してもテストしたそうだが、実際にはほとんど効果はなかったという説明が行われた。

YJVOICEのDNN音響モデル
DNN音響モデルの仕組み
YJVOICEのDNN音声検出
DNN学習の実際
GPU学習時間の比較
GPU学習に要する時間
学習データ量の比較
DNN隠れ層のサイズによる認識精度比較
事前学習の効果、ほとんどないと磯氏
DNN学習のまとめ
ディープラーニング前と後の比較。ノイズがある環境では学習前は正しく認識できなかったのに、学習後は正しく認識できた

(笠原一輝)