banner
jzman

jzman

Coding、思考、自觉。
github

音声の基本知識

音声と映像に関する知識を理解したら、まず以下の 2 つの記事を読んでください:

本記事では音声の基礎知識をまとめ、以下のいくつかの側面から紹介します:

  1. 音の生成
  2. 音の三要素
  3. アナログ - デジタル変換
  4. 原音データ
  5. PCM と Wav
  6. 音声処理の流れ

音の生成#

音は物体の振動によって生成され、空気、固体、液体などの媒介を通じて伝送される音波であり、人間の耳が認識できる音波の範囲は 20Hz から 20000Hz の間で、可聴音波とも呼ばれます。この音波は音と呼ばれ、周波数の違いに応じて主に以下のように分類されます:

  • 可聴音波:20Hz〜20kHz
  • 超音波:> 20kHz
  • 低音波:< 20Hz

さらに、人の発声範囲は一般的に 85Hz〜1100Hz です。

音の三要素#

音の三要素はそれぞれ音高、音量、音色で、具体的には以下の通りです:

  • 音高:音の周波数の高低を指し、人間の聴覚が音の調子の高低を識別する程度を示します。物体が早く振動すると音の音高は高く、遅く振動すると音高は低くなります。
  • 音量:音の振幅の大きさを指し、聞こえる音の大きさの主観的な感覚を示します。
  • 音色:音の特性を示し、異なる音は波形の面で常に独特の特性を持ちます。異なる物体の振動はそれぞれ異なる特徴を持ち、各物体が発する音の特有の品質を反映します。音色は具体的に倍音によって決まります。美しい音は単なる正弦波ではなく、倍音を含んでいます。

アナログ - デジタル変換#

音はアナログ音声信号であり、音をデジタル化するにはアナログ音声信号をデジタル信号に変換する必要があります。これがアナログ - デジタル変換で、主なプロセスはサンプリング、量子化、エンコーディングを含みます。以下の図に示します:

image

  • サンプリング:連続信号を離散信号に変換するプロセスで、一定時間の信号値を用いて元の時間帯の連続信号値を置き換えます。この 1 秒間のサンプリング回数がサンプリングレートで、例えば 8KHz は電話信号のサンプリングレートで、通話のニーズを満たします。音声 CD は一般的に 44.1kHz、デジタルテレビは一般的に 48kHz で、サンプリングレートが高いほど音の再現度が高くなります。
  • 量子化:サンプリング後のアナログ信号をデジタル信号に変換するプロセスで、量子化は均一量子化と非均一量子化に分かれます。上の図では明らかに均一量子化が使用されており、量子化レベルは 8 です。
  • エンコーディング:量子化された信号を対応するバイナリコードに変換するプロセスで、最も単純なのは自然バイナリコードです。他のエンコーディング方式については興味があれば自分で調べてください。上の図でのエンコーディングは信号源エンコーディングを指し、他にもチャンネルエンコーディングがあります。

原音データ#

PCM(パルス符号変調)はアナログ音声信号をデジタル音声信号に変換するもので、音声と映像における PCM は圧縮されていない音声サンプリングデータを指します。音声信号はサンプリング、量子化、エンコーディングを経て生成された原音データで、PCM データの重要な量子化指標は以下の通りです:

  • サンプルサイズ:サンプリングサイズであり、量子化レベルを示し、1 つのサンプルを何ビットで保存するかを示します。一般的には 16 ビットです。
  • サンプリングレート:サンプリングの回数を示し、単位は Hz で、一般的なサンプリングレートには 8k、16k、32k、44.1k、48k などがあります。
  • チャンネル数:現在の PCM データに含まれるチャンネル数を示し、モノラル、ステレオ、マルチチャンネルなどがあります。
  • バイトオーダー:PCM データのストレージのバイトオーダーがビッグエンディアンかリトルエンディアンかを示します。データ処理の効率を高めるために、通常はリトルエンディアンです。
  • 符号:現在の PCM データに符号ビットがあるかどうかを示します。
  • 整数または浮動小数点:現在の PCM データが整数型または浮動小数点型で表されるかを示します。

PCM データの量子化指標を理解した後、ビットレートはどのように計算されるのでしょうか。ビットレートは 1 秒間にサンプリングされるデータの量で、計算方法は以下の通りです:

サンプリングレート * サンプルサイズ * チャンネル数

例を挙げると:

image

サンプリングレートが 44.1KHz、サンプルサイズが 16bit、ステレオの PCM エンコードの WAV ファイルの場合、そのビットレートは 44.1K *_16 *_2 = 1411.2Kb/s となります。上記の音声を伝送すると、毎秒 1M を超えるデータ量になります。さらに、データ伝送中に上り速度が下り速度よりもはるかに低いことが多いため、音声データを圧縮する必要があります。

PCM と WAV#

PCM については前述の小結を参照してください。WAV はロスレスの音声ファイル形式で、音声のエンコーディングに厳密な規定はなく、PCM でも他のエンコーディング方式でも可能です。例えば MP3 エンコーディングなど、簡単にまとめると:

  • PCM:エンコーディング方式の一つで、音声と映像の分野では原音データの生ストリームと理解されます。
  • WAV:PCM データを保存できる音声ファイル形式で、PCM の基礎に WAV ヘッダーを追加したものに相当します。

最後に WAV のヘッダーの示意図を添付します:

image

詳細は後で研究して補足します。

音声処理の流れ#

音声の処理の流れについて簡単に説明します。まず音声ファイルの生成です。Android ではAudioRecordMediaRecordなどを使用して収集された音声データは PCM データであり、このデータはデジタル音声信号に属し、原音の PCM 生ストリームです。PCM データはエンコーディングを経て圧縮され、対応する音声ファイルが生成されます。次に音声ファイルの再生です。デマルチプレクス、デコードを経て PCM に変換されて再生されます。

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。