オーディオ機能の抽出方法とツールの概要

この記事は最初に登場しました:Walker AI

ほとんどのオーディオ機能は音声認識タスクに由来し、元の波形サンプリング信号を合理化できるため、オーディオの意味的意味についてのマシンの理解が促進されます。1990年代後半以降、これらのオーディオ機能は楽器認識などの音楽情報検索タスクでも使用され、オーディオ音楽用に設計された機能がさらに登場しました。

1.オーディオ機能のカテゴリ

オーディオ機能のさまざまなカテゴリを理解することは、特定の機能を正確に分類することではなく、機能の物理的な意味の理解を深めることです。一般に、オーディオ機能は次の次元から区別できます。

(1)特徴がモデルによって信号から直接抽出されるか、モデルの出力から取得された平均、分散などの統計に基づくか。

(2)フィーチャーが過渡状態を表すかグローバル値を表すかにかかわらず、過渡状態は一般にフレームに基づいており、グローバル状態はより長い時間次元をカバーします。

(3)特徴の抽象化の程度基礎となる特徴の抽象化の最低レベルは、元のオーディオ信号から抽出するのも最も簡単です。さらに、ピッチや音符の始まりなど、スコア内の一般的な音楽要素を表す高レベルの中間特徴に処理できます。開始時間など。高レベルの機能は最も抽象的で、主に音楽スタイルや感情的なタスクに使用されます。

(4)特徴抽出プロセスの違いにより、元の信号から直接抽出された特徴(ゼロ交差率など)、信号を周波数に変換して得られた特徴(スペクトルセントロイドなど)、特定のモデルから得られた特徴に分けることができます。特徴(メロディーなど)、人間の聴覚認識に触発された定量的特徴スケールを変更することによって得られる特徴(MFCCなど)。

主な分類ベンチマークとして「特徴抽出プロセスの違い」を使用し、各カテゴリの下でより一般的な特徴をリストします。

オーディオ機能の抽出方法とツールの概要

同時に、MFCCを抽出すると、信号が時間ドメインから周波数ドメインに変換され、人間の聴覚応答を模倣するMELスケールフィルターに従って取得されるため、一部の機能がMFCCなどのカテゴリの1つに完全に属していないこともわかりました。したがって、両方の周波数ドメインの機能に属します。それは知覚的特徴でもあります。

2.一般的な抽出ツール

以下は、オーディオ機能を抽出するために一般的に使用されるツールとプラットフォームのリストです。

名前 住所 適応言語
オービオ https://aubio.org c / python
エッセンシア https://essentia.upf.edu c ++ / python
Librosa https://librosa.org Python
マドモム http://madmom.readthedocs.org Python
pyAudioAnalysis https://github.com/tyiannak/pyAudioAnalysis Python
ヴァンププラグイン https://www.vamp-plugins.org c ++ / python
Yaafe http://yaafe.sourceforge.net python / matlab

3.オーディオ信号処理

オーディオデジタル信号は、時間領域で連続的に変化するサンプルの一連のデジタル表現であり、「波形」と呼ばれることがよくあります。デジタル信号を分析するには、信号をサンプリングして量子化する必要があります。

サンプリングとは、連続時間での離散化のプロセスを指します。均一サンプリングとは、等しい時間間隔ごとに1回サンプリングすることを指します。1秒あたりに収集する必要のあるサウンドサンプルの数をサンプリング周波数と呼びます。オーディオファイルでよく見られる44.1kHzと11kHzは、サンプリング周波数。

量子化は、連続波形を離散数に変換します。最初に、振幅全体が一連の有限の量子化ステップに分割されます。振幅分割は、等間隔または不等間隔にすることができます。特定のステップ内にあるサンプル値には、同じ値が与えられます。量子化された値。オーディオファイルのビット深度は量子化値を表し、16ビットビット深度は2 ^ 16への振幅の量子化を表します。

ナイキストの法則によれば、サンプリング周波数が信号の最高周波数成分の2倍以上の場合、信号はそのサンプリング値から正確に再構築できます。実際、サンプリング周波数はナイキスト周波数よりも大幅に高くなります。

4.一般的な変換

4.1短時間フーリエ変換

短時間フーリエ変換(STFT)は、時間とともに変化する信号のスペクトル分析に適しており、オーディオおよび画像の分析と処理で広く使用されています。この方法は、最初に信号をフレームに分割し、次に各フレームでフーリエ変換を実行することです。音声信号の各フレームは、さまざまな異なる定常信号波形から切り出されたと見なすことができ、音声の各フレームの短時間周波数スペクトルは、各定常信号波形の周波数スペクトルの近似値です。

音声信号は短期的に安定しているので、信号をフレームに分割して特定のフレームのフーリエ変換を計算することができ、短時間のフーリエ変換が得られます。

フーリエ変換(FFT)は信号を時間ドメインから周波数ドメインに変換でき、逆フーリエ変換(IFFT)は周波数ドメインを時間ドメイン信号に変換できます。フーリエ変換は信号を時間ドメインから周波数ドメインに変換します。ドメインは、オーディオ信号処理の最も一般的な方法です。STFTによって取得されたスペクトログラムは、オーディオ信号ではスペクトログラムまたはスペクトログラムとも呼ばれます。

