オーディオファイル(.ogg、.wavなど)を取得してWebページで再生するためにmp3に変換するPythonライブラリを見つけようとしています。
また、再生の品質を設定することについての考えは素晴らしいでしょう。
ありがとうございました。
PyMediaがこれを行うように見えます:
ビットレートを設定しながら、さまざまな形式に変換する方法については、こちらをご覧ください。
http://pymedia.org/tut/recode_audio.html
例えば.
params= {
'id': acodec.getCodecId('mp3'),
'bitrate': r.bitrate,
'sample_rate': r.sample_rate,
'ext': 'mp3',
'channels': r.channels }
enc= acodec.Encoder( params )
私が書いた ライブラリ それを行うように設計された= D
from pydub import AudioSegment
AudioSegment.from_file("/input/file").export("/output/file", format="mp3")
簡単!
ビットレートを指定するには、bitrate
kwargを使用するだけです…
from pydub import AudioSegment
sound = AudioSegment.from_file("/input/file")
sound.export("/output/file", format="mp3", bitrate="128k")
私はgstreamerにPythonバインディングを使用しています。始めるのは少し難しいですが、いったん始めればほとんど何でも可能です。
コマンドラインから( gstreamerのドキュメント から):
_gst-launch -v filesrc location=music.wav ! decodebin ! audioconvert ! audioresample ! lame bitrate=192 ! id3v2mux ! filesink location=music.mp3
_
入力_filesrc location=...
_は、.wavだけでなく、gstreamerが再生できるものであれば何でもかまいません。エンコードする前に、キャップフィルターと呼ばれるものを追加して、特定のレートにリサンプリングすることができます。
Pythonプログラムでは、gst.parse_launch(...)
を使用し、filesrc要素とfilesink要素を取得し、setterを呼び出して入力ファイル名と出力ファイル名を変更します。
また、 Python Audio Tools は、他のライブラリを必要とせずにジョブを実行できるはずです。これは、共有Webホスティングアカウントでこれを実行する場合に簡単になる可能性があります。 (しかし、確かに私はそれを試したことがないので、それがどれほど使いやすいかは確認できません。)
Ctypesモジュールを使用して、ダイナミックライブラリから直接関数を呼び出すことができます。外部Python libsをインストールする必要はなく、コマンドラインツールよりもパフォーマンスが優れていますが、通常は実装が困難です(もちろん、外部ライブラリを提供する必要があります)。
この単純なタスクのPythonモジュールのインストールを回避する別のオプションは、Pythonスクリプト(popenを使用)から "lame"または他のコマンドラインエンコーダーを実行することです。モジュール。)