ネット会議システムの音声遅延
さる方から提案を受けて、
「ネット会議(ZOOM)とかってどのくらい音声の遅れがあるの?」
確かに、使っている感じで、あ、ちょっと遅れてるな(喋ったことが相手に届くまでに時間差がある)というのはなんとなくわかっていた。でも実際に「どのくらい」つまり何ミリ秒?っていうのは測ったことはなかったな。
ということで、とりあえず
ZOOM、Skype、Teamsについて
遅れを測ってみました。
単位はミリ秒(=1/1000秒、つまり1000ミリ秒で1秒です)、またこの測定結果は片方向なので、たとえば200ミリ秒の遅れがあると、まず200ミリ秒かかって相手に伝わって、相手の反応がまた200ミリ秒かかって返ってくる、ということになります。
測定条件
- 時間 : 日本時間午前2時ごろ
- 使用機材
送り側 : Windows 10 / Surface Book 2にオーディオインターフェース TASCAM 20x20 を介してマイクを接続
受け側 : Windows 10 / 自作デスクトップPC + XMOSというインターフェースを介した自作DAC
- ネットワーク - すべて有線接続
送り側 : NTTフレッツ光 + ぷらら、ルータはフレッツ提供のOMU内蔵型
受け側 : 同 + ZOOT (IPv6 IPoEサービス)、ルータは YAMAHA RTX830
物理的な場所は一緒だが、ISPを分けることで仮想的に離れたネット環境を再現
- 測定機材
デジタルストレージオシロスコープ OWON SDS1102
- 測定方法
送り側のヘッドフォン出力をオシロスコープのCH.1に、受け側のヘッドフォン出力をCH.2に接続し、マイクの前で手を叩いてみて、CH.1の波形をトリガーにしてCH.2の波形がどのくらい遅れているかをオシロスコープ上で測定する
かなり理想条件で測定しているので、WiFiだと20ミリ以上、携帯キャリア経由だと50ミリ~100ミリ以上、そしてPCじゃなくてスマホだと(機種にもよりますが)さらに遅れは拡大すると思います。
結果 - ZOOM(有償アカウント)
黄色が送り側、青色が受け側で(わかりますよね)、横軸が時間軸でひとマスが20ミリ秒なので、
175ミリ秒
くらいかな。何度か測ってもほとんど動かず。
結果 - Skype
ZOOMよりも少し遅いですね。
230ミリ秒強
というところでしょうか。ZOOMと60ミリ秒近く差が開いています。ただ体感的にはほとんど変わりません。
結果 - Microsoft Teams
一見するとSkypeとほぼ同じ?に見えますが、実はかなり遅れて聞こえるため、このグラフはひとマス50ミリ秒です。なので、
510ミリ秒
となってしまいました。うーん、500ミリ秒つまり0.5秒は意外な結果だなー。ヘッドフォンで受け側を聞いていても、かなりずれる感じです。
まとめ
遅れの少ない順は、テストした順と同じになり、
ZOOM ー Skype ー Teams
です。もちろん、条件を変えれば値も変わるかもしれません。ネットワークは場所によってもプロバイダによっても品質もバンド幅も変わります。なのであくまで同じ条件下での参考値です。
にしてもTeamsには個人的にもう少しがんばってほしかったなー。というか、ZOOMの人気の一端はこの遅れの少なさなのかもしれない、とちょっと思いました。
引き続きほかのサービスも測定したいと思います。また「これ測ってみて!」というのがありましたら、ぜひ教えてください(アカウントを2つ作れるものに限られますが)。
WebRTCを試してみました(4/2追記)
2020/4/2追記
ふと思い立って、ブラウザベースのリアルタイムコミュニケーションフレームワークであるWebRTCを試してみました。なぜかSurface Book 2上では動かなかったので、送り側はMacBook Pro + Chromeです。
WebRTCは、本家 webrtc.org にある FirebaseRTCという、Google Firebaseクラウドサービス上でサーバーを構築するものを使いました。ほかのネット環境などは上記と同じです。これサクッと構築できるので、たとえば自社ポータルの中に作り付けるにはらくちんです。で、遅延はというと、
おお、なんと、ZOOMとほぼ同レベルの
170ミリ秒!
でした。速いな。まあWebRTCはサーバーを立てていろいろ仲介するにせよ、基本的にはクライアント同士が直接通信する仕組みです。もしかしたらこの遅延がこの環境上での最速なのかも?まあ送り側がMacBookという違いはあるかもですが。
ただ、WebRTCはビデオ解像度もそして音声圧縮の方法も選べるはずなので、いろいろ試す価値はあるのかもしれません。