因此,我正在编写一个语音识别程序。为此,我从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')
Run Code Online (Sandbox Code Playgroud)
在这两种情况下,它们都存在wav文件格式为“ NIST”且必须为“ RIFF”格式的问题。(我也读过有关sph的信息,但是我下载的nist文件是.wav,而不是.sph)。
我从http://sox.sourceforge.net/下载了SOX,然后 将路径正确添加到我的环境变量中,以便我的cmd识别sox。但是我真的找不到如何正确使用它。
我现在需要的是脚本或某种东西,可以使sox将每个wav文件格式从NIST更改为RIFF到某些文件夹和子文件夹下。
编辑:在python中从TIMIT数据库读取WAV文件时,我发现了一个对我有用的响应...运行sph2pipe -f wav input.wav output.wav
我需要的是脚本或在文件夹下搜索的内容,所有包含.wav文件的子文件夹都适用于该行代码。
由于forfiles
是Windows命令,因此这是unix的解决方案。只需cd
在上面的文件夹中输入:
find . -name '*.WAV' | parallel -P20 sox {} '{.}.wav'
不过,您需要同时安装并行和sox,但对于Mac,您可以通过进行安装brew install
。希望这可以帮助。
好吧,我终于明白了。转到上层文件夹并运行以下代码:
forfiles /s /m *.wav /c "cmd /c sph2pipe -f wav @file @fnameRIFF.wav"
Run Code Online (Sandbox Code Playgroud)
此代码搜索每个文件并使其对于 python 库可读。希望能帮助到你!
归档时间: |
|
查看次数: |
919 次 |
最近记录: |