今回は、いつものPythonのようなプログラムの話ではなく、ちょっと技術的なお話をしてみたいと思います。
みなさんが日頃テレビやスマートフォン等で動画をみたり音楽を聴いたり電話をしたりしていると思います。
その中で流れる音がどのように機器間やネットワークを流れて、テレビ等でどのように音を復元しているのか疑問に思ったことはないでしょうか?
それは、現実世界で流れているリアルな音をマイク等で拾いデジタルデータに変換し、受け取った機器はこのデジタルデータをアナログデータに復元し、スピーカ等に流すことで実現しています。
この時に流れるデジタルデータをデジタル音声データといいます。
WAVE形式やmp3等といったりしますが、これはこのデータのフォーマットや圧縮の有無等データのフォーマットが変わってきます。
ではここからが本題のデジタルデータについて説明していきます。
おさらいですが、
デジタル音声とは、実際に私たちの耳で聞いているものをデジタルデータで表現したものです。
音とは、空気の振動によって発生した波が私たちの耳に伝わって音して聞こえています。
そうです。
音とは波なので、同じように波を機械的に発生させることができれば、同じ音をもう一度
再現・表現できるということです。
デジタル音声とは、この波をうまくデジタルデータとして表現したものです。
と、言葉だけで説明しても分かりにくいかと思いますので、以下の画像を見てみてください。
以下は、音の波を画で表現したものです。
これを一定周期事に区切ってみます。
この一定時間ごとに区切ってその時のポイントの位置を取得することを、標本化またはサンプリングといいます。
次は以下のように先ほどのポイント位置だけで抽出し、先ほどと同じ一定時間ごとに復元し線でつないでみます。
すると正弦波からのこぎり波に代わってしまいますが、同じ周波数ので波が復元できます。
サンプリングの数を増やせばもっと近い波を復元できます。
続いて、量子化です。
先ほどのポイントだけ示した画像はX軸として時間だけ表現していましたが、Y軸に値を設定してみます。
今回は、最小値が-3 最大値が3として設定しました。
これで、デジタルデータとして表現できます。
今回の場合、-3->0->3->0->-3 ->0->3->0->-3 という風なデータになります。
この波の縦軸に数値を設定し、データができるようにすることを量子化といいます。
大値と最小値の幅を大きくすればするほど、表現できる幅が広がり細かく値を設定できるので、音がより表現できるようになります。
このように標本化とサンプリングを行うことでデジタル音声データは生成されています。
ここからはデジタル音声のデータとして、よく出てくる用語を紹介しておきます。
これで、デジタル機器などで記載されている意味が分かると思います。
サンプリング周波数
サンプリングを行う周期の表現方法で、表現したい音の特性によって周期が変わります。
これは、 単位がHzとなりますので、1秒間に何回サンプリングするのかということです。
48Khz では、1秒間に48*1000回 サンプリングを行っているということです。
一般的に使用されているのが48Khzです。DVD等がこれですね。
※昔は、CD等で、44.1KHzで設定されていました。
電話では、8KHzが一般的です。
イレゾ音声では、88.2kHz、96kHz、192kHz等で設定されています。
ビット幅・ビット深度
量子化のデータ幅のことをいい、こちらはこの幅が多くなれば多くなるほど音がよくなります。
※こちらはSignedで数値が表現され、真ん中が0で-x~xまで値が設定されます。
一般的に使用されているのは、16bitが使用されています。
電話の音声では、8Bit、ハイレゾ音声では、24bit以上が広く使用されています。
この サンプリング周波数・ビット幅ともに数値を上げれば上げるほど、音質があがり音としてリアルな音声を表現できますが、それだけデータの量が多くなります。
単純に、48KHz 16bit ステレオの音源では、1秒間に48*1000*16*2 = 1536000bit(192000Byte)のデータ量が必要になります。
これが1時間になれば約660Mbyteのデータになります。
※ステレオとは左右の両方が入った音声 モノラルは、左右の片側だけの音声になります。
はい。以上でデジタル音声についての説明は終わりです。
色々と難しい言葉が出てきて意味がわからない!!って方がたくさんいるかと思いますが、
これで何となくイメージができるようになるんじゃないかと思います。
これをざっくり頭に入れてもらえれば、現在流行りのストリーミングミュージックなどで、どの設定すればいい音で通信料が多いのかわかってもらえると思います。
自分に合った設定をして通信料の節約やより良い音を楽しんでください!!
今回は、LangChainとG…