高感度マイク&アンプ ラズベリーパイ研究室

オペアンプを使った増幅回路付きマイクを制作しました。
音声認識によるRaspberry Piの制御方法を紹介したページが沢山あるので、 マイク感度を上げて離れたところからでも操作できるようにしたいと思います。



おススメ!記事
Raspberry Pi 用「HAL」で、
カップラーメン・タイマーを作ってみよう!
ラズパイDIYの決定版! ソケットサーバー「HAL」をご紹介します。

※誠に申し訳ありませんがこちらの電子工作のコンテンツは弊社の実験制作例となっております。十分な安全が保障されているわけではないため、参照や実施は自己責任となってしまいますのでご注意ください。

はじめに

 Raspberry Pi を使って、増幅回路付き高感度マイクを制作してみました。

 Raspberry Pi で音声認識について検索すると、オープンソースの音声認識エンジン「Julius」を使った作例が沢山見受けられます。Juliusを使えば比較的簡単に音声認識による操作が可能なためとても魅力的なのですが、Raspberry Pi にはマイク端子がなく、基本的にはUSBマイクを利用することになります。

 安価なUSBマイクの場合、少し離れると音が拾えなくなるため、音声認識による操作を行うには1~2万円する高感度マイクが必要になってくるかと思います。

 弊社では Raspberry Pi を筐体に格納したいと思っていますが、USBマイクはスタンドと一体型が多く、なかなか筐体内にマイクを埋め込めそうにありません。

 そこで、安価なエレクトレットコンデンサマイクを使って高感度なマイクを自作できないかと考えました。

 ただ、Raspberry Pi にはアナログ入力端子がありません。アナログのマイク入力をUSB入力に手っ取り早く変換する方法はないかと少し検索してみたのですが、USBはシリアル通信なためかなりハードルが高く、ちょっと電気をかじった程度では歯が立ちそうにありませんでした。

 そこで、この部分だけは市販のアナログ→USB変換アダプターを利用することにし、できるだけ自由度の高いアダプターを探してみました。

アナログ→USBアダプターの選定

 最初に試したのはこちら、

 USBから3.5mmヘッドホン/マイク端子 USB オーディオ変換アダプタ バーチャル7.1chサラウンド

 390円の変換アダプターで、一番シンプルで余計な機能がついていなそうなので購入してみました。

 まず、箱からして意匠権に問題がありそうなのですが(かわいそうなので写真は載せません)肝心の性能の方も、残念ながらダメでした。スピーカーはそれほど問題なさそうですが、Amazonのレビューにもある通り、肝心のマイク入力がノイズが酷過ぎて使い物になりません。

 小さくて安いので筐体に埋め込むには最適かと思ったのですが残念です。

 次に試したのはこちら、

 Raspberry Pi の記事の中でも頻繁に紹介されているアダプターです。若干大きめなのが難ありですが、Raspberry Pi の長辺くらいの大きさなので、なんとか筐体に埋め込めそうです。

 しかし、こちらのアダプターもマイクのノイズが気になり、残念ながら却下となりました。普通のPCにつないでもわずかなノイズが感じられるのですが、Raspberry Pi は更に本体のノイズが大きく、これがアダプタ内のアンプで増幅されてしまっているようで、とても許容できる範囲ではありません。Amazonでの評価は高かっただけに残念です。

 アンプは今回作成するマイク側に増幅回路をもつため、変換アダプターは入力をそのままUSBに変換してくれるアダプターが理想です。

 最後に購入したのがこちらです。

 この変換アダプターが最適でした。アダプタ内で増幅を行っていないようなのでノイズが全くありません。少し横幅が広いのが難点ですが、必要であればUSB→USBの短めのケーブルをつないで筐体内にアダプターを格納できます。

 自作のマイクの変換アダプターを探されている方は、こちらの変換アダプターがお勧めです。

