Edited at

非接触式マイクスイッチ

More than 1 year has passed since last update.

これはNextremer Advent Calendar 2016の7日目の記事です。


はじめに

Nextremerでは音声対話システムを扱うことが多く、ユーザの発話をどのようにして拾うかは常に課題です。

現在では、雑音対策などから、押しボタン式のマイクを採用することが多のですが、運用の観点から課題は多く、とてもナンセンスです。。

かといって、マイクを常にonにした状態を保つと、不意なユーザの発話を拾ってしまうことがあるため、これもまた課題です。

ユーザの発話意思を任意に得るためには、ユーザの何らかしらのアクションは必須です。

ということで、物理接触に頼らない、非接触式で入力のon/offが可能なマイクを作ってみました。


準備

今回は次のようなシステムを考えます。

手をかざすとマイクがonになる仕組みです。

マイクは単一指向性のコンデンサーマイクを使い、オーディオインターフェース経由でPCに音声を取り込みます。

FullSizeRender 2.jpg


使うもの


作成


事前準備

XLRケーブルは事前に適度な長さにカットし、ハンダでまとめておきます。

FullSizeRender 3.jpg


回路設計

回路は以下のように組みます。

具体的には、距離センサをアナログインに、リレー回路をXLRケーブルの2線をショートさせるようにつなぎます。

FullSizeRender 4.jpg


Arduinoのスクリプト

int outpin = 2;

void setup() {
pinMode(outpin, OUTPUT);
Serial.begin(9600);
}

void loop() {
// センサの値を読み取る
int value = analogRead(A0);
// センサの値をcmに変換する。
float V_out = (float)value * 5 / 1024;
float distance = (V_out - 0.55)/0.033;
float distance2 = 55 - distance;
// 特定の距離でリレー回路をon
if (distance2 > 0.5) {
digitalWrite(outpin, HIGH);
} else {
digitalWrite(outpin, LOW);
}
}


実験

センサに手を近づけると、音声の入力が確認できます。


追記


  • 本当はハード(筐体)まで作りたかった。(こちらが本当はメイン)

  • 図とかラスト雑ですみません、、本当に時間なかった、、orz

今後は、ハード(筐体)の設計諸々含めてトライしてみたいです。(0_0)/


参考

Arduino+赤外線センサ(GP2Y0E02A)を試してみる

GMS-274 - Hosa Technology