超小型USBマイクは使えるのか?Amazonで560円のマイクをLinuxで使ってみた

2020年10月18日プログラミング

 

こんにちは!

 

仕事はAndroidなのに、毎週末、趣味のJavaScript開発に精を出す超ベテランのソフトエンジニア、しずかなかずしです。

 

突然ですが、こんな小さなUSBマイクを購入してみました。お値段なんとAmazonで560円。

 

超小型USBマイク MI-305
超小型USBマイク MI-305

 

一級建築士の奥さまに、スマート騒音センサーを探すように頼まれたのですが、なかなか良さそうなものがないので、自作することにしました。

小さな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のバージョンです。

 

debian_version=9.13, node_version=v12.18.4
debian_version=9.13, node_version=v12.18.4

 

超小型USBマイクとは?

今回購入したUSBマイクはこちらの製品。

created by Rinker
NEFUSI
¥550 (2024/03/29 11:33:45時点 Amazon調べ-詳細)

 

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マイクを接続

 

Raspberry Piに小型USBマイクを接続RasbianがUSBデバイスを認識したか、見てみます。

 

接続確認は、arecord というコマンドを用います。

arecord の’a’ はやっちまったネーミング、ALSAのAdvancedの 'a’か?

それとも単一を意味する冠詞のaか?

だったら、2回録音する時は、複数形の’s’をつけるのか?

 

などなど、どうでも良いことに思いを巡らせながら、接続前と接続後の出力をみてみましょう。デバイスの一覧を表示するには、arecord -lのように’-l’オプション付きで実行します。

まずは、接続前。デバイスリストには何も表示されません。

arecordコマンド: USB マイク接続前
arecordコマンド: USB マイク接続前

 

次に接続後。

arecordコマンド: USB マイク接続後
arecordコマンド: USB マイク接続後

 

[USB PnP Sound Device]と認識されました。すばらしい!

では、早速録音してみます。

 

録音はコマンドで以下のように叩くと.wav形式に保存されます。

arecord -D plughw:1,0 mic.wav

以下のサイトを参考にさせていただきました。

arecordで極小USBマイクで録音したところ
arecordで極小USBマイクで録音したところ

録音した音声も乗せておきます。

全然使えないかと思いましたが、音声はクリアに聞き取れました。

 

Mini USB マイク商品詳細

という訳で、格安のMini USBマイク。Raspberry Piでも使えました。

商品の情報が乏しいので、写真を載せておきます。パッケージの表。QQとかYYとかいかにも中国っぽいサービスのアイコンが並びます。対応OSのアイコンは、Windows XP、Vista、7、8のアイコンが並びます。

当然、Linuxのアイコンはないのですが、前述のように一般的なUSB Audioデバイスなので、Raspberry Piでも録音がちゃんとできます。

格安極小USB Mini microphoneのパッケージ
格安極小USB Mini microphoneのパッケージ

 

パッケージのウラ面に細かく色々書かれています。

が、あまり情報ないですね。2年保証って書いてありますが、どうなんでしょう?

モデル名は「MI-305」だそうです。

 

格安極小USB Mini microphoneの仕様(パッケージウラ面)
格安極小USB Mini microphoneの仕様(パッケージウラ面)

 

次回は、これを使ってNodejsのJavaScriptのプログラムから録音してみたいと思います。

 

 

created by Rinker
NEFUSI
¥550 (2024/03/29 11:33:45時点 Amazon調べ-詳細)