我一直想和那个瘸子搭讪_加密.dll使用Python ctypes,并将wav编码为mp3。这个问题在2008年的http://www.dreamincode.net/forums/topic/72083-lame-mp3-encoder-for-python/上讨论过,但没有得到解决。在
我想我已经很接近了,因为我有一个mp3输出,我可以听到一些单词录制到wav的22050赫兹,单声道。不过,还是有点不对劲,因为我在输出中也会听到有规律的咔嗒声。在
我的代码在:http://pastebin.com/SFwCuZZU
我一直在使用:
libmp3lame-win-3.98.2.zip windows二进制文件来自http://lame1.buanzo.com.ar/ 在dll文件夹中有一个BladeMP3EncDLL.h文件,其中包含数据结构defs和示例.cpp我正试图将其直接转换为python/ctypes。我已经把它们分别复制到http://pastebin.com/E41nzq7m和{a5}。
来自http://openinnowhere.sourceforge.net/lameonj/LameDLLInterface.htm
一个可能的问题是,ctypes报告的beConfig数据结构的大小是332个字节,而不是头文件中记录的331个字节,这是我通过手动检查所期望的。同样,它可能只是配置设置。在
更新:请参见http://pastebin.com/cdUniF1e 快到了。。。beEncodeChunk的第二个参数是样本数,而不是字节数。Mp3现在听起来不错,除了开始的时候点击一下:-(。在
成功! 它仍然不太漂亮,但很管用。wav的44字节头的假设并不总是正确的,这就是为什么我有点击-它是编码数据从wav头到第一个mp3块。我使用Python wave模块来读取帧(另外一个好处是很容易获得通道数和帧速率) 见http://pastebin.com/ehDajzhN
目前没有回答
相关问题 更多 >
编程相关推荐