Audio 将大量数据从NIST更改为RIFF wav文件

Audio 将大量数据从NIST更改为RIFF wav文件,audio,wav,sox,Audio,Wav,Sox,所以,我正在写一个语音识别程序。为此,我从TIMIT下载了400MB的数据。当我尝试读取wav文件时(我尝试了两个库),如下所示: import scipy.io.wavfile as wavfile import wave (fs, x) = wavfile.read('../data/TIMIT/TRAIN/DR1/FCJF0/SA1.WAV') w = wave.open('../data/TIMIT/TRAIN/DR1/FCJF0/SA1.WAV') 在这两种情况下,他们都存在wav

所以,我正在写一个语音识别程序。为此,我从TIMIT下载了400MB的数据。当我尝试读取wav文件时(我尝试了两个库),如下所示:

import scipy.io.wavfile as wavfile
import wave

(fs, x) = wavfile.read('../data/TIMIT/TRAIN/DR1/FCJF0/SA1.WAV')
w = wave.open('../data/TIMIT/TRAIN/DR1/FCJF0/SA1.WAV')
在这两种情况下,他们都存在wav文件格式显示为“NIST”且必须为“RIFF”格式的问题。(我也读了一些关于sph的内容,但我没有加载的nist文件是.wav,而不是.sph)

我从 我将路径正确地添加到环境变量中,以便cmd识别sox。但我真的找不到如何正确使用它

我现在需要的是一个脚本或其他东西,让sox在某个文件夹和子文件夹下将每个wav文件格式从NIST更改为RIFF

编辑: 在这篇文章中,我找到了一个适合我的答案。。。 正在运行
sph2pipe-f wav input.wav output.wav

我需要的是一个脚本或是在一个文件夹下搜索的东西,所有包含.wav文件的子文件夹都要应用这行代码。

好的,我终于找到了。转到上面的文件夹并运行以下代码:

forfiles /s /m *.wav /c "cmd /c sph2pipe -f wav @file @fnameRIFF.wav"

这段代码搜索每个文件,并使其在python库中可读。希望有帮助

因为
forfiles
是一个Windows命令,所以这里有一个unix解决方案。 只需将
cd
放入上方文件夹,然后键入:

find-名称'*.WAV'| parallel-P20 sox{}'{.}.WAV'


不过,您需要安装parallel和sox,但对于Mac,您可以通过
brew安装
获得这两种软件。希望这有帮助。

尝试sox REDUCTAL.nist REDUCTAL.riffsox失败格式:无法打开输入文件'REDUCTAL.nist':没有这样的文件或目录而不是'REDUCTAL',您需要输入文件名。哈,抱歉。工作完美,只是sox SA1.WAV SA1.WAV的代码!实际上更好,因为我可以重写文件。另一个解决方案不行(至少对我来说)。谢谢