超小型USBマイクは使えるのか?Amazonで560円のマイクをLinuxで使ってみた
こんにちは!
仕事はAndroidなのに、毎週末、趣味のJavaScript開発に精を出す超ベテランのソフトエンジニア、しずかなかずしです。
突然ですが、こんな小さなUSBマイクを購入してみました。お値段なんとAmazonで560円。
一級建築士の奥さまに、スマート騒音センサーを探すように頼まれたのですが、なかなか良さそうなものがないので、自作することにしました。
小さなUSBマイクはRaspberry Piに挿して使うために購入。
Raspberry PiといえばARM版 LinuxがOSです。その名もRasbian OS。不思議な響きです。
この小さなUSBマイク。Raspberry Piで動くんでしょうか?
早速やってみましょう。
Raspberry pi Model Bを使う
使うのは、どこのご家庭にも、机の奥に一つや二つ眠っているであろう、Raspberry Piです。
私の場合、数年前に購入してRasbianをインストールして少し使ってみたきり、眠らせていたModel Bです。
こちらの商品。WiFiやBluetoothも内蔵されており、アプリケーションを開発すれば電源ケーブル一本でネットにつながる、流行りの「スマート〇〇」なIoT機器を開発するのにピッタリの逸品です。
しかも、私がひいきにしているNodejsもちゃんと動くので、JavaScriptでアプリケーションが作れます。
以下、私のRaspberry PIのRasbian OSのバージョン、および、Nodejsのバージョンです。
超小型USBマイクとは?
今回購入したUSBマイクはこちらの製品。
USBマイクと一言でいいますが、この手の商品は、マイクロホンというアナログデバイスの他に、アナログ信号を「サンプリング」してデジタルにする機能「A/Dコンバーター」が含まれます。これがないと、音、つまり空間の振動というアナログ情報を、デジタルしか扱えないコンピューターに取り込むことなどできません。
一般的なパソコンではマイク端子と呼ばれるミニジャックがついていますね。あれは、マイクから出てきたアナログ信号を受けてデジタル化する、PC本体に内蔵されているA/Dコンバーターの入力端子という位置づけ。
一方、今回購入のUSBマイクは、アナログ信号を取り込むマイク本体とA/Dコンバーターが、極小サイズの筐体に一体化されており、機能2倍。まさに、倍返しだ!みたいなデバイスなのです。
…ちょっと、何言ってるかわかりませんが…
ところで、このようなUSBのA/Dコンバーターは、USB Audio ClassというUSBの規格に基づいて作られているものがほとんど。そして受け取る側のWindowsやMac などのパソコンも標準でUSB Audio Classに対応。したがって、余程の特殊機能がついた機器でない限り、追加でドライバーのインストール無しで差し込むだけで使えます。
Linuxも同様USB Audioに対応しています。それを司るのが、ALSA (Advanced Linux Sound Architecture)と呼ばれる仕組みです。ALSAができた時はAdvanced な(先進的な)機能だったのかも知れませんが、昨今のLinuxではあたり前のSound アーキテクチャーです。先進的でも何でもありません。まさにやっちまった感満載のネーミングミス。
名前はさておき、LinuxのUSB Audio の規格に対応しているということは、USBマイクの製品の仕様としてLinux対応と謳われていなくても問題なし。Windows対応で、「差し込むだけで使えます」と記載されている商品はLinuxでもきっと使えるでしょう(注: 保証するものではありません)。
Raspberry Piに差し込んで認識
それでは、気を取り直して、Raspberry Piに極小USBのマイクを挿してみましょう。
Raspberry Piに小型USBマイクを接続RasbianがUSBデバイスを認識したか、見てみます。
接続確認は、arecord というコマンドを用います。
arecord の’a’ はやっちまったネーミング、ALSAのAdvancedの 'a’か?
それとも単一を意味する冠詞のaか?
だったら、2回録音する時は、複数形の’s’をつけるのか?
などなど、どうでも良いことに思いを巡らせながら、接続前と接続後の出力をみてみましょう。デバイスの一覧を表示するには、arecord -lのように’-l’オプション付きで実行します。
まずは、接続前。デバイスリストには何も表示されません。
次に接続後。
[USB PnP Sound Device]と認識されました。すばらしい!
では、早速録音してみます。
録音はコマンドで以下のように叩くと.wav形式に保存されます。
arecord -D plughw:1,0 mic.wav
以下のサイトを参考にさせていただきました。
録音した音声も乗せておきます。
全然使えないかと思いましたが、音声はクリアに聞き取れました。
Mini USB マイク商品詳細
という訳で、格安のMini USBマイク。Raspberry Piでも使えました。
商品の情報が乏しいので、写真を載せておきます。パッケージの表。QQとかYYとかいかにも中国っぽいサービスのアイコンが並びます。対応OSのアイコンは、Windows XP、Vista、7、8のアイコンが並びます。
当然、Linuxのアイコンはないのですが、前述のように一般的なUSB Audioデバイスなので、Raspberry Piでも録音がちゃんとできます。
パッケージのウラ面に細かく色々書かれています。
が、あまり情報ないですね。2年保証って書いてありますが、どうなんでしょう?
モデル名は「MI-305」だそうです。
次回は、これを使ってNodejsのJavaScriptのプログラムから録音してみたいと思います。