我正在尝试使用
audioop.ulaw2lin(ulaw_audio_bytes, 2)
在 python 中将 u-law 音频转换为 16 位 8khz 原始音频。
生成的字节对象具有正确的大小,但是如果我将其作为 16 位 8khz 原始音频写入波形文件,结果是双倍速度,具有中低频噪声和相当低的整体音量。
由 ulaw2lin 以宽度 1 处理并保存为 8 位 8khz wav 文件的相同音频听起来不错(模数表示的限制以及需要转换为 8 位 wav 所需的无符号整数)。
我错过了什么?原则上我应该用 16 位表示获得更好质量的音频。
原来是 PyVoip 中的后处理,最初是为 8 位音频编码的。 PyVoip 内部缓冲区中长度计算的假设意味着每个数据包的一半被丢弃。