"Audio" (ネットエンコーダ)

NetEncoder["Audio"]

音声ファイルまたはオブジェクトを音声サンプルのテンソルに変換するエンコーダを表す.

NetEncoder[{"Audio","param"->val,}]

前処理のための特定のパラメータを持つエンコーダを表す.

詳細

  • "Audio"エンコーダは,信号の波形を返す.もとの信号にあるすべての情報は波形の中にある.
  • NetEncoder[][input]はエンコーダを入力に適用し,出力を作る.
  • NetEncoder[][{input1,input2,}]はエンコーダを入力のリストに適用し,出力のリストを作る.
  • エンコーダへの入力にはAudioオブジェクトまたはFile[]式が使える.
  • エンコーダの出力はサイズが n×1の行列で,n は前処理が適用された後の音声サンプルの数を表す.
  • ネットワークの構築時に"port"->NetEncoder[]と指定すると,エンコーダをネットワークの入力ポートに付加することができる.
  • パラメータ
  • 以下のパラメータが使用可能である.
  • "Augmentation"None増加を適用
    "Normalization"None正規化を行うかどうか
    "SampleRate"16000ターゲットのサンプルレート
    "TargetLength"Allターゲットの出力の長さ
  • 各エンコーダに以下の設定とサブオプションが指定できる.
  • "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入力に係数を掛ける
  • 数値を受け付ける増加パラメータは,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 を使うと,係数器が指定できる.

例題

すべて開くすべて閉じる

  (2)

音声のNetEncoderを作る:

3つのサンプルを使ってAudioオブジェクトを作る:

Audioオブジェクトにエンコーダを適用する:

エンコーダの結果をプロットする:

スコープ  (3)

NetEncoder["Audio"]FileまたはAudioオブジェクトを符号化できる.以下で音声エンコーダを作る:

エンコーダをFileオブジェクトに適用する:

エンコーダをインコアのAudioオブジェクトに適用する:

エンコーダをアウトオブコアのAudioオブジェクトに適用する:

Audioオブジェクトのリストを作る:

NetEncoder["Audio"]は入力全体に適用される:

音声のNetEncoderを作る:

エンコーダをネットの入力に付加する:

ネットをAudioオブジェクトに適用する:

パラメータ  (3)

"Normalization"  (1)

3つのサンプルを使ってAudioオブジェクトを作る:

エンコーダの指定を"Normalization"->Noneにして,正規化を無効にする:

エンコーダの指定を"Normalization"->Automaticにして,最大絶対値を1として正規化する:

結果の最小値と最大値を求める:

"SampleRate"  (1)

3つのサンプルを使って,16000のサンプルレートでAudioオブジェクトを作る:

エンコーダのサンプルレートがもとの音声よりも低い場合は,結果のサンプルの数が少なくなる:

エンコーダのサンプルレートがもとの音声よりも高い場合は,結果のサンプルが多くなる:

"TargetLength"  (1)

3つのサンプルを使ってAudioオブジェクトを作る:

エンコーダの指定を"TargetLength"Allにすると,3つのサンプルすべてが返される:

エンコーダの指定を"TargetLength"->5にすると,出力は充填なしで長さ5になる:

エンコーダの指定を"TargetLength"2にすると,最初の2つのサンプルのみを取る.

考えられる問題  (1)

入力が多チャンネル信号である場合は,それらのチャンネルの平均が返される: