Raspberry Pi 3にマイクロホンを接続し、arecord コマンドを使用して音声を録音し、aplayコマンドを使用して録音した音声を再生します。

Raspberry Pi 3とマイクロホンの接続

マイクロホンは、サンワサプライ USBヘッドセット/ヘッドホン ブラック MM-HSU01BKを使用しました。USBコネクタに次のように接続します。

Raspberry Pi 3とマイクロホンの接続

USBヘッドセット/ヘッドホンを接続して、lsusbコマンドで確認すると次のように認識します。USBヘッドセット/ヘッドホンは、「C-Media Electronics, Inc.」と認識されます。

$ lsusb
Bus 001 Device 004: ID 0d8c:0139 C-Media Electronics, Inc.
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp. SMSC9512/9514 Fast Ethernet Adapter
Bus 001 Device 002: ID 0424:9514 Standard Microsystems Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

次に、USBオーディオアダプタの優先度を次のコマンドで確認します。数字が小さい方が優先度高いので、もし、usbオーディオアダプタsnd_usb_audioの優先順位が低い場合、「Raspberry Pi 3にUSB DACの接続」に従って設定を変更します。

$ cat /proc/asound/modules
 0 snd_usb_audio
 1 snd_bcm2835

マイクの感度を次に示すamixerコマンドで調整します。Micの後の数字はマイクに応じて適宜調整します。実行すると出てくる表示の最後の [81%]というのが感度です。

$ amixer sset Mic 13
Simple mixer control 'Mic',0
  Capabilities: cvolume cvolume-joined cswitch cswitch-joined
  Capture channels: Mono
  Limits: Capture 0 - 16
  Mono: Capture 13 [81%] [19.34dB] [on]

マイクロホンによる音声録音

接続されたマイクロホンで音声録音します。次ののコマンドでtest.wavというファイルに録音します。以下のコマンドを実行した後、マイクに声を吹き込みます。吹き込み終わると、Ctrl+Cで終了します。

$ arecord -r 16000 -f S16_LE test.wav

録音した音声を確認します。最初に、aplayコマンドでデバイスを確認します。

$ aplay -l
**** ハードウェアデバイス PLAYBACK のリスト ****
カード 0: Device [USB PnP Sound Device], デバイス 0: USB Audio [USB Audio]
  サブデバイス: 1/1
  サブデバイス #0: subdevice #0
カード 1: ALSA [bcm2835 ALSA], デバイス 0: bcm2835 ALSA [bcm2835 ALSA]
  サブデバイス: 8/8
  サブデバイス #0: subdevice #0
  サブデバイス #1: subdevice #1
  サブデバイス #2: subdevice #2
  サブデバイス #3: subdevice #3
  サブデバイス #4: subdevice #4
  サブデバイス #5: subdevice #5
  サブデバイス #6: subdevice #6
  サブデバイス #7: subdevice #7
カード 1: ALSA [bcm2835 ALSA], デバイス 1: bcm2835 ALSA [bcm2835 IEC958/HDMI]
  サブデバイス: 1/1
  サブデバイス #0: subdevice #0

音声出力のコマンドは、先ほど録音した「test.wav」というファイルを再生する場合は以下のような形式となります。

$ aplay -D plughw:[card, device] test.wav

 例えば上の場合だと、[0,0]がUSBヘッドセットのオーディオ、[1,1]がHDMIのオーディオなので、USBヘッドセットから音出したい場合は以下のように実行します。plugをつけると指定のフォーマット、ビットレートになるよう自動でリサンプリング処理を行ってくれます。

$ aplay -D plughw:0,0 test.wav

次のaplayコマンドパラメータでは、「モノラル音声は再生できない」と怒られています。

$ aplay -D hw:0,0 test.wav
再生中 WAVE ‘test.wav’ : Signed 16 bit Little Endian, レート 44100 Hz, モノラル
aplay: set_params:1239: チャネル数が使用不可能