RaspberryPI3にUSBマイクを接続して音声入力の設定を少しいじって録音しました
ネットの情報を参考にしながら、最終的には、USBマイクでflac形式のファイルで録音するようにしました。
USBマイクの優先順位のあげ方、soxのrecでのエラーメッセージ迂回方法もあります。
[adsense]
目次
使ったUSBマイク
USBマイクは、小型のものをamazonで探したら、本体450円で送料無料(2017年11月17日当時)のものがあったのでこちらを購入。ラズパイに差し込むだけで認識され、録音できました。
Buauty PCマイク世界最小USBマイク PC Mac用USBマイク超小型 いつでもどこへも携帯可能!超ミニ 22mmx18mmx5mm
※Amazonの商品ページの画像が上記マイク画像と異なることがあるようですが、私が購入したのはこのリンク先の商品です。届いたのは上記の小型マイクです。
音声出力は、手持ちのiPhoneに付いてきたイヤホンを使いました。
arecordコマンドでwav形式で録音するまで
ラズパイにUSBマイクを接続
ラズパイにUSBマイクを接続し、lsusbを実行すると、問題なく認識されます。
「Texax Instruments PCM2902 Audio Codec」と表示されてました。
USBマイクの優先順位を確認
オーディオモジュールの優先順位を確認すると
cat proc/asound/modules
snd_bcm_2835 0
snd_usb_audio 1
こんな感じで、USBマイクのほう(「snd_usb_audio 1」)が優先順位が低いようです。
arecordで録音するだけなら、このままの優先順位で録音できました。soxを使う方法では優先順位をあげる必要があります。
USBマイクのカード番号・デバイス番号
次にUSBマイクのカード番号、デバイス番号を確認しておきます。
arecord -l
**** List of CAPTURE Hardware Devices ****
card 1: Device [USB PnP Sound Device], device 0: USB Audio [USB Audio]
Subdevices: 1/1
Subdevice #0: subdevice #0
カード番号「1」、デバイス番号「0」です。
ソフトのインストール
次に、必要(そうな)ソフトをインストール。
sudo apt-get update
sudo apt-get upgrade
sudo rpi-update
sudo apt-get install alsa-base alsa-utils alsa-tools
音声入力、出力テスト
その後、早速、マイクから音声入力したものをそのままイヤホンから出力してみました。
arecord -f S16_LE -r 44100 -D hw:1 | aplay
無事、自分の声がイヤホンから聞こえましたので、録音した音声をファイルで保存します。
arecord -D plughw:1,0 test.wav
「plughw:」の後ろの「1」がカード番号、「0」がデバイス番号です。
test.wavというファイル名で保存されます。
※参考にさせていただいたサイト
- 194円(送料込み)のマイクと Raspberry Pi でボイスレコーダーを作る話し – Qiita
- Raspberry Piで音声認識 – Qiita
- RASPBIAN JESSIE WITH PIXEL でUSBオーディオアダプタを使う | KDL Tech Blog
flacで録音したかったのでsoxをインストール
arecordで録音できるファイル形式は「voc, wav, raw or au」とのこと。
soxのインストール
flacで録音したかったので「sox」をインストールすることにしました。
sudo apt-get install alsa-utils sox libsox-fmt-all
USBマイクの優先順位をあげる
USBマイクの優先順位の確認方法は
cat proc/asound/modules
snd_bcm_2835 0
snd_usb_audio 1
0のほうが1より優先順位が高いので、これを逆転させます。
ネットで探すと「/etc/modprobe.d/alsa-base.conf」を修正するとか、新規作成するという情報があるのですが、そのとおりに試したところ「snd_usb_audio 1」が消えてしまいます。
それでもalsa-base.confを作る
最終的には、こちらのサイトを参考にさせていただき、
以下の内容で/etc/modprobe.d/alsa-base.confを新規作成してうまくいきました。
options snd slots=snd_usb_audio,snd_bcm2835
options snd_usb_audio index=0
options snd_bcm2835 index=1
alsa-base.confを作成したら再起動します。
cat proc/asound/modules
0 snd_usb_audio
1 snd_bcm_2835
となります。
また、優先順位が変わったので、カード番号も「0」になりました。
arecord -l
**** List of CAPTURE Hardware Devices ****
card 0: Device [USB PnP Sound Device], device 0: USB Audio [USB Audio]
Subdevices: 1/1
Subdevice #0: subdevice #0
recで録音しようとするとエラーメッセージが
「sox -d ファイル名」「rec ファイル名」で録音されるはずなのですが、録音できずエラーメッセージが。
rec FAIL formats: can’t open input ‘default : snd_pcm_open error: No such file or directory
この迂回方法は、
「sudo rec test.flac」
です。。。これで無事録音できました。
Buauty PCマイク世界最小USBマイク PC Mac用USBマイク超小型 いつでもどこへも携帯可能!超ミニ 22mmx18mmx5mm
コメント
失礼致します、RasTec会社の広報担当の胡と申します。BLOGにてお客様のレビューをご拝見させて頂きました、つきましてはお客様に弊社のUSBマイクのレビューを投稿して頂きたく存じます。レビュー用機材に関しましては無償にて提供させて頂きます。御返事お待ちしております。どうぞよろしくお願いします。