WebRTC SFU Sora 3.0 新機能紹介 Part.2
本日 8/31 に WebRTC SFU Sora 3.0 をリリースした。詳細についてはリリースノートを確認していただきたい。
この技術で CDN を使う事ができるようになるため、 WebRTC では限界のあった配信数を大幅に増やすことができますsora.shiguredo.jp
さて、前回の Sora 新機能紹介 Part.1 につづいて、Part.2 ではビットレート指定と PCMU というコーデックへの対応について話をしていく。
配信者ビットレート指定
WebRTC では回線速度が許す限りネットワークを活用するという仕組みが取られてきた。ただ現実はそうもいかない。ほどほどの回線でほどほどの画質でといった需要があるからだ。
Sora では今回、配信者側が配信時にネットワークの転送量を指定できるようになった。例えば 300kbps 程度に抑えた映像で配信したいという要望を満たすことができる。
WebRTC P2P の場合かなり全力で回線を使うため 2000kbps とかを利用してしまう場合もある。ただその場合はネットワークの負荷も、受ける相手は高解像度の映像を受けてしまうためマシンの負荷が高くなる。
更に複数画面となる場合はもうどうしようもなくなる。必要そうな映像は高いビットレートで配信。ほとんど必要ないのは前回紹介したスナップショット機能で配信。ほどほどは低ビットレートで配信などが指定できる。
今後 Simulcast という配信者が高画質と低画質の二種類を配信するという方式に備えて、ビットレートのコントロールを配信者側で意識できるようになるというのは大きい。
ちなみに Chrome ではすでに利用可能だが、 Firefox は 9 月上旬に出る 49 から利用可能になる機能だ。
PCMU コーデックへの対応
WebRTC では音声コーデックといえば Opus というくらい Opsu の選択肢しかない状態だ。Sora でも今までは Opus のみの対応で、実はそれ以外の対応する予定はなかった。
ここで PCMU 方式への対応を何故したのかという理由は、実は Google Compute Plattform の 1 機能である Google Speech API との連携を意識しての対応だ。
Cloud Speech API provides fast and accurate speech recognition, converting audio, either from a microphone or from a…cloud.google.com
WebRTC SFU と Google API の連携については以前まとめたので、そちらをご覧いただければと思う。
ここでは、 Google Speech API と PCMU の関係について解説していきたい。Google Speech API が対応している音声はいくつかある。可逆圧縮の FLAC 、生音源の PCM 、そして不可逆圧縮の PCMU だ。つまり、PCMU 音声から文字列に書き起こすことが可能になる。
音声解析技術は大変むずかしい技術だと認識している。その技術だけで会社が成り立っていくレベルだ。流石に映像のリアルタイム配信と音声解析を同時に行うことは難しい。
Google Speech API は非同期で音声を送り、解析したタイミングからデータを受信するという仕組みが利用可能だ。
これを WebRTC SFU とうまく組み合わせることで、リアルタイムな字幕、そして Google Translate API と組み合わせてリアルタイムな字幕翻訳が可能になる。
WebRTC を利用したリアルタイム字幕翻訳の実現に向けて PCMU 形式での音声の保存に対応した。保存した PCMU ファイルを Google Speech API を利用して解析することで、音声からの文字起こしが可能になる。
次の Sora ではリアルタイム字幕翻訳に向けて WebRTC と Google API をうまく統合していければと考えている。
難しい技術がここまで気軽に使えるようになったのは本当にすごいことだ。