2017-02-09 7 views
1

現在、kaldiによって提供されている追加デルタバイナリファイルを使用してデルタ+デルタデルタを抽出しようとしています。しかし何らかの理由で私はそれを抽出することができません。デルタおよびデルタデルタパワースペクトル計算を抽出できません

私は通常、make_spectrum.shスクリプトを使用してパワースペクトルを抽出します。 デルタを含むように少し修正しましたが、出力はデルタ部分なしで受け取られたものと全く異なるものではありません。

私は間違っていますか?

$cmd JOB=1:$nj $logdir/spect_${name}.JOB.log \ 
    compute-spectrogram-feats --frame-length=25 --frame-shift=10 --verbose=2 \ 
    scp,p:$logdir/wav_spect_${name}.JOB.scp ark:- \| \ 
    copy-feats --compress=$compress $write_num_frames_opt ark:- \ 
     ark,scp:$specto_dir/raw_spectogram_$name.JOB.ark,$specto_dir/raw_spectogram_$name.JOB.scp \| \ 
     add-deltas ark:- ark,scp:$specto_dir/raw_spectogram_$name.JOB.ark,$specto_dir/raw_spectogram_$name.JOB.scp \ 

答えて

2

パイプ内のすべてのコマンドの出力は、次のコマンドに渡されます。出力をファイルに書き込んで、同じ時間に次のコマンドに渡す方法はありません。あなたは圧縮功績でデータを書き込もうとしているのと同時に、それを追加デルタに渡そうとしています。

rawコマンドと差分コマンドの両方を1つのコマンドで書き込むことはできません。あなたは、デルタを追加するために、コンピューティング、偉業の生の合格標準出力を書き込むことなく、デルタを書き、次のいずれか

$cmd JOB=1:$nj $logdir/spect_${name}.JOB.log \ 
    compute-spectrogram-feats --frame-length=25 --frame-shift=10 --verbose=2 \ 
     scp,p:$logdir/wav_spect_${name}.JOB.scp ark:- \| 
    add-deltas ark:- ark,scp:$specto_dir/delta_spectogram_$name.JOB.ark,$specto_dir/delta_spectogram_$name.JOB.scp 

または2つのジョブを実行します。

$cmd JOB=1:$nj $logdir/spect_${name}.JOB.log \ 
    compute-spectrogram-feats --frame-length=25 --frame-shift=10 --verbose=2 \ 
    scp,p:$logdir/wav_spect_${name}.JOB.scp ark:- \| \ 
    copy-feats --compress=$compress $write_num_frames_opt ark:- \ 
     ark,scp:$specto_dir/raw_spectogram_$name.JOB.ark,$specto_dir/raw_spectogram_$name.JOB.scp 

$cmd JOB=1:$nj $logdir/spect_${name}_deltas.JOB.log \ 
     add-deltas scp:$specto_dir/raw_spectogram_$name.JOB.scp ark,scp:$specto_dir/delta_spectogram_$name.JOB.ark,$specto_dir/delta_spectogram_$name.JOB.scp \ 

をこれら二つを組み合わせるために、名前付きパイプでトリックを行うことが可能です1つのコマンドで、私はそれをお勧めしません。上記の単一のジョブを単純に実行する方が簡単です

+0

ありがとうございました。 それは本当に私の問題を解決しました.. 私は、情報がどのように格納されているかに関する副問答を持っています。 デルタとデルタデルタはどちらですか? – Loser

+2

最初はスペクトラム、中央はデルタ、最後はデルタデルタ –

+0

スペクトルはraw_spectogram_ $ name.JOBに格納されます。 デルタはdelta_spectogram_ $ name.JOBにあります。 スペクトルとデルタは別々のファイルにあります。 – Loser

関連する問題