2016-05-05 24 views
1

マイク入力のようなmp3ファイルを再生する方法はありますか?pythonを使ってmp3ファイルを再生する

たとえば、私はmp3ファイルを持っていて、私のマイクを通してそれを再生するようなpythonスクリプトを使用しているので、ボイスルームの他の人はそれを聞くでしょう。私が言うように、それはほんの一例です。

もちろん、私はいくつかの研究を行っています。ソフトウェアを使用して仮想デバイスを作成し、結果を得るためのいくつかのことを行うことができることがわかった。しかし、私の要点は、ソフトウェアをインストールせずに、Pythonスクリプトのようなものがあれば可能ですか?

+0

マイクはどういう意味ですか?あなたはスピーカーを意味しましたか? 2つを混ぜてはいけません。言語に問題がある場合は、辞書に相談してください。 – Dalen

+0

いいえ、私は話し手を意味しませんでした。私の質問はこれに非常に似ています:http://stackoverflow.com/questions/28918079/how-to-play-mp3-files-into-the-microphone-input-jquery、唯一の違いは私がしたいですPythonで解決策があります。 –

+0

その後、Qを何とか言い直したり、説明を追加したりしてみてください。それは楽しいものです。あなたは、マイクとマイクの入力は2つの異なることがわかります。私は、スピーカーの代わりにマイクを使いたいと思っていましたが、それはできますが、お勧めできず、マイクを台無しにしてしまいます。私は下のあなたのQに編集の形で答えます。 – Dalen

答えて

0

あなたは、Pythonを使ってMP3を再生する方法を意図している場合は、よく、これは広範な質問です。

これは可能ですか?依存関係はありませんが、それは価値がありません。さて、圧縮されていないオーディオを再生するのはMP3ですが、私は以下で説明します。

pyaudioやpygameなどをインストールせずにPythonから生のオーディオデータを再生するには、まずスクリプトが実行されるプラットフォームを知っている必要があります。

次に、オーディオデバイスを選択し、サンプルレート、ビットレート、モノラル/ステレオなどのプロパティを設定し、ストリームをオーディオカードに供給し、再生を停止するための機能を実装します。

これは難しくありませんが、Windowsではctypesを使用する必要があります.MacとLinuxのPyObjCは、多くのオーディオシステムをサポートしているため特別なケースです(おそらくソケットを使用してPulseAudioに接続するか、/paplay/mpeg123 ...またはgstreamerを利用する)。

しかし、オーディオデバイスにアクセスして使用するためのシンプルなインターフェイスを備えた素晴らしいライブラリがある場合、依存関係を避けるために、これをすべて実行してください。

PyAudioは素晴らしいです。

これはあなたの懸念事項です。

しかし、純粋なPythonからリアルタイムで外部ライブラリなしでMP3を再生することは、まったく不可能ではありませんが、実現するのは非常に難しく、誰もそれをやろうとしていないことはわかっています。

純粋なPython MP3デコーダ実装がありますが、リアルタイムオーディオ再生に必要な速度よりも10倍遅いです。ほぼ完全な速度に最適化できますが、誰もそのようにすることに興味はありません。

ほとんどの場合教育的価値があり、リアルタイムの速度が必要ない場合に使用されます。

これは、あなたが何をすべきかです:

pygameのダウンロードをインストールし、直接

をMP3を再生したりするためにそれを使用します。

PyAudioとMP3をデコードし、いくつかのライブラリをインストールし、それらのかなりの数がありますpypi.python.orgでダウンロードし、MP3をデコードして出力をPyAudioに送ります。

pymediaを含むいくつかの可能性がありますが、私はこれらを最も簡単な解決策と考えています。

さて、実際に必要なものを明確にしたので、答えがあります。

最初の回答はそのまま残しておきます。

これで、録音ストリームにオーディオを再生して、オーディオ入力を録音したアプリケーションが再生しているものを記録するようにしました。

Windowsでは、これはステレオミックスと呼ばれ、ボリュームコントロールのオーディオ入力にあります。

デフォルトの入力としてステレオミックスを選択します。これで、自分の入力チャンネルを選択せず​​に、選択したチャンネル(Skypeなど)を使用するレコーディングアプリを開くと、スピーカーから出てマイク/ラインに入るすべての音が録音されます。

IこのオプションがすべてのWindowsに表示されるのか、それともあなたが所有するオーディオカードの機能なのかを100%確信しているわけではありません。

CreativeとRealtekのオーディオカードでサポートされていると私は肯定的です。

だから、これを研究してください。

Pythonからそのオプションを選択するには、ctypesを使用してwinmm.dllに接続し、適切な関数を呼び出す必要があります。私はどちらがどの引数をもっているのか分からない。

このオプションがボリュームコントロールに存在しない場合は、ループバックを行うための仮想オーディオカードをインストールすることはできません。

Pythonなどから使用できるように、ライブラリとしてパッケージ化されたソフトウェアがあるかもしれません。

Linuxでは、これはPulseaudioを使用すると簡単にできます。私はどうしたのかわかりませんが、ストリームをリダイレクトすることができることはわかっています。どこかでチュートリアルがあります。

このコマンドをPythonから呼び出すと、これを設定して通常に戻すことができます。

Macでは、まあ、私は本当に考えていませんが、可能でなければなりません。

MP3を録音ストリームにのみ再生し、スピーカーでは再生しないようにするには、Windowsでもループバックオーディオデバイスなしでは再生できません。 Linuxの

、私はあなたがそれを行うことができると確信していますし、Mac上でそれが可能なはずですが、どのようQ.

である私は現在、あなたを提供するために、図書館などを中心に盗聴する時間がありませんいくつかの便利なコードで、あなたはそれを自分で行う必要があります。しかし、私の指示があなたに役立つことを願っています。

+0

いいえ、私はそのようなmp3ファイルを再生することを意味しませんでした。私はマイクを通してMP3ファイルを再生することを意味します。例えば、マルチプレイヤーゲームでは、マイクを通して他の人のために音楽を再生することができます。 –

+0

右は、私の編集を読む! – Dalen

0

後藤:http://pymedia.org/tut/ それはマイク、MP3、についてのすべてを伝えるメディアファイル

関連する問題