この連載は、現在高校で使われている情報Iの教材をベースにし、重要なポイントを整理して5分で読める記事にします。ITの基本知識として知る必要がある内容がたくさんあります。また大学共通テストに出やすいポイントを説明しますので、テスト対策にも役に立てば幸いです。重要キーワードを赤いマーカーで表記します。
音声データの計算
共通テストでは、音声に関する計算問題があります。まず、波であるアナログ音声はどのようにデータに変換するのか?そして、変換後の音声データの量はどれぐらいになるのか?また、音声ファイルの圧縮率の計算もあります。
では、1つずつ見てみましょう。
アナログ音声の波に関する言葉
音声の計算に関わる言葉を知らないといけないです。
・周波数
周波数とは、1秒間含まれている波の数、単位はHzです。
・周期
1つの波が伝わる時間のこと、単位は秒です。
周波数と周期の関係はこうなる。
1秒間100個の波がある場合、周波数は100Hzです。
周期は、1÷100=0.01秒です。
アナログ音声をデータに変換する方法
アナログ音声をデータに変換するステップは全部で3つあります。
波を標本化
アナログ音声の波を、決まっている小さな時間間隔に分割します。
さらに、波の高さに等間隔に段階値を指定します。
例えば、8段階にします。段階値は0から7までの数値になります。
それぞれの分割時間点に、波の高さの段階値を取得できます。
この波の高さの段階値を標本点といいます。
例えば、あるアナログ音声の波を0.1秒ごとに分割します。
それぞれの分割時間点に、取得した波の高さの値は以下の通りです。
秒 | 波の高さ (段階値) |
0.0 秒 | 2 |
0.1 秒 | 5 |
0.2 秒 | 5 |
0.3 秒 | 3 |
0.4 秒 | 4 |
0.5 秒 | 6 |
0.6 秒 | 6 |
0.7 秒 | 4 |
0.8 秒 | 2 |
0.9 秒 | 1 |
1.0 秒 | 1 |
これで、11個の標本点を取得できました。
決まっている時間間隔は0.1秒なので、標本化周期は0.1秒です。
1秒間に波の数は10個なので、標本化周波数は10Hzです。
この標本化周波数をサンプリング周波数とも言います。
標本点の値を量子化
量子化という言葉は難しそうに聞こえますが、簡単にいうと、(1)で波の高さの値を取得する作業があります。
その作業自体を量子化と言います。
しかし、波なので、高さの値がぴったり段階値の数になるとは限りません。
その場合、一番近い段階値にします。
例えば、波の高さの値が4.8、四捨五入で、量子化の結果は5になります。
これで、それぞれの標本点に量子化した数値があります。
このままでは、コンピュータでは処理できないので、次、量子化した数値を2進数に変換します。
量子化した数値を符号化
さきほど、波の高さを等間隔に0〜7の8段階に指定することを話しました。
これは3ビットの2進数で波を表現することができることを意味します。
このビット数を量子化ビット数と言います。今回の例では3ビットです。
段階値 | 2進数 |
7 | 111 |
6 | 110 |
5 | 101 |
4 | 100 |
3 | 011 |
2 | 010 |
1 | 001 |
0 | 000 |
では、取得した量子化した数値(段階値)を2進数に変換します。
秒 | 波の高さ (段階値) | 2進数 |
0.0秒 | 2 | 010 |
0.1秒 | 5 | 101 |
0.2秒 | 5 | 101 |
0.3秒 | 3 | 011 |
0.4秒 | 4 | 100 |
0.5秒 | 6 | 110 |
0.6秒 | 6 | 110 |
0.7秒 | 4 | 100 |
0.8秒 | 2 | 010 |
0.9秒 | 1 | 001 |
1.0秒 | 1 | 001 |
以上3つの手順を踏んで、アナログ音声をデジタルデータに変換できました。
聞き慣れない言葉がいくつかありますが、変換の流れを理解すれば、それほど難しいものではありません。
次は、変換できたデジタル音声ファイルのデータ量を計算してみましょう。
デジタル音声ファイルのデータ量の計算
アナログ音声の波からデジタル音声データに変換する手順から見れば、データの量に影響するものがわかります。
まず、上記の例では、0.1秒の時間間隔を指定しました。その結果、11個の標本点がありました。
もし、0.01秒の時間間隔を指定すれば、101個の標本点が取れます。
つまり、時間間隔の長さがデータ量の大きさに影響があります。
時間間隔が短くなると、1秒間には波の数が多くなります。データの量も増えます。
だから、標本化周波数は計算に関係しています。
次、段階値の数も関係します。
上記の例では、0〜7の8段階にしました。8段階なので、3ビットの2進数で表現できました。
もし、0〜15の16段階にすれば、4ビットの2進数で表現しなければなりません。
その1ビット分のデータ量が増えます。
だから、量子化ビット数も計算に関係しています。
では、1秒間のデジタル音声データ量の計算公式をまとめます。
計算結果の単位はビットです。
上記の例では、10Hz ✕ 3ビット = 30ビット となります。
テストでは、CDを例にして、ステレオという設定もあります。
ステレオの場合、2つのアナログ音声波があります。
2チャンネルになりますので、上記の公式にチャンネル数を掛けなければなりません。
つまり、
となります。
【例題】音楽CDのデータ量を計算
44100Hz、16bitの音楽CDに5分間の曲が入っています。曲のデータ量を計算してください。
小数点以下は四捨五入。
44100Hzは標本化周波数です。16bitは量子ビット数です。
ステレオを書いていないので、シングルチャンネルとして計算しましょう。
1秒間のデータ量 = 44100Hz × 16ビット = 705600ビット
データ量を換算します。
1バイト(B) = 8ビット なので、
705600ビット ÷ 8 ビット= 88200B
1キロバイト(KB) = 1024バイト(B) なので、
88200B ÷ 1024B ≒ 86KB
86KBは1秒間の容量です。5分間は300秒なので、
5分間の曲のデータ量 = 86KB × 300秒 = 25800KB
1メガバイト(MB) = 1024キロバイト(KB) なので
25800KB ÷ 1024KB ≒ 25MB
以上、5分間の曲のデータ量は約25メガバイト(MB)です。
音声データのファイル形式
最後に、よく使う音声データのファイル形式と特徴を覚えましょう。
・WAV:圧縮なし、音声ファイルのサイズが大きい
・MP3:圧縮あり、音声ファイルのサイズがWAVの10分の1ぐらい
・AAC:圧縮あり、MP3より圧縮率が高い
圧縮率の計算は簡単です。
圧縮率 = 圧縮後のファイルサイズ ÷ 圧縮前のファイルサイズ ✕ 100%
今回はアナログ音声からデジタル音声データに変換する方法、デジタル音声データの量の計算方法を説明しました。以前学んだデータ量の換算も活用されています。データの計算は重要なポイントになります。ぜひ習得してください。