高校「情報I」ポイント整理(5)音声データの計算

大学共通テスト「情報」プログラミング プログラミング学習
この連載は、現在高校で使われている情報Iの教材をベースにし、重要なポイントを整理して5分で読める記事にします。ITの基本知識として知る必要がある内容がたくさんあります。また大学共通テストに出やすいポイントを説明しますので、テスト対策にも役に立てば幸いです。重要キーワードを赤いマーカーで表記します。

音声データの計算

共通テストでは、音声に関する計算問題があります。まず、波であるアナログ音声はどのようにデータに変換するのか?そして、変換後の音声データの量はどれぐらいになるのか?また、音声ファイルの圧縮率の計算もあります。

では、1つずつ見てみましょう。

アナログ音声の波に関する言葉

音声の計算に関わる言葉を知らないといけないです。

周波数
 周波数とは、1秒間含まれている波の数、単位はHzです。

周期
 1つの波が伝わる時間のこと、単位は秒です。

周波数と周期の関係はこうなる。
1秒間100個の波がある場合、周波数は100Hzです。
周期は、1÷100=0.01秒です。

アナログ音声をデータに変換する方法

アナログ音声をデータに変換するステップは全部で3つあります。

ステップ1

波を標本化
アナログ音声の波を、決まっている小さな時間間隔に分割します。
さらに、波の高さに等間隔に段階値を指定します。

例えば、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です。
この標本化周波数をサンプリング周波数とも言います。

ステップ2

標本点の値を量子化
量子化という言葉は難しそうに聞こえますが、簡単にいうと、(1)で波の高さの値を取得する作業があります。
その作業自体を量子化と言います。

しかし、波なので、高さの値がぴったり段階値の数になるとは限りません。
その場合、一番近い段階値にします。

例えば、波の高さの値が4.8、四捨五入で、量子化の結果は5になります。
これで、それぞれの標本点に量子化した数値があります。

このままでは、コンピュータでは処理できないので、次、量子化した数値を2進数に変換します。

ステップ3

量子化した数値を符号化
さきほど、波の高さを等間隔に0〜7の8段階に指定することを話しました。
これは3ビットの2進数で波を表現することができることを意味します。
このビット数を量子化ビット数と言います。今回の例では3ビットです。

 段階値  2進数 
7111
6110
5101
4100
3011
2010
1001
0000

では、取得した量子化した数値(段階値)を2進数に変換します。

  秒   波の高さ 
 (段階値) 
  2進数  
0.0秒2010
0.1秒5101
0.2秒5101
0.3秒3011
0.4秒4100
0.5秒6110
0.6秒6110
0.7秒4100
0.8秒2010
0.9秒1001
1.0秒1001

以上3つの手順を踏んで、アナログ音声をデジタルデータに変換できました。
聞き慣れない言葉がいくつかありますが、変換の流れを理解すれば、それほど難しいものではありません。

次は、変換できたデジタル音声ファイルのデータ量を計算してみましょう。

デジタル音声ファイルのデータ量の計算

アナログ音声の波からデジタル音声データに変換する手順から見れば、データの量に影響するものがわかります。

まず、上記の例では、0.1秒の時間間隔を指定しました。その結果、11個の標本点がありました。
もし、0.01秒の時間間隔を指定すれば、101個の標本点が取れます。
つまり、時間間隔の長さがデータ量の大きさに影響があります。

時間間隔が短くなると、1秒間には波の数が多くなります。データの量も増えます。
だから、標本化周波数は計算に関係しています。

次、段階値の数も関係します。

上記の例では、0〜7の8段階にしました。8段階なので、3ビットの2進数で表現できました。
もし、0〜15の16段階にすれば、4ビットの2進数で表現しなければなりません。
その1ビット分のデータ量が増えます。

だから、量子化ビット数も計算に関係しています。

では、1秒間のデジタル音声データ量の計算公式をまとめます。

1秒間のデータ量 = 標本化周波数 ✕ 量子化ビット数

計算結果の単位はビットです。
上記の例では、10Hz ✕ 3ビット = 30ビット となります。

テストでは、CDを例にして、ステレオという設定もあります。
ステレオの場合、2つのアナログ音声波があります。
2チャンネルになりますので、上記の公式にチャンネル数を掛けなければなりません。

つまり、

1秒間のデータ量 = 標本化周波数 ✕ 量子化ビット数 ✕ チャンネル

となります。

【例題】音楽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%


今回はアナログ音声からデジタル音声データに変換する方法、デジタル音声データの量の計算方法を説明しました。以前学んだデータ量の換算も活用されています。データの計算は重要なポイントになります。ぜひ習得してください。