マイクジャックの制作

 ではマイクジャックのハンダ付けに入ります。マイクのジャックには2極のTSジャックと、3極のTRSジャックなどがありますが、先ほど選定したPlugableのアダプターでは、TRSジャックにしか対応していません。ジャックの径は3.5φです。

マイクジャック

 TRSジャックでは信号用の端子としてチップとリングがあり、ステレオの場合はそれぞれLチャンネル、Rチャンネルとなるようですが、今回はモノラル信号での利用とし、信号線を2つに撚り分けチップ・リングの両方にハンダ付けしました。スリーブはグランドに繋ぎます。

ハンダ付け

(参考)wikipedia

回路図(暫定版)

 マイクとオペアンプの回路図は以下の通りです。オペアンプにはLM358Nを利用しています。

回路図

 オペアンプについては反転増幅回路で 330 ÷ 10 = 33倍に増幅しています。赤で示した部分がノイズリダクション回路ですが、まだ大分ノイズが気になるため、もう少し見直しの必要がありそうです。

(参考)オペアンプ回路の基本設計法

使用部品

  • エレクトレットコンデンサマイク 1個
  • オペアンプ(LM358N) 1個
  • 抵抗(10KΩ) 3個
  • 抵抗(200KΩ) 2個
  • 抵抗(330KΩ) 1個
  • 抵抗(47KΩ) 1個
  • 電解コンデンサ(47µF) 2個
  • 電解コンデンサ(10µF) 1個

(※電解コンデンサは極性があるので+と-を間違えないように気を付けましょう)

ブレッドボード

録音テスト

 まず、再生が正しく行えるかテストします。USB変換アダプターをRaspberry Pi に装着して次のコードで再生用のサウンドカードを調べます。 USB変換アダプターは、特に操作をしなくてもサウンドカードとして認識されるはずです。

aplay -l

 次のような結果が表示されるはずです。

**** ハードウェアデバイス PLAYBACK のリスト ****
カード 0: Device [USB Audio 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

 サウンドカード 0がUSB変換アダプターのスピーカー端子です。サウンドカード 1のデバイス 0がRaspberry Piのアナログスピーカージャックです。Raspberry Pi のスピーカージャックからサンプル音源を再生してみましょう。

aplay -D plughw:1,0 /usr/share/sounds/alsa/Front_Center.wav

 無事音が出ることが確認できたら、今度は録音テストです。Raspberry Pi の5VとGNDをマイク&アンプの回路の5VとGNDに繋ぎ、MIC端子を変換アダプターのピンクの入力端子に差します。

arecord -l

 で、

**** ハードウェアデバイス CAPTURE のリスト ****
カード 0: Device [USB Audio Device], デバイス 0: USB Audio [USB Audio]
サブデバイス: 1/1
サブデバイス #0: subdevice #0

のようなメッセージが表示されるかと思います。サウンドカード 0、デバイス 0として認識されているので、このカードで録音を行います。

arecord -D plughw:0,0 -f cd test.wav

 録音はCtrl+Cで停止できます。

aplay -D plughw:1,0 test.wav

 で、再生してみてください。33倍に増幅しているので、近くで話すとかなり音が割れるかと思います。

 なお、Raspberry Pi 側の再生・録音音量調節は、

alsamixer

 で、行うことが出来ます。

終わりに

 オペアンプを使えば比較的簡単にアンプ付きマイクの制作はできるのですが、ノイズ対策はそう簡単にはいかないようです。この回路はまだまだノイズが大きいため、もっとしっかり勉強しないといけないですね。今後の課題にします。

余談

 今回利用している Plugable さんから、同社製品の Raspberry Pi への対応についてのページの紹介をいただきました。

 Plugableさんは日本に進出して間もない会社さんのようで、Amazonのレビューにもあるのですが、とても丁寧なユーザーサポートをされているようです。ちょっと応援したくなる会社さんでした。(2015/05)

この記事へのコメント

※現在コメントはMarkdown記法が強制です。>>Markdown の書き方


この記事に返信

このコメントに返信