ブラウザから流れる音声のサンプリングレートを調べたい!

2024年2月8日

はじめに:Web上のサンプリングレートはいろいろ

皆さんはブラウザで再生される音声の「サンプリングレート」について考えたことはありますか?サンプリングレートとは、音声ファイルが1秒間にどれだけのデータを含んでいるかを示す指標で、情報の時間的な細かさを表します。

調査したところ、ウェブ上の音声には統一された基準がないようです。同一サイト内で異なる数値が用いられることさえあります(YouTubeなど)。これは、音楽業界と映像業界という2つの大きな世界で異なる形式が採用されているからでしょう。音楽業界では44,100Hz(1秒間に44,100個のデータ)が標準とされる一方で、映像業界では48,000Hz(1秒間に48,000個のデータ)が一般的なのです。サイトによって形式が違っているのは、気になりますが仕方ありません。

音質への影響:オペレーティングシステムの役割

音声のサンプリングレートが違っていても、日常生活において影響はほとんどありません。これは、ブラウザの音声はオペレーティングシステム(WindowsやiOSなど)の音声処理装置によって変換され、決められたサンプリングレートに統一された後、再生されるからです。スマートフォンでは基本的に44100Hzまたは48000Hzに固定されていますが、パソコンではユーザーがサンプリングレートを選択できます。OSのおかげで、気軽に音声を再生できています。

しかし、OSの自動変換によって音のデータは変化してしまいます。良いか悪いか、その変化を聞き取ることのできる敏感な方もいて、私もその一人です。ABXテストなどの客観的手法をとったわけではないので話半分で聞いていただいて構いませんが、手持ちのWindowsとMacデバイスのどちらを使っても、音が不自然に聞こえてしまいます。具体的にいうと、変換された音声は上擦ったような、くぐもったような音になります。

最適化の設定:開発者と視聴者の皆さんへ

オペレーティングシステムによって音質が変化してしまうため、音声を送る側と受け取る側の双方にとって、サンプリングレートを変換させないような調整が有効です。例えば、音質にこだわるAndroidアプリを開発する際には、開発者向け文書によれば、44100Hzあるいは48,000Hzの音声ファイルを用意すると良さそうです。そうすれば、スマートフォンのOSが変換処理をしなくなるので、音質が維持されるようになります。

また、視聴者が本来の音質でコンテンツを楽しむためには、データ形式に合わせてデバイスのサンプリングレートを設定する必要があります。例えば、44100Hzの音声が使われているなら、44100Hz出力に設定することで処理をスキップします。音楽制作ソフトや音楽プレーヤーの中にはこの設定が自動で行われるものもありますが、ブラウザについては存在しないようです。

やってみた:オーディオ出力設定の自動変更

せっかく私は日頃プログラミングをしているので、試しにブラウザから出てくる音声のサンプリングレートを自動で検出し、Windowsのオーディオ設定を自動変更しようとしました。言語はC#です。その結果、後半部分はうまくいったのですが、前半部分が困難だと判明したため、プロジェクトは一時中断となりました。残念ながら、Windowsではアプリケーションが使用している音声のサンプリングレートを直接取得する方法はないようです。この自動化の夢は、将来マイクロソフトに入社するまで保留することにしますが(till when?)、開発の過程でウェブサイト上の音声形式を知ることができるツールを発見しました!

まとめと次回予告

この記事では、ブラウザで再生される音声のサンプリングレートについて解説しました。調べたところ、ウェブサイトの音声データに用いられている形式はさまざまなようです。これは再生時にオペレーティングシステムが自動変換してくれるので基本的には問題ありません。しかし、変換されると音質に影響が出てしまうため、させないようにデバイスの音声出力形式を適切に設定すると良いでしょう。次回の記事では、ウェブサイト上の音声形式を知るためのツールをご紹介します。お読みいただきありがとうございました!