藤本健のDigital Audio Laboratory
第772回
どこまで聴こえる? 「ハイレゾ聴力テスト」を作った。40kHz対応マイクで検証も
2018年6月25日 12:48
先日、SNSで流れてきたYouTube動画に、高周波を聴いて聴力テストを行なうというものがあった。実際に再生する前にコメント欄が目に飛び込んできたのだが「12,000Hzを超えると聴こえないけれど、ゾワゾワする感じがする」というものがいくつかあり、「これはどういうことだ? 可聴範囲外の音の知覚と関係があるのか? 」などと、コメント内容にこちらがゾワゾワしてしまった。結論からいうと、動画作成側の問題でオーディオ圧縮に関連するノイズが入り込んだだけだったようだ。ただ、どこまでの音が聴こえるのかというのは、多くの人にとって興味のあるテーマだと思う。今回はハイレゾサウンドを利用しつつ、誰でも簡単にできる聴力検査を行なってみたい。
192kHz/24bit音声の聴力テストを作ってみた
健康診断や人間ドックなどでときどき体験する聴力検査。125Hzくらいの低音から8kHzくらいまでの高音まで音量を変えて聴こえるかテストするというものだが、使っていて気になることがある。医療用の検査機器だから、きっとすごい高価なものだとは思うが、ヘッドフォン(レシーバといったほうがいいのか? )が、かなり品質が低そうだということ。まあ、検査するだけなので、指定の周波数が出れば大きな問題はないのだろうし、これで音楽を鳴らす必要はないので、必要十分な性能なのかもしれないが、「自宅の機材で検査したほうが、もっと正確にできそう……」と思ってしまう。もっとも、絶対的な音量の設定があるので、特定のDACやヘッドフォンで調整する必要があり、結果として病院の検査と同じことを自宅で再現するのは難しいのだけど、あのレシーバーはなぁ……と感じてしまう。
そんな中、YouTubeの聴力テストの動画を見て、いろいろと突っ込みを入れたくなったのと同時に、Digital Audio Laboratory的聴力テストを作ってみようと考えたのだ。冒頭でも書いたYouTube動画では、サイン波で8,000Hz、9,000Hz、10,000Hz……20,000Hzとだんだんと高い音にしていって、聴くことができるかを確認するというもの。そこに「〇〇歳程度の能力である」というテロップが出るので、みんな試してみたくなる楽しいテストになっている。
ただ、そのサイン波が歪んでいる上に、YouTubeへのアップロードでオーディオ圧縮されているために、チリチリしたノイズがかなり入り込んでしまっている。そのため普通聴くことのない妙な音のノイズが出てしまっていて、聴こえているような勘違いをする人が多いと思う。さらに、普通に考えてDolby AC-3やAACなどのオーディオコーデックを使うYouTubeだと一定程度より高い音は入らないはず。動画としては楽しめるが、テストという意味では、YouTubeを使うのには限界がありそうだ。
そこで、筆者なりに聴力テストを作るための実験をいろいろと行なってみた。といっても思いついた方法はいたって単純。圧縮しないWAVファイルで同じことをすればいいだろうというだけのこと。とはいえ、44.1kHzだと一番高くても22.05kHzまでしか扱えないので、もう少し高い音まで鳴らすために96kHzのサンプリングレートで、10kHz~40kHzまで30秒かけて徐々に上がっていくスウィープ信号を作ってみた。ここでは、前回使ったSoundForge 12で作ってみたものの、波形を見てみると96kHzのサンプリングレートだと、10kHzでもかなりいびつに見える。そこで、もう少しキレイな波形になるようにと、192kHz/24bitで作り直してみた。
【聴力テストの音声ファイル】192kHz/24bit
10khz_40khz.wav(35.16MB)
※編集部注:192kHz/24bitのファイルを掲載しています。
筆者や編集部が聴力を保証するものではありません。
編集部ではファイル再生の保証はいたしかねますのでご了承下さい
このWAVファイルを再生して聴いてみれば自分が何kHzまで聴く能力を持っているかを確認できるはずだ。前述のとおりスタートは10kHzで、30秒かけて40kHzまで上げていくので、ちょうど1秒ごとに1kHzずつ上がっていく。そのため、時計の秒針を見ながら10kHz、11kHz、12kHzと数えていけばいいわけだ。頭に2秒間の空白があるので、プレイヤーの経過秒数を見る場合には2秒引いて見ればいいはず。ほとんどの人は10秒以内に聴こえなくなると思うし、5秒以内に急激に音量が小さくなっていくと感じると思うが、それが人間の耳の性能というものだ。やはりこれには年齢の差がかなり大きいので、お子さんのいる方は、聴かせてみると自分の耳とは聴力が大きく異なることを実感できるだろう。
もちろん、40kHzまで正確に再生するためには、いくつかの条件がある。まずはPCがこの192kHz/24bitのWAVファイルを再生できるのが前提となるが、当然DACもしくはオーディオインターフェイスが192kHzのサンプリングレートに対応している必要もある。まあ、現在のPCなら内蔵サウンド機能でも192kHzのデータの再生は可能だが、アナログ性能はかなり怪しいので、できれば外付けのDACやオーディオインターフェイスを使いたいところである。
さらにもう一つ重要になるのが再生するヘッドフォンやスピーカーが40kHzの音に対応していること。これが20kHzくらいまでだと正確な検査はできないということになる。ただ、40歳代以上の人だと16kHzあたりまでが限界だろうから、ヘッドフォンが20kHzまでに対応だろうと、50kHzまでの対応だろうと、あまり関係ないかもしれない。
正直なところ、筆者も16kHzあたりが限界。その意味ではYouTubeの圧縮でも問題ないということになってしまうが、いろいろな研究を見ると「可聴外の高周波も耳以外で知覚可能である」とされているので、とくにスピーカーから鳴らす場合は、聴こえない音も出ていてほしい、という思いはある。
聴こえなかった音はちゃんと出てた? 40kHz対応マイク録音で検証
さて、ここで気になるのは、その聴こえない高い音は本当に出ていたのか、という点。先ほどのYouTubeの場合だって、16kHz以上が出ていないということについては仕組みを知らない限り分からない事実だ。筆者がSoundForgeで作ったWAVファイルにしても、どこかにボトルネックがあって、ちゃんと再生できていない可能性だってある。そこで、実際、聴こえない音が本当に出ていたのかの実証実験をしてみた。それはスピーカーを用いて先ほどのWAVファイルを再生するとともに、その音をマイクで拾って、周波数解析してみる、という方法である。
今回、再生側の環境はWindows 10のマシンにオーディオインターフェイスとしてSteinbergのUR22 mkIIを使用。そのアナログ出力をヤマハのモニタースピーカー、MSP5 Studioで出力したのだ。UR22mkIIは192kHzのサンプリングレートに対応していて、ASIOドライバが使えるので、ここまでは問題なし。一方、MSP5 Studioの再生周波数帯域をチェックすると「50Hz-40kHz(-10dB)」とあるので、ギリギリ大丈夫そうだ。
一方で問題となるのはマイクのほうだ。聴こえない音が本当に出ていたかをチェックするにはマイクも40kHzに対応していないといけないわけだが、多くのマイクは20kHzあたりが限界。先日この連載でも開発者インタビューを行なったソニーの「C-100」は、50kHzまで録音可能なハイレゾ対応マイク。これを使って試すことにしたのだ。マイクの接続先も前述のUR22mkIIを使用すれば、サンプリングレート的にも問題ないはず。
ということで、スピーカーの目の前にマイクを設置して、出た音をそのまま録音してみた。再生しながら同時に録音することはSoundForgeにはできないので、ここではDAWであるStudio One 4を用いて実験してみた。
すると、不思議な現象が起こる。10kHzで適度な音量で録音できるように調整した上で試してみると、Studio One上で見る波形が最初のところからかなり暴れるのだ。スウィープしているとはいえ、単純なサイン波なのだから、本来は一定音量で記録されるべきところなのにだ。
しかも波形スタートから6秒後、つまり16kHzあたりからは波形がかなり小さくなり、その先もどんどん小さくなっていく。ただ、耳には何も聴こえないけれど、30秒経過して再生が終わったタイミングで波形が急にゼロになるので、わずかながらマイクは何らかの音を捉えていたというようにも見える。
そこで、この録音したファイルを取り出し、フリーの波形解析ソフト、efu氏のWaveSpectraでどうなっているのかをチェックしてみた。すると、Studio One上の波形では極端に小さくなっていたが、実際にはキレイに録れていたことがわかった。画面は15秒弱経過したところの瞬間を捉えたものだが、頭に2秒間の空白があることを考えれば、10kHz + 13kHz = 23kHzとなっているのがハッキリとわかる。
倍音の高調波も出ているようで、46kHzの音も捉えている。その後も30kHzを超えると高調波はなくなるが、それでもしっかりと音は出ている。その30秒間の再生におけるピークを捉えたのが下のグラフだ。
理想的な、フラットなグラフというわけではないけれど、10kHzから40kHzまでしっかりと音が出ていたことが実証されたわけだ。
もうひとつオマケの実験として、このWAVファイルをYouTubeにアップロードすると、どうなるのかも試してみた。ここでは、先ほどの192kHz/24bitのWAVファイルとともに、映像用に、周波数を表示するようにしてみた。
これをSoundForgeと同じMAGIXのビデオ編集ソフト、MovieStudio Platinum 12(最新版ではなく、Sony Creative Software時代のバージョン)を使って作成し、あらかじめAVCHDで書き出してからYouTubeにアップロードしてみたのが下の動画だ。
実験をする前から分かっていたことではあるが、YouTubeからキャプチャしたデータを見ると、5.7秒後、つまり15.7kHzで音は止まって、その上の周波数は出ていない。一方、最後の5秒くらいで「キューン」という高域から低域に落ちていく音が聴こえるが、これは明らかなエイリアスノイズ、つまりサンプリングレートより高い音を録音した場合に発生するもので、ローパス処理がされていないことを意味する。
実は、これはAVCHDに書き出す時点でそうなっていたのだが、そもそもAVCHDのサンプリングレートが48kHzであり、オーディオコーデックはDolby Digital AC-3 Studioの192kbpsで書き出しているのだから仕方のないところ。このキャプチャしたオーディオデータをあえて192kHzにアップサンプリングした上で、先ほどと同様に周波数解析してみると、下の図のように16kHzがまったく出ていないことが分かる。
以上、ふとした思いつきからいくつかの実験をしてみた。自分の聴力の限界とともに、YouTubeの限界というのを知っておくことで、音楽作品やオーディオへの向き合い方が少し変わってくるかもしれない。