Raspberry Pi 4 にUSBマイクを接続

ラズパイにUSBマイクを接続してみました。そのときの記録です。

接続したUSBマイクは、SANWA SUPPLYのMMーMCU01BKです。

 

マイクをUSB端子に接続

マイクをUSB端子に接続するのですが、接続する前と、後の様子を「lsusb」コマンドで確認してみます。「lsusb」はUSBデバイスに関する情報を表示するコマンドです。「-v」オプションを追加するとより詳細な情報が表示されます。

上が、マイクを接続する前、下がマイクを接続した後の「lsusb」の実行結果です。「Bus 001 Device 006: ID 0dbc:8100 C-Media Electronics, Inc.」の行が追加されていることが確認できます。

ALSAについて

ALSA とは、Linux で音声入出力を行うための標準的な仕組みのことです。開発者は ALSA を使う事によってサウンドカードの違いに煩わずに互換性のある音声入出力プログラムを書くことが出来ます。ALSAはUSBマイクをどの様に認識しているのか確認します。「arecord -l」というコマンドを使います。ALSAを使用したサウンドの録音に用いるのがarecordコマンドですが、-lオプションは全てのサウンドカードとオーディオデバイスを表示します。他のオプションは次の通りです。

-M オーディオストリームにメモリマップドI/Oを使用します。

-t ファイルタイプを指定します。指定することのできるファイルタイプについてはヘルプを参照してください。

-f サンプルフォーマットを指定します。指定することのできるサンプルフォーマットについてはヘルプを参照してください。

-d 指定の秒数後に終了します。

-l 全てのサウンドカードとオーディオデバイスを表示します。

-L 全ての定義された PCMを表示します。

-c チャネル数を指定します。

-r サンプルレートを指定します。

-D 使用するPCMを指定します。

-h ヘルプが表示されます。

「USB PnP Sound Device」として認識されています。カード番号とデバイス番号を記録しておきます。今回の場合は、カード番号が「2」で、デバイス番号が「0」となっています。これをALSAの設定ファイルに書き込みます。

ALSAの設定ファイル

ALSAにマイクをデフォルトで優先的に認識させるために、ALSAの設定ファイルを作成します。

$ nano ~/.asoundrc

このコマンドで、ファイルを編集します。

次のコードを入力してください。変更する場所は、カード番号と、デバイス番号です。私の場合はカード番号が「2」で、デバイス番号が「0」でした。

pcm.!default {
    type asym
    capture.pcm "mic"
}
pcm.mic {
    type plug
    slave {
        pcm "hw:カード番号,デバイス番号"
    }
}

出来たら、Ctrl+X、Y、Enterの順に入力して、ファイルの編集を終了します。

ここまでできたら一度、ラズパイを再起動ます。

$ sudo reboot now

USBマイクで録音と再生

arecordで録音

録音をします。「arecord」にファイル名を指定して実行します。

 $ arecord test.wav 

録音が開始されます。Ctrl+Cで終了します。

aplayで再生

続いて、先ほど録音した音声ファイル「test.wav」を再生してみましょう。「aplay test.wav」で再生できます。

$ aplay out.wav</pre>
&nbsp;
<pre>

音声出力先の変更

デフォルトではHDMIになにも接続されていなければ、ヘッドホンジャックから音が出るようになっているはずです。 HDMIに何か繋いでいる場合で、ヘッドホンジャックから音声を出したい場合は、raspi-configで出力先を変更します。

$ sudo raspi-config

次のような画面が現れます。「1 System Options」を選択します。


「1 System Options」を選択します。

「S2 Audio」を選択します。

ここで、「2 Headphones」を選択すると、HDMIの接続の有無にかかわらず、イヤホンジャックから音が出るようになります。

音量調整

音量調整は「alsamixer」コマンドで行います。

上下キーで音量の調整ができます。F6で設定する出力先(ヘッドホンジャック、HDMIなど)の変更ができます。ESCで終了です。

これでUSBマイクの設定ができました。