首页 文章

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

提问于
浏览
2

我正在尝试使用最初为.SPH格式的音频文件来训练神经网络 . 我需要获得表示神经网络声波振幅的整数,所以我使用sox将文件转换为.wav格式,调用 sox infile.SPH outfile.wav remix 1-2 (将两个通道转换为1的混音),然后尝试在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位单声道) .

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

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

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

1 回答

  • 0

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

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

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

相关问题