3

私はPythonctypesを使用してlame_enc.dllとインターフェイスし、wavをmp3にエンコードしようとしています。この問題は、2008年にhttp://www.dreamincode.net/forums/topic/72083-lame-mp3-encoder-for-python/で解決なしで議論されました。

22050 Hz、モノラルでwavに録音されたいくつかの単語を聞くことができるmp3出力があるので、私はかなり近いと思います。ただし、出力で通常のクリック音も聞こえるので、まだ問題があります。

私のコードは次の場所にあります:http://pastebin.com/SFwCuZZU

私が使用している:

考えられる問題の1つは、ctypesによって報告されるbeConfigデータ構造のサイズが332バイトであり、ヘッダーファイルに記載されている予想される331バイトではなく、手動チェックで予想されることです。それからまた、それはただの設定設定かもしれません。

更新:http://pastebin.com/cdUniF1eを参照してください ほぼそこにあります... beEncodeChunkの2番目のパラメーターは、バイト数ではなく、サンプル数です。Mp3は、最初のワンクリックを除いて、今は良い音に聞こえます:-(。

成功!それはまだあまりきれいではありませんが、動作します。wavの44バイトヘッダーの仮定は常に正しいとは限りません。そのため、クリックしました。これは、wavヘッダーから最初のmp3チャンクにデータをエンコードしていました。代わりにPythonウェーブモジュールを使用してフレームを読み取りました(チャネル数とフレームレートを簡単に取得できるという追加の利点があります)。http://pastebin.com/ehDajzhNを参照してください。

4

0 に答える 0