"AudioMFCC" (ネットエンコーダ)
NetEncoder["AudioMFCC"]
音声ファイルまたはオブジェクトをそのMFCC(メル周波数ケプストラム係数)に変換するエンコーダを表す.
NetEncoder[{"AudioMFCC","param"->val,…}]
前処理と特徴計算のための特定のパラメータを持つエンコーダを表す.
詳細
- "AudioMFCC"エンコーダは,メルスペクトログラムの各フレームの対数のFourierDCTを計算する.最初の数個の係数のみが保管される.メル周波数ケプストラム係数(MFCC)は,(特に発話のケースにおける)もとの信号に含まれる多大な情報を保管する一方で,機能の次元性を著しく減らす.
- NetEncoder[…][input]はエンコーダを入力に適用し,"Real32"のNumericArrayを作る.
- NetEncoder[…][{input1,input2,…}]はエンコーダを入力のリストに適用し,NumericArrayオブジェクトのリストを作る.
- NumericArrayを入力として与えると,出力はNumericArrayとなる.
- エンコーダへの入力にはAudioオブジェクトまたはFile[…]式が使える.
- 出力は,離散余弦変換をメルスペクトログラムに適用し,最初の nc 係数のみを保存することによって計算される.
- エンコーダの出力は 次元{n,nc}のランク2のテンソルであり,n は前処理が適用された後のパーティションの数で,nc は計算に使われる係数の数である.
- ネットワークの構築時に,"port"->NetEncoder[…] を指定すると,エンコーダをネットワークの入力ポートに付加することができる.
- 以下の一般的なパラメータが使用可能である:
-
"Augmentation" None 増加の適用 "Normalization" None 正規化するかどうか "SampleRate" 16000 ターゲットのサンプルレート "TargetLength" All ターゲットの出力の長さ - 追加の分割パラメータ:
-
"WindowSize" Automatic パーティションの長さ "Offset" Automatic パーティションのオフセット "WindowFunction" Automatic パーティションに適用される窓 - メルスペクトログラムのパラメータ:
-
"MaximumFrequency" Automatic メルフィルタの最大周波数 "MinimumFrequency" Automatic メルフィルタの最小周波数 "NumberOfFilters" 40 メルフィルタの数 - MFCCのパラメータ:
-
"NumberOfCoefficients" 13 係数の数 - 各エンコーダのパラメータで以下の設定とサブオプションが指定できる.
- "Normalization"は以下の設定を受け付ける:
-
None 正規化なし "Max" 絶対最大値が 1 に正規化される {"Max",val} 絶対最大値が val に正規化される {"RMS",val} 入力音声信号のRMSが val に正規化される - "TargetLength"は以下の設定を受け付ける:
-
All 入力信号と同じ dur 時間の量として指定される長さ dur n 最初の n 個のパーティション - 指定された"TargetLength"が入力信号の長さと一致しない場合は,充填または刈込みが適用される.
- "Augmentation"を規則のリストとして指定するには以下のキーが使用できる:
-
"Convolution" None インパルス応答を入力にたたみ込む "Noise" None ノイズを入力に加える "TimeShift" None 入力を指定の量だけシフトする "Volume" None 入力を係数倍する "VTLP" None 入力に声道長の摂動を適用する - 増加のパラメータで数値を受け付けるものは,2つの数のリストまたは一変数分布としても指定することができる.前者の場合,数値は与えられた範囲の一様分布に基づいてランダム化される.後者の場合は,ユーザ供給の分布が使われる.
- "Convolution"の可能な値には以下のものがある:
-
None 増加なし signal 入力にたたみ込む File または Audio {mix,signal} 入力と mix パラメータにたたみ込む信号 - "Noise"の可能な値には以下のものがある:
-
None 増加なし amp 振幅 amp を伴うホワイトノイズ noise 追加するノイズ信号を含む File または Audio オブジェクト {amp,noise} 指定の振幅のノイズ信号 - "TimeShift"->t を使うと,入力を t 秒シフトすることができ,必要に応じて充填または刈込みが行われる.Scaled[s]を使うと,入力を s×dur 秒シフトできる.ここで,dur は入力信号の時間的長さである.{t1,t2}またはScaled[{ts1,t2}]を使うと,指定時間同士の間のシフトをランダム化することができる.
- "Volume"->val を使うと,係数器を指定することができる.
- 声道長の摂動(VTLP)は,メルスペクトログラムにおけるフィルタの中央値に一定の量を掛ける."VTLP"val を使うと,摂動の量を指定できる.
- パラメータ"WindowSize"->Automaticを使うと,パーティションの長さには25ミリ秒が使われる."WindowSize"->dur を使うと,時間の長さ dur のパーティションを選ぶことができる."WindowSize"->n を使うと,n 個のサンプルのパーティションの長さを選ぶことができる.
- パラメータ"Offset"->Automaticを使うと,8.33ミリ秒のパーティションのオフセットが使われる."Offset"->dur を使うと,時間の長さ dur のパーティションオフセットを選択できる."Offset"->n を使うと,n 個のサンプルのパーティションオフセットを選択できる.
- パラメータ"WindowFunction"は,窓を各パーティションに適用する.可能な設定には以下のものがある:
-
None 入力音声に窓掛けを適用しない Automatic func 窓を関数 func を使って計算する list サンプルの窓 list を明示する - パラメータ"MinimumFrequency"->Automaticを使うと,周波数はCeiling[sr/ws]として計算される.ここで,sr はサンプルレート"SampleRate"で,ws はパーティションの長さ"WindowSize"である."MinimumFrequency"f を使うと,フィルタの最小周波数を f に設定できる.
- パラメータ"MaximumFrequency"->Automaticを使うと,周波数はRound[Min[8000,sr/2]]]として計算される.ここで,sr はサンプルレート"SampleRate"である."MaximumFrequency"f を使うと,フィルタの最大周波数を f に設定できる.
- パラメータ"NumberOfFilters"->n を使うと,MFCCの計算に n 個のフィルタが使われる.
- パラメータ"NumberOfCoefficients"->n を使うと,MFCCの計算に n 個の係数が使われる.
パラメータ
例題
すべて開くすべて閉じる例 (1)
スコープ (3)
NetEncoder["AudioMFCC"]はFileまたはAudioオブジェクトを符号化できる.以下ではメルスペクトログラムのエンコーダを作る:
エンコーダをFileオブジェクトに適用する:
エンコーダをインコアのAudioオブジェクトに適用する:
エンコーダをアウトオブコアのAudioオブジェクトに適用する:
Audioオブジェクトのリストを作る:
NetEncoder["AudioMFCC"]は入力バッチ全体に適用される:
MFCCのNetEncoderを作る:
ネットワークをAudioオブジェクトに適用する:
パラメータ (9)
"Normalization" (1)
"SampleRate" (1)
Audioオブジェクトを作る:
エンコーダの指定を"SampleRate"8000にすると,短時間フーリエ変換が行われる前に,信号を8000Hzにリサンプリングする:
"TargetLength" (1)
"Offset" (1)
Audioオブジェクトを作る:
パーティションのオフセットは自動的にパーティションの1/3の長さで計算される:
エンコーダの指定を"Offset"10にすると,10個のサンプルのオフセットと共にパーティションを使って計算されたMFCCが返される:
"MinimumFrequency" (1)
"MaximumFrequency" (1)
"NumberOfFilters" (1)
Audioオブジェクトを作る:
MFCCの計算には,デフォルトで40個のフィルタが使われる:
エンコーダの指定を"NumberOfFilters"14にすると,14個のフィルタを使って計算されたMFCCが返される:
"NumberOfCoefficients" (1)
Audioオブジェクトを作る:
エンコーダの指定を"NumberOfCoefficients"40にすると,40個のフィルタを使って計算されたMFCCが返される:
特性と関係 (1)
Audioオブジェクトを作る:
MFCCのNetEncoderを作る:
結果の長さはCeiling[length/offset]として計算される.length はリサンプリング後の信号の長さで,offset はエンコーダの"Offset"パラメータである: