获取.SPH音频文件的整数表示

时间:2013-07-24 06:20:31

标签: matlab neural-network wave sox

我正在尝试使用最初为.SPH格式的音频文件来训练神经网络。我需要获得表示神经网络声波振幅的整数,所以我使用sox通过调用sox infile.SPH outfile.wav remix 1-2(将2个通道转换为1的混音)将文件转换为.wav格式,然后尝试使用 在matlab中[y, Fs, nbits, opts] = wavread('outfile.wav')获取整数表示。

然而,matlab扔了Data compression format (CCITT mu-law) is not supported. 所以我使用sox infile.SPH -b 16 -e signed-integer -c 1 outfile.wav认为将波形文件放在线性格式而不是mu-law中。但是现在matlab又犯了一个错误:Invalid Wave File. Reason: Cannot open file.

我的音频文件是8000赫兹u-law单通道或双通道,全部采用8位,我认为(肯定是8位单声道)。

  1. 有没有办法使用matlab或任何其他程序从音频文件中获取整数表示?无论是u律还是线性都可以,除非有人对神经网络训练更好。最好是8位,因为源文件是8位的。

  2. 我真的不明白.SPH。对于未压缩的(并忽略标题),存储幅度的文件(猜测它必须以某种方式)?我可以直接从这些文件中提取数字而不用浪费吗?信号是否以顺序方式存储,以便分割音频文件?

  3. 我是音频处理的新手,所以任何指针都会受到赞赏!

1 个答案:

答案 0 :(得分:0)

你需要清楚地确定主要任务:用向量或矩阵喂养神经网络。所以第一步是处理音频文件(没有matlab!)以获得wav文件。第二步是用matlab进行神经网络设置/训练。

我会尝试解压缩'sph'文件,然后将其转换为'wav'(例如,请参阅说明herehere)。

最后,在命令/终端窗口中使用sox比在matlab控制台中使用sox更好。