3

我一直在尝试使用 Python ctypes 与 lame_enc.dll 交互,并将 wav 编码为 mp3。2008 年在http://www.dreamincode.net/forums/topic/72083-lame-mp3-encoder-for-python/上讨论了这个问题,但没有得到解决。

我认为我已经很接近了,因为我有一个 mp3 输出,我可以在其中听到一些以 22050 Hz 单声道录制为 wav 的单词。但是还是有问题,因为我在输出中也经常听到咔哒声。

我的代码位于: http: //pastebin.com/SFwCuZZU

我一直在使用:

一个可能的问题是 ctypes 报告的我的 beConfig 数据结构的大小是 332 字节,而不是头文件中记录的预期 331,我期望手动检查。再说一遍,它可能只是配置设置。

更新:见http://pastebin.com/cdUniF1e 差不多了... beEncodeChunk 的第二个参数是样本数,而不是字节数。Mp3 现在听起来不错,除了在开头单击一下 :-(。

成功!它仍然不是很漂亮,但它有效。wav 的 44 字节标头的假设并不总是正确的,这就是我点击的原因 - 它将 wav 标头中的数据编码到第一个 mp3 块中。我使用 Python wave 模块来读取帧(还有一个额外的好处是可以轻松获得通道数和帧速率。)请参阅http://pastebin.com/ehDajzhN

4

0 回答 0