WhatsAppやMessengerなどのリアルタイムコミュニケーション(RTC)アプリを開発するMetaが、RTC向けの低ビットレートでありながら高い音質を目指したオーディオコーデック「MLow(Meta Low Bitrate)」を発表しました。

MLow: Meta's low bitrate audio codec - Engineering at Meta

https://engineering.fb.com/2024/06/13/web/mlow-metas-low-bitrate-audio-codec/

スマートフォンのRTCアプリで音声通話を行う場合、重要なのがコーデックです。一般的な通話でキャプチャされる音声のビットレートは、モノラル・サンプリングレート48kHz・ビット深度16ビットだとおよそ768kbpsになります。しかし、スマートフォンで快適に通話をするためには、音声をエンコードして圧縮し、ビットレートを下げる必要があります。

記事作成時点で、RTCアプリで多く使われているコーデックはOpusです。Opusは2012年にリリースされたオープンソースのコーデックで、無料で5ミリ秒という低レイテンシを実現しています。

無料で5ミリ秒という超低遅延を実現する非可逆音声圧縮コーデック「Opus」、何がすごいのかまとめ - GIGAZINE



Opusコーデックを採用したRTCアプリを複数開発するMetaによると、実際の使用状況では通信の一部でネットワーク接続が不良になることがあるとのこと。ネットワークの品質が低下すると、ネットワークの輻輳(ふくそう)を避けるため、アプリは自動的にコーデックのビットレートを下げるそうですが、そうするとどうしても音質が劣化してしまいます。特に近年ではビデオ通話も一般的になったため、ネットワーク品質が悪くなると音声データの帯域幅が狭くなってしまうため、ビットレートはさらに低下しがちになります。

以下は一般的な通話でキャプチャされた音声の例。

そして、ネットワーク環境が悪化し、Opusで6kbpsという低ビットレートでエンコードされた音声が以下。元の音声と比較すると、クリアで自然な音声からはほど遠い品質になっていることがわかります。

そこで、MetaはRTC向けの新しい音声コーデックとしてMLowを開発しました。MLowはOpusよりも音声品質が2倍優れていながら、計算コストがOpusよりも10%低いのが特徴だとのこと。

MLowは入力音声を低周波数帯域と高周波数帯域に分割し、それぞれを個別にエンコードします。そして、各帯域は共有情報を利用して圧縮効率を向上し、レンジエンコーダーでさらに圧縮してペイロードを生成します。デコーダではその逆の処理を行い、出力オーディオ信号を生成します。



以下は通話音声品質テスト「POLQA MOS」のスコア(縦軸)とビットレート(横軸)で、MLow(✕・黒)とOpus(▲・赤)を比較したグラフです。25kbpsでは同じ品質ですが、低ビットレート帯ではMLowの方が優れた音質であることが示されています。



元音声・Opus・MLowで聞き比べると、Opusは音質が大きく劣化しているのに対して、MLowは元音声にかなり近い音質を保てていることがわかります。

元音声Opus 6kbpsMLow 6kbps  

Metaによると、すでにInstagramとMessengerの通話機能にMLowを完全導入済みで、WhatsAppにも段階的な導入を進めているとのこと。Metaは「私たちは、すべてのユーザーが高品質な音声通話をより簡単に行えるように努めており、今後もさらに多くの情報を共有できることを楽しみにしています」とコメントしました。