中華IT最新事情

中国を中心にしたアジアのテック最新事情

SNS「QQ」の音声通話ノイズ低減に使われるTensorFlow

QQの音声通話のノイズ低減にグーグルのAIプラットフォーム「TensorFlow」が使われている。100種類以上のノイズを学習し、それを原音から発見し、引き算をすることでノイズを低減ものだと量子位が報じた。

 

TensorFlowを利用してIP通話のノイズを軽減

今年2021年11月16日から、オンラインでGoogle Developer Summit「Develop As One」(https://developersummit.googlecnapps.cn/intl/en_cn/)が開催されている。基調講演の他、グーグルの技術を活用したさまざまな応用例のプレゼンテーションが公開されている。

騰訊(タンシュン、テンセント)は、この中で、「Powered by TensorFlow: new audio experience in Tencent QQ enabled by AI audio denoising」(TensorFlowによるAI音声ノイズ軽減により可能になったテンセントQQの新たな音声体験」というプレゼンテーションをおこなっている。

これは、SNS「QQ」の音声通話、ビデオ通話に、TensorFlowを使ってノイズを軽減し、クリアな通話を可能にした応用例を紹介したものだ。


www.youtube.com

▲テンセントのノイズ低減に関するプレゼンテーションは、YouTubeにも転載されている。ただし、言語は中国語で英語字幕などには対応していないようだ。

 

大きなノイズ低減効果を示すAIノイズ低減

音声通話、ビデオ通話は、コミュニケーションアプリ、SNSアプリの必須機能になってきている。iOSのアップストアのゲームを除く中国でのアプリダウンロード100位のうち7割程度が音声通話、ビデオ通話の機能を搭載している。

いわゆる回線品質に関しては、ほぼ問題がなくなっているが、それでも取りきれないのが話者の周辺ノイズだ。特に屋外から通話をした場合、背景音がうるさく、聞き取れないことがある。このため、背景音のノイズ低減が大きなテーマになっている。

一般的なノイズ除去法は、フィルターによるものだ。簡単に言えば、背景音ノイズとしてありがちな音の周波数を調査して、その周波数の音のボリュームを下げるというもの。簡単な方法であり、演算負荷も小さく実用的だが、ノイズ低減効果が弱いことと、あらかじめ想定をしてないノイズに対しては対応ができないという問題がある。

そこで、主流になってきているのが、AIを活用したノイズ低減だ。テンセントのQQチームは、このAIノイズ低減に、グーグルのAI開発プラットフォーム「TensorFlow」(テンサーフロー)を活用した。

 

人間の声以外を学習して引き算す

AIノイズ低減の基本的な考え方は、原音から「人間の話し声」と「それ以外のノイズ音」を分離することだ。この分離を行い、人の話し声だけを残せば、クリアな通話が可能になる。

そこで、QQチームは、キーボードの打鍵音、ドアを閉める音、ファンのノイズなど、人が通話をするシーンでありがちな100種類以上のノイズ音を収集して、それぞれをTensorFlowで開発したAIモデルが判別できるように学習を進めた。

原音から、このようなノイズを認識し、波形データから引き算することで、ノイズ低減を行う。

f:id:tamakino:20211221101009p:plain

▲原音(左)から、ノイズ音を除去し(右上)、音質を上げて(右下)出力する。これを通話中にリアルタイムで演算をする。

 

演算負荷の小さいTensorFlow Liteを利用

ところが問題は、この演算は負荷が高く、スマートフォンには荷が重く、しかも通話というリアルタイム演算をしなければならないことだ。そこで、TensorFlow Liteが利用された。

TensorFlow Liteはスマートフォンで実行できる軽量版TensorFlowで、学習は元のTensorFlowで行い、それを軽量版のTensorFlow Liteに変換することで、スマートフォンで実行可能な軽量版AIモデルがつくれる。

TensorFlow Liteは、量子化により演算負荷を軽減している。これはTensorFlowが32ビットで学習した重みづけパラメーターを、8ビットに変換することにより、演算量を減らすというものだ。簡単に言えば、四捨五入した概算モデルをつくることで軽量化をする。

f:id:tamakino:20211221101012p:plain

▲教師モデル(TensorFlow)と生徒モデル(TensorFlow Lite)の明瞭度の違い。教師モデルよりは明瞭度が低下するのは仕方ないが、低下ぶりがじゅうぶんに許容範囲に入っていると判断され、QQに実装された。

 

試験データを作成し、効果を測定

問題は、このTensorFlow Liteで実用的なノイズ軽減ができるかということだ。そこで、QQチームは、クリアな音声と100種類のノイズを合成した試験データを作成した。SN比(音声とノイズの比)を0dB、5dB、10dB、15dBと4種類の試験データを測定し、TensorFlow(教師モデル)とTensorFlow Lite(生徒モデル)のそれぞれで、明瞭度指標であるSTOI(Short Time Objective Intelligibility)、PSEQ(Perceptual Evaluation of Speech Quality)などを測定した。

TensorFlowでの学習を進めた結果、このような指標が実用レベルに到達したと判断し、QQに実装をすることとなった。

f:id:tamakino:20211221101006p:plain

▲試験データを使い、SN比を変えて、明瞭度指標の測定を行った。SN比が高くなる(ノイズが小さい)ほど明瞭度はあがる。

 

人が意識していないところで使われるAIテクノロジー

この開発を紹介したページ(https://mp.weixin.qq.com/s/F_QrRFPiEzG3rdyxU_nK2w)の下の方には、ノイズ低減処理をしていない原音声とノイズ処理をした通話音声の2つの音声データが公開されている。ノイズ処理後の音声を聞くと、話出しの音声がじゃっかん歪むような印象を受けるが、ノイズは見事なまでに取り除かれており、話がクリアに聞こえる。

面白いのは、QQで通話をしているほとんどの利用者が、このようなAIテクノロジーが使われていることに気がつかず、「そんなものだ」と思って使っている。背景音ノイズが乗らないということを気にせずに使っているし、気がついたとしてもマイクの性能がいいぐらいにしか思わないかもしれない。

AIテクノロジーは、このように利用者に気がつかない部分にすでに多く使われていて、利用者に快適なユーザー体験をもたらせている。