将大量数据从 NIST 更改为 RIFF wav 文件
Change huge amount of data from NIST to RIFF wav file
所以,我正在写一个语音识别程序。为此,我从 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)。
然后我从 http://sox.sourceforge.net/ 下载了 SOX
我将路径正确添加到我的环境变量中,以便我的 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 . -name '*.WAV' | parallel -P20 sox {} '{.}.wav'
虽然你需要安装 parallel 和 sox,但是对于 Mac 你可以通过 [=13 获得两者=].希望这有帮助。
所以,我正在写一个语音识别程序。为此,我从 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)。
然后我从 http://sox.sourceforge.net/ 下载了 SOX 我将路径正确添加到我的环境变量中,以便我的 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 . -name '*.WAV' | parallel -P20 sox {} '{.}.wav'
虽然你需要安装 parallel 和 sox,但是对于 Mac 你可以通过 [=13 获得两者=].希望这有帮助。