オーディオ機能の抽出方法とツールの概要

4.2離散コサイン変換

ディスクリートコサイン変換(ディスクリートコサイン変換のDCT)は、フーリエ変換に関連する変換であり、ディスクリートフーリエ変換(ディスクリートフーリエ変換のDFT)に似ていますが、実数のみを使用します。離散余弦変換は、長さが約2倍の離散フーリエ変換と同等です。この離散フーリエ変換は、実偶数関数で実行されます(実偶数関数のフーリエ変換は依然として実偶数関数であるため) )、一部の変形では、入力または出力位置を0.5単位移動する必要があります。

4.3ディスクリートウェーブレット変換

Discrete Wavelet Transform(Discrete Wavelet Transform)は、数値分析や時間周波数分析に非常に役立ちます。DiscreteWaveletTransformは、基本的なウェーブレットのスケールと変換を離散化します。

4.4メルスペクトルとメルセプストラム

スペクトログラムは非常に大きな画像であることが多く、適切なサイズのサウンドフィーチャを取得するために、多くの場合、メルスケールフィルターバンクを通過してメルスケールフィルターバンクに変換されます。

人間の耳のピッチ知覚は、音の基本周波数の対数とほぼ線形です。メルスケールでは、2つのスピーチのメル周波数が2倍異なる場合、人間の耳が知覚できるピッチは約2倍異なります。周波数が小さい場合、メルはHzとともに急速に変化します。周波数が大きい場合、メルの上昇は非常に遅く、曲線の傾きは小さくなります。これは、人間の耳が低周波音に対してより敏感であり、人間の耳が高周波数で非常に鈍いことを示しています。これは、メルスケールのフィルターバンクに触発されています。

メルスケールフィルターは複数の三角フィルターで構成されており、フィルターグループは低周波数で密集しており、しきい値が大きくなっています。高周波数のフィルターはまばらで、しきい値は低くなっています。周波数が高いほど人間の耳は鈍くなるという客観的な法則に対応しています。上図のフィルターフォームはメルフィルターバンクと呼ばれ、バンク面積が同じで、人間の声(音声認識、話者認識)などで広く使われていますが、人間以外の声を使う場合はフィールドでは、多くの高周波情報が失われます。現時点では、おそらく同じバンク高さのメルフィルターバンクをお勧めします。

等面積フィルター
輪郭フィルター

librosaでのMELスペクトルの実装:

  import numpy as np

  def melspectrogram(y=None, sr=22050, S=None, n_fft=2048, hop_length=512,
                     power=2.0, **kwargs):
      S, n_fft = _spectrogram(y=y, S=S, n_fft=n_fft, hop_length=hop_length, power=power)

      # Build a Mel filter
      mel_basis = filters.mel(sr, n_fft, **kwargs)

      return np.dot(mel_basis, S)

メルセプストラムは、メルスペクトル(対数およびDCT変換)で分析され、メルセプストラムが取得されます。

  # -- Mel spectrogram and MFCCs -- #
  def mfcc(y=None, sr=22050, S=None, n_mfcc=20, **kwargs):
      if S is None:
          S = power_to_db(melspectrogram(y=y, sr=sr, **kwargs))

      return scipy.fftpack.dct(S, axis=0, type=dct_type, norm=norm)[:n_mfcc]

4.5一定のQ変換

音楽では、すべての音符は、ピアノの1オクターブの12のセミトーンに対応する、数オクターブの12の等しい気質で構成されています。これらのセミトーン間の周波数比は21/12です。明らかに、同じピッチの2つのオクターブの場合、高オクターブは低オクターブの2倍の周波数です。したがって、音楽では、音は指数関数的に分布しますが、フーリエ変換によって得られたオーディオスペクトルは線形に分布し、2つの周波数ポイントは1対1の対応にはなりません。これは、いくつかのスケール周波数の推定値を参照します。エラーを生成します。したがって、音楽サウンドの最新の分析では、一般に、同じ指数分布の法則を持つ時間周波数変換アルゴリズムを使用します:定数Q変換(定数Q変換)。

CQTは、中心周波数が指数関数的に分布し、フィルター帯域幅が異なるフィルターバンクを指しますが、中心周波数と帯域幅の比率は一定Qです。フーリエ変換との違いは、スペクトルの水平周波数が線形ではなく、log2に基づいていることです。また、スペクトルの周波数に応じてフィルターウィンドウの長さを変更して、パフォーマンスを向上させることができます。CQTとスケール周波数の分布が同じであるため、音楽信号のCQTスペクトルを計算することにより、各音符周波数での音楽信号の振幅値を直接取得できます。

オーディオ機能の抽出方法とツールの概要

参照

《音楽情報検索のための深層学習に関するチュートリアル》

「STFTとスペクトログラム、メルバンクの機能とMFCC」

「音楽認識に基づくスペクトル変換アルゴリズム-CQT」

《本のドキュメント》

おすすめ

転載: blog.51cto.com/15063587/2588660