ラズパイ2日目①:ラズパイにマイクを接続する
Raspberry Pi(ラズパイ)にカメラを接続します。USB挿すだけだしチョレーと思っていたら、意外なところで躓きました。
- ラズパイ:Raspberry Pi 3 Model B+
- マイク:FIFINE USBコンデンサーマイク K669B
ラズパイにマイクを接続する
マイクをUSBポートに接続します。正しく認識されているか、Terminalからlsusbコマンドを実行して確認します。
lsusb Bus 001 Device 005: ID 0c76:161e JMTek, LLC. Bus 001 Device 007: ID 0424:7800 Standard Microsystems Corp. Bus 001 Device 003: ID 0424:2514 Standard Microsystems Corp. USB 2.0 Hub Bus 001 Device 002: ID 0424:2514 Standard Microsystems Corp. USB 2.0 Hub Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
「JMTek, LLC.」がUSBマイクです。デバイスとして認識されていることが確認できました。
USBマイクの優先度を上げる
デフォルトでは内蔵オーディオモジュールを優先して使うよう設定されているため、USBマイクを最優先に変更します。
Terminalからオーディオモジュールの設定を確認します。
$ cat /proc/asound/modules 0 snd_bcm2835 1 snd_usb_audio
上記のように、0(最優先)がsnd_bcm2835(内蔵オーディオモジュール)になっている場合、alsa-base.confファイルを書き換えて設定変更します。 Raspbianの最新バージョン(Raspbian Buster 2019-09-26)ではalsa-base.confファイルが存在しなかったので、Terminalからnanoコマンドで新規作成します。
$ nano /etc/modprobe.d/alsa-base.conf
nanoは、Raspbianに標準搭載されているテキストエディタです。
nanoが立ち上がったら、次のように入力して、Ctrl+O,
MAで書き込み保存します。
options snd slots=snd_audio,snd_bcm2835 options snd_usb_audio index=0 options snd_bcm2835 index=1
…ん?
なんかエラーがでています。
うーん。コマンドでの処理はやめて、GUIでファイル作成!
…エラー。メッセージ内容もよくわからん。
フォルダの書込み権限がないのかな?ということで、Terminalからスーパーユーザ(rootユーザ)の権限でファイル作成コマンドを実行してみると….
$ sudo nano /etc/modprobe.d/alsa-base.conf
できました!
スーパーユーザの権限でコマンド実行するには、先頭に「sudo」を付けるだけでOKです。
しかし、そもそもRaspbianデフォルトユーザpiには最初からスーパーユーザ権限が付与されているはずなんだけど…??あとで調べてみよう。あと、Linux系コマンドをよくわからないまま打ってるので、きちんとまとめたいなぁ。
alsa-base.confが更新できたら、ラズパイを再起動します。
$ reboot
再度、Terminalからオーディオモジュールの設定を確認してみます。
$ cat /proc/asound/modules 0 snd_usb_audio 1 snd_bcm2835
上記のように、0(最優先)がsnd_usb_audio(USBマイク)になっていれば、優先度の設定は完了です。
マイクの感度設定
音声入力のために、感度の設定を行います。
まずは、Terminalからサウンドカード番号を確認します。
$ arecord -l **** ハードウェアデバイス CAPTURE のリスト **** カード 0: Device [USB PnP Audio Device], デバイス 0: USB Audio [USB Audio] サブデバイス: 1/1 サブデバイス #0: subdevice #0
USB Audio(USB)マイクのカード番号が「0」であることが確認できたので、サウンドカード0番に感度を設定します。
$ amixer -D hw:0 sset Mic 60% Simple mixer control 'Mic',0 Capabilities: cvolume cvolume-joined cswitch cswitch-joined Capture channels: Mono Limits: Capture 0 - 496 Mono: Capture 62 [60%] [3.87dB] [on]
「hw:0」がサウンドカード番号の指定箇所です。「Mix 60%」がマイク感度の指定です。100%にすると音割れするという情報があったので、60%指定にしました。感度が悪いようなら今後調整したいと思います。また、今回は%指定にしていますが、dB指定もできます。
さて、これでマイクの設定が完了しました。ここまでで、周辺モジュール一式がラズパイに接続できたことになります。
次回からはいよいよシステム作成に突入です!日本語の音声認識「julius(ジュリウス)」に挑戦します!