ホームへ戻る

 補足資料.12章 音声データの仕組み

 音声をキャプチャして生データを扱ったことの無い人のために音声データの仕組みについて説明します。


音のデータは波のデータ


Audacityで音声データを生成し、拡大してみてみると、以下のようになります。


そう、音のデータは波で出来ているのです。
この音のデータでスピーカーを震わせることで空気をふるわせ、音となって伝わります。


サンプリング周波数


演奏されている本物の楽器から出ていく音の波は無限に滑らかですが、
プログラムで音のデータをキャプチャして、データで取得する場合、いくつかの時間間隔で区切って、その時の波の高さ情報をデジタルデータで取得しなければなりません。

先ほどの波形をもっと拡大してみましょう。すると以下のようになります。
これはサンプリング周波数44100Hzの音データの波形です。
滑らかな波のように見えますが、拡大すると等間隔の時間軸にそってy方向に値がプロットされていることが分かると思います。
このように特定の時間ごとに音のデータが存在するのです。

サンプリング周波数44100Hzの音のデータは1秒間に44100個のデータで出来ています。



では、サンプリング周波数を半分の22050Hzにしてみましょう。
つまりデータの数は1秒間に22050個となり、データ量は半分になります。



どうでしょう。先ほどより、データが少なくなった分、綺麗な波に見えなくなったのではないでしょうか。
それでは、もっと思い切ってサンプリング周波数を8000Hzにしてみましょう。



とても綺麗な波と言えないほど波の形がなくなりました。
波の再現率が低いデータということは、綺麗な音に聞こえないデータということです。
サンプリング周波数が小さいほどこもったようなことに聞こえます。

44100Hzとは、CD音源に使われている、かなり良いとされている音質です。
8000Hzとは電話に使用されている音声を伝達するための最低限の音質です。
CDで音楽を聞くときと、電話の待機時などに流れる音楽を聞くときとを比べると、電話の待機時に流れる音の方がずっと音質が悪く聞こえると思いますがそういうことですね。

サンプリング周波数が低いほどこもったような音になり、サンプリング周波数が高いほどクリアに、鮮明に聞こえます。

↓こちらのYoutubeで分かりやすいサンプリング周波数比較動画があるので音を聴き比べてみると良いでしょう。
https://www.youtube.com/watch?v=2HYElQYnen8



量子化ビット数


音のデータをキャプチャする際、サンプリング周波数にならび「量子化ビット数」という指標があります。
サンプリング周波数 = 1秒間にサンプリングするデータの数 であったのに対して
量子化ビット数 = 1サンプルのデータを何段階識別可能にするか となります。

例えば、以下は量子化ビット数が16bitです。16bitということは65526段階のレベルを識別できます。
波の図形で言うと、65526段階のy軸の高さを表現できるということです。


一方、大げさな話をしてみましょう。
量子化ビットが2bitだとすると4段階の値しか記録できません。
例えば(-1, -0.5, 0.5, 1)の4種類の値しか記録できないとすると、先ほどの波形は以下のようになります。



これでは綺麗な波にならず、綺麗な音になるはずがありませんね。
このように、どの程度綺麗な波になるかという指標として量子化ビットも一つの大事な指標となります。
では量子化ビットが低いとどのような聞こえ方になるでしょうか。
量子化ビットが低いとざらついたザラザラとした音になります。
量子化ビットが高いとざらつきのない透き通った音になります。

8bitでもそこそこ音になります。CD音源は16bitで16bitであれば十分な音質が確保できます。

↓こちらに量子化ビットの比較があるので聞いてみてください。
https://www.youtube.com/watch?v=LlD1umJ8yK8



実際に取得されるデータ


サンプリング周波数44100Hz、量子化ビット数16bitの音データを取得すると、
-32,768~32,767の値が1秒間に44100個取得できます。
値の最小-32,768~値の最大32,767までの値の波のデータが1秒間に44100個やってくるということです。

実際にはbyte配列でやってきますが、2byteで1つのデータを表した要素の連続になります。



この2つのデータは
左側と右側を順番に連結して1つのデータにするビッグエンディアンか、
右側と左側を入れ替えて連結して1つのデータにするリトルエンディアンか、環境によって異なるので、2byteを1つのデータとして扱う必要があるときは、
使用している環境のエンディアンにご注意ください。

音声のデータ形式には、サンプリング周波数・量子化ビット数以外にもう一つ「チャネル」もあります。
1チャネルはモノラル、2チャネルはステレオです。他にも5.1チャネルなど様々な物があります。
これまで出てきたデータの例は1チャネルでしたが、2チャネルの場合は以下のように左の音、右の音が交互に入ります。



これらの音を最終的にアナログスピーカーに伝達し、音を生成しているのです。

※おまけ
ちなみに、サンプリング周波数44100Hz、量子化ビット16bitはCD音源と同じで、これだけの音質があれば十分と言われています。
しかし音響マニア・・とまで行かなくても音質にこだわる一部の人から「これよりもっと高音質で聞きたい」という要望があり、
サンプリング周波数44100Hz、量子化ビット16bitよりもっと高音質にした「ハイレゾ」という物が近年出てきました。


→分からないことがあれば掲示板で質問して下さい


- Remical Soft -