2

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

但是,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 Hz u-law 单声道或双声道,我认为都是 8 位的(肯定是 8 位的)。

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

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

我一般是音频处理的新手,所以任何指针都将不胜感激!

4

1 回答 1

0

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

我会尝试解压缩“sph”文件,然后将它们转换为“wav”(例如,请参阅此处此处的说明)。

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

于 2013-07-24T09:58:37.727 回答