Raspbianでオーディオ出力を録音する方法は?


0

Raspberry Piでは、サウンド(pygame)を生成するPythonファイルをいくつか実行しています。それらの音を再生しながら録音したいです。

それらはリストされたデバイスの出力ですarecord

pi@raspberrypi:~ $ arecord -l
**** List of CAPTURE Hardware Devices ****
card 1: Loopback [Loopback], device 0: Loopback PCM [Loopback PCM]
  Subdevices: 8/8
  Subdevice #0: subdevice #0
  Subdevice #1: subdevice #1
  Subdevice #2: subdevice #2
  Subdevice #3: subdevice #3
  Subdevice #4: subdevice #4
  Subdevice #5: subdevice #5
  Subdevice #6: subdevice #6
  Subdevice #7: subdevice #7
card 1: Loopback [Loopback], device 1: Loopback PCM [Loopback PCM]
  Subdevices: 8/8
  Subdevice #0: subdevice #0
  Subdevice #1: subdevice #1
  Subdevice #2: subdevice #2
  Subdevice #3: subdevice #3
  Subdevice #4: subdevice #4
  Subdevice #5: subdevice #5
  Subdevice #6: subdevice #6
  Subdevice #7: subdevice #7

arecord再生したサウンドを録音するためにいくつかのオプションを試しましたが、システムサウンドをキャプチャすることはできませんでした。これはまったく不可能ですか、別の解決策がありますか?


Pulseaudioを実行していますか?はいの場合、より簡単な解決策があります。そうでない場合、ループバックデバイスをどのように構成しましたか?再生にループバックデバイスのもう一方の端を使用するようにPythonファイルを構成しましたか?または、これをのようdefaultに設定しました.asoundrcか?
-dirkt

modprobe snd_bcm2835Pythonでサウンドを再生する前に使用しました
-vtni

回答:


2

言わなかったが、Pulseaudioを使用しないと仮定します。行う

ps axu | grep pulse

本当に Pulseaudioを実行していないことを確認します。使用すると、次の機能が機能しなくなります。

あなたはmodprobe snd_bcm2835疑問に示していますループバックデバイスを作成していません。だから、どこかにあなたが持っているmodprobe snd-aloop、あなたはそれをやったことを忘れたか、それはいくつかの構成にあります。

確認するには、両方aplay -lを実行しarecord -l、両方の場合でカード1に2つのデバイスを表示する必要があります。

次に、ループバックデバイスの動作をテストしましょう。大きなWAVファイル(たとえば、「music.wav」)を見つけ、2つのターミナルを開いて

aplay -vv -D hw:1,0,0 music.wav

1つの端末で、その後

arecord -vv -D hw:1,1,0 -f S16_LE -r 44100 -c 2 /dev/null

他の。パラメーターは、WAVファイルの形式と一致する必要があります。のVUメーターとaplay同期して移動するVUメーターが表示されarecordます。

最後に、Pythonプログラムにhw:1,0,0サウンド出力デバイスとして使用するように指示しますが、Pythonプログラムは機能し、そのために必要な情報はすべて提供します。

または、~/.asoundrc(Linuxユーザーごと)または/etc/asound.conf(システム全体)のようなエントリを作成します

pcm.!default { type hw card 1 } 
ctl.!default { type hw card 1 } 

これsnd-aloopは常にカード1にロードされ、Pythonプログラムdefaultがデフォルトの出力として使用する指をクロスすると仮定します。

その後、上記のようにループバックデバイスの反対側から録音できます。

注:これは仮想の「サウンドカード」であり、この「カード」で再生および録音されたサウンドは聞こえません。同時に聞いて録音したい場合は、Pulseaudioを実行することをお勧めします。


ありがとうございました!私はそれをPythonで動作させる方法を理解していませんが、最初のテストは成功しました:)オーディオ出力を「クローン」することも可能ですか?実際、スピーカーで音を聞きたいのですが、それも録音する必要があります。
vtni

1
ALSAの出力を2つのデバイスに「クローン」する方法がわかりません。それは可能性があるいくつかで動作するasoundrcプラグインの同じIPCキーを使用して、魔法が、私はテストするのが面倒です。先ほど言ったように、Pulseaudioをインストールしmonitor、シンクの出力から録音するだけです。設定が非常に簡単です。
dirkt
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.