无法提取delta和delta delta功率谱计算

Unable to extract delta and delta delta power spectrum computation

我目前正在尝试使用 kaldi 提供的 add-deltas 二进制文件提取 delta + delta-delta。但出于某种原因我无法提取它。

我通常使用 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 \

管道中每个命令的输出都传递给下一个命令。无法将输出写入文件并将其同时传递给下一个命令。您正试图在 compress-feats 中写入数据,同时您正试图将其传递给 add-deltas.

您不能用一个命令同时编写原始和增量专长。要么你写增量而不写原始传递标准输出 compute-feats 到 add-deltas:

$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

或运行两项工作:

$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 \

可以使用命名管道将这两者组合在一个命令中,但我不建议这样做。简单地运行上面的单个作业更直接