天天看点

【语音识别】Linux下关于语音识别中的resample的问题

先说一下问题背景,之前由于自己购买设备不小心,买了一个双咪头的麦克风,到录音的时候可就费劲了,一会立体声,一会单声道,一会44100kHz,一会16000kHz,反正极其不稳定,为了后续处理方便,我就想直接把所有输入音频都转化为16000kHz,单声道的,虽然好像很简单,但初学还是踩了很多坑。

Resample 和 Stereo 转 Mono

这里本来还想讲讲故事的,但还是算了,直接上干货吧。在寻找解决方法的时候踩了很多坑,但最终领悟了一个道理,小工具还是Linux做的强啊!永远要记住这个真理。

首先说最终的解决途径:

sox infile.wav -r 44100 outfile.wav rate
           

上述是Linux下解决resample最简单,最容易的方法。直接利用sox解决,在Python中编程也比较好实现,直接用os调用系统命令即可。

然后是Stereo转Mono:

sox infile.wav outfile.wav channels 1
           

其实这就是全部的解决方案,就是这么简单!我却搞了一天,原因就是我就像用Python编程解决,后来发现,都不靠谱,不过这个过程用还是认识了不少Python下的音频处理工具,比如Scipy、LibROSA、Pydub等等,有兴趣的也可以去学习学习,这里我就是自己记录一下,以免后来忘记。

继续阅读