arecord を使用して Linux (Raspbian) のデフォルト デバイスからオーディオを録音する

arecord を使用して Linux (Raspbian) のデフォルト デバイスからオーディオを録音する

次のコマンドで音声を録音できます:

arecord -D plughw:0 --duration=10 -f cd -vv rec7.wav

そして、~/.asoundrcこれがあります:

pcm.!default {
        type hw
        card 0
}

ctl.!default {
        type hw
        card 1
}

また、録音したファイルは で再生できますaplay rec7.wav

重要なのは、録音時にどのデバイスを使用するかを明確に指定する必要があることです。再生時にはその必要がなくても問題なく動作します。なぜでしょうか?

このように録音したいのですが、デフォルトのデバイスarecord --duration=10 -f cd -vv rec7.wavを作成する方法が見つかりません。plughw:0

私はこれをRaspbianで試しています。そして、外付けUSBマイク

答え1

キャプチャと再生に異なるハードウェア デバイスを使用しているため、問題が発生している可能性があります。構成ファイルでは、pcmセクションは PCM デバイス (再生と録音) を指定し、ctlセクションはパラメータ (制御デバイス) を設定するためのものです。Raspberry Pi オーディオ カードはキャプチャをサポートしていないため、pcm構成ファイルに設定されているデフォルトのデバイスarecordではエラーが返されます。これを回避するには、構成ファイルで異なるデフォルトのデバイスを設定できます。再生とキャプチャに異なるハードウェア デバイスを使用する 1 つの方法は、プラグインを使用することですasym

.asoundrcこれはうまくいくはずです

pcm.usbmic {
    type hw
    card 1
}

pcm.playback {
    type hw
    card 0
}

pcm.!default {
    type asym
    playback.pcm{
        type plug
        slave.pcm "playback"
    }
    capture.pcm{
        type plug
        slave.pcm "usbmic"
    }
}

ソースALSA wikiページPCMプラグイン(「プラグイン:asym」のセクションを参照)サウンド

関連情報