WaveNetEQでGoogle Duoの通話品質を向上(1/2)

WaveNetEQでGoogle Duoの通話品質を向上(1/2)

1.WaveNetEQでGoogle Duoの通話品質を向上(1/2)まとめ

・Google Duo通話の20%は3%以上の音声データを失い、10%の通話は8%以上の音声データを失っている
・失われた音声データを処理する手法はPLCと呼ばれDuo用の新しいPLCであるWaveNetEQが開発された
・WaveNetEQはDeepMindのWaveRNNに基づく生成モデルで実際の音声に近い音声波形を合成できる

2.WaveNetEQとは?

以下、ai.googleblog.comより「Improving Audio Quality in Duo with WaveNetEQ」の意訳です。元記事の投稿は2020年4月1日、Pablo BarreraさんとFlorian Stimbergさんによる投稿です。Google DuoはGoogleの最大8人までグループ通話可能なビデオ通話アプリケーションで、Androidにはディフォルトでインストールされてる事が多いようです。iOS、またGoogle Chromeで利用できるWebブラウザ版もありますが、今回のWaveNetEQが搭載されているのは現時点ではPixel 4搭載のGoogle Duoのみであるようなのですが、テレワークが話題になる昨今、試してみるのは面白いかもしれません。アイキャッチ画像のクレジットはPhoto by Dias on Unsplash

オンライン通話は、仕事を合理化し、愛する人とコミュニケーションするための、何百万もの人々の日常生活の一部となっています。

インターネット経由で通話する際は、通話内容は短いデータに分割されて送信されます。この分割されたデータはパケットと呼ばれます。パケットは、送信者から受信者にネットワークを介して送信され、受信者の端末で映像や音声として再構築され、連続して再生できるようになります。

ただし、パケットは相手側に間違った順番で到達したり、遅れて到着する事がよくあります。また、個々のパケットが完全に失われてしまう事も良くあり、これらは一般に音声や映像の乱れの原因となります。

この問題は、受信側で対処する必要がありますが、音声と映像の両方に蔓延する伝達問題であり、通話品質の低下に繋がります。

たとえば、Google Duo通話の99%は、パケットの損失、過度なデータの揺らぎ、またはネットワーク切断に対処する必要があります。これらの通話のうち、20%はネットワークの問題により音声時間の合計3%以上を失い、10%の通話は8%以上を失っています。


受信側が対処する必要のあるネットワーク問題の簡略図
信頼性の高いリアルタイム通信を可能にするために、パケット損失や順序不一致に対処する必要があります。

信頼性の高いリアルタイム通信を確保するには、受信者が必要とするときに欠落しているパケットを処理する必要があります。

具体的には、音声用パケットが継続的に届かない場、音声が途切れたり聞きとりにくくなりますが、同じ音声を繰り返し再生する事は、通話の全体的な品質を低下させる事になり、理想的な解決策ではありません。

失われたパケットを処理する手法は、PLC(Packet Loss Concealment:パケット損失隠蔽)と呼ばれます。

受診側のPLCモジュールは、(または映像)を再構築する際に、パケット損失、過度なデータの揺らぎ、または一時的なネットワーク切断などを原因とするデータの欠如に対処する必要があります。

これらの音声問題に対処するために、Duoで現在使用されている新しいPLCシステムであるWaveNetEQを紹介します。

WaveNetEQは、DeepMindのWaveRNNテクノロジーに基づく生成モデルであり、短く欠落した音声を補完するために大規模な音声データを使用してトレーニングされており、音声に欠落した部分があっても実際の音声に近い波形を合成できます。

Google Duo通話はサーバーを介さず端末同士で直接繋がって暗号化されるため、すべての処理はスマートフォン上で行う必要があります。WaveNetEQモデルは、通話で利用できるほど高速でありながら、現在使用されている他のシステムよりも最先端の自然な音声品質とより自然な音響を提供できるPLCです。

Google Duo用の新しいPLCシステム
他の多くのWebベースの通信システムと同様に、DuoはWebRTCオープンソースプロジェクトに基づいています。

パケット損失の影響を隠すために、WebRTCのNetEQコンポーネントは信号処理の手法を使用します。具体的には、音声を分析しスムーズに聞こえるようなデータを生成します。これは、小さな損失(20ms以下)の場合は非常にうまく機能しますが、失われたパケットの数が多く60ms以上のギャップがある場合はうまく聞こえません。

ギャップが大きい場合、音声はロボット的で反復的なものになり、残念ながら多くのインターネット音声通話で良くある馴染みのある特徴的な音になります。

パケット損失をより適切に管理するために、NetEQ PLCコンポーネントをWaveRNNの修正バージョンに置き換えます。WaveRNNは、自己回帰ネットワーク(autoregressive network)とコンディショニングネットワーク(conditioning network)の2つの部分で構成される音声合成用のリカレントニューラルネットワークモデルです。

自己回帰ネットワークは信号の連続性に責任を持ちます。受診済みデータを参照して未到着データを補完するデータを生成し、音声データの短期および中期的構造を提供します。

調整ネットワークは、自己回帰ネットワークに影響を与え、現在の音声と韻律的に一致する音声を生成します。

3.WaveNetEQでGoogle Duoの通話品質を向上(1/2)関連リンク

1)ai.googleblog.com
Improving Audio Quality in Duo with WaveNetEQ

2)duo.google.com
Try Google Duo

3)webrtc.org
Real-time communication for the web