使用ctypes从Python调用lame_enc.dll

时间:2011-12-18 02:04:31

标签: python ctypes lame

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

我认为我非常接近,因为我有一个mp3输出,我可以听到一些以22050 Hz,单声道录制的单词。但是有些事情仍然是错误的,因为我也会在输出中获得常规的点击声。

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

我一直在使用:

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

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

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

0 个答案:

没有答案