所以,我正在编写一个语音识别程序。为此,我从 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)。
我然后从下载了 SOXhttp://sox.sourceforge.net/ http://sox.sourceforge.net/我将路径正确添加到环境变量中,以便我的 cmd 识别 sox。但我真的找不到如何正确使用它。
我现在需要的是一个脚本或其他东西,使 sox 将某些文件夹和子文件夹下的每个 wav 文件格式从 NIST 更改为 RIFF。
编辑:
在在python中从TIMIT数据库读取WAV文件 https://stackoverflow.com/questions/44748258/reading-a-wav-file-from-timit-database-in-python?rq=1我找到了对我有用的回复......
跑步sph2pipe -f wav input.wav output.wav
我需要的是一个脚本或在文件夹下搜索的东西,所有包含 .wav 文件的子文件夹都可以应用该行代码。
Since forfiles
是Windows命令,这里是unix的解决方案。
只是cd
到上层文件夹并输入:
find . -name '*.WAV' | parallel -P20 sox {} '{.}.wav'
您需要已经安装parallel and sox不过,对于 Mac,您可以通过以下方式获取两者brew install
。希望这可以帮助。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)