1

在将音频引入我们的语音检测系统之前,我使用 sox 对音频进行重新采样,但是我遇到了一个问题,即 sox 的 14.3 版本默认为重新采样操作添加了自动抖动,这是我们不想要的。

如果我们知道我们总是使用 sox ≥ 14.3,这将不是问题,因为我们可以使用新-D标志来禁用它:

sox original.wav -Dr 8000 new.wav

但是,我们不能保证我们将使用 sox ≥ 14.3,因此如果需要,我需要某种方式来指定 -D 标志,否则将其省略(因为它在无法识别时出错)。

有任何想法吗?

4

1 回答 1

0

我的第一个想法是这样的:

# assume -D flag is available to disable automatic dithering
sox original.wav -Dr 8000 new.wav
# if -D flag isn't available (sox < 14.3), then dithering isn't automatic
if [$? -ne 0]; then
   sox original.wav -r 8000 new.wav
fi

因为检查版本号似乎很痛苦,而且不是很面向未来。

唯一的主要缺点是,如果出现其他错误,则会尝试两次操作。

于 2009-11-20T03:13:11.740 回答