我正在尝试使用最初为 .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 位的)。
有没有办法使用 matlab 或任何其他程序从音频文件中获取整数表示?u-law 或线性都可以,除非一个更适合神经网络训练。最好是 8 位,因为源文件是 8 位的。
我不太明白.SPH。对于未压缩的(并忽略标题),文件是否存储幅度(猜测它必须以某种方式)?我可以直接从这些文件中提取数字而不用担心波浪吗?信号是否以顺序方式存储,以便拆分音频文件有意义?
我一般是音频处理的新手,所以任何指针都将不胜感激!