マイクアレイ TAMAGO の改造
この記事は CyberAgent AI Lab Advent Calendar 2024 4 日目の記事です。
今年はたまたまこちらの Developers Blog と AI Lab Blog(Lab Blog でなく各々で書くことになりました)の両方でアドカレを書くことになり、既に Developers Blog の方では以下の記事を書いています。
AI Lab のアドカレでは、チームメンバーの研究に関連するプロジェクトの小話として、マイクアレイの話を書こうと思います。
音源分離タスクと TAMAGO
Audio チームでは音源分離に関する研究開発も行っています。
音源分離のアルゴリズムを使うと、例えば複数のマイクを並べたものを使って、音が来た方向を知ったり、特定の方向の声を聞き取ったり、複数人の声をそれぞれの声に分けながら同時に聞き取ったりすることができます。このような複数のマイクを並べたものをマイクアレイと呼び、そのような製品の一つに TAMAGO があります。
TAMAGO 自体は純粋に 8 個のマイクとして認識されるデバイスであり、音源分離のアルゴリズム自体は別途用意する必要があります。音源分離の研究者たちの間で TAMAGO はとても親しまれていて、色んなアルゴリズムがこれを使って検証されているようです。
ところで TAMAGO は円形に並んだマイクですが、同じ性能条件で直線状にしたときなど、形状だけ条件を変えて実験したい場合があります。TAMAGO を分解してケースだけ作り変えることで、そのようなマイクを作っている人もいるそうです。
そこで今回は、まずはベースラインとして、自分たちのところでも純粋に TAMAGO と同じマイク間距離で直線状にしたものを設計してみようと思います。
FreeCAD での設計
普段、趣味でも生活に役立つ道具などを設計しては 3D プリントしているのですが、それは完全に個人利用なので Autodesk Fusion の無料版を使っていました。まれに Blender や OpenSCAD を使うこともありますが、道具を素早く作るという用途では圧倒的に Fusion が使いやすいです。
しかし今回は個人利用ではないので、初めて FreeCAD というものを使ってみます。こちらも歴史は長いようですが、つい先日の 11 月 18 日に積年の課題を解消して v1.0 としてリニューアルしたそうなので、その記念も兼ねて試してみようと思いました。
起動すると以下のような画面になります。いきなり有限要素法のサンプルが見えているところが心躍ります。
「パラメトリックパーツ」をクリックして新規作成を開始します。
ここで元々の TAMAGO を見ると、マイクの中心間の直線距離は 28 mm で、マイク基板の幅が 8 mm あり、マイクの中心から端まで 4 mm あります。マイクは 8 個あるので、直線に並べると間隔は 7 個になり、内寸 28 x 7 + 8 = 204 mm のバーに収まりそうです。(たまたまノギスが手元にない状況でしてご了承ください…)
マイク基板の縦方向は 9 mm ですが、マイクのカバー部分が若干基板からはみ出していることがあるほか、配線のむき出し部分があるので 12 mm ほど確保した方が良さそうです。
マイクの厚み方向は 4 mm ですが、マイクカバー部分が 0.5 mm ほどケースから飛び出す設計だったと思われるので、そのようにしてみます。
マイクカバーの直径は 6 mm です。
このあたりの寸法をざっと頭に描きつつ、「スケッチを作成」をクリックします。
「アタッチメントを選択」から適当に平面を選んで OK をクリックします。
ツールバーの「長方形を作成」で長方形を描きます。TAMAGO の殻が厚み約 1 mm なので、内寸 204 x 12 mm を目指して壁の厚みを考慮し、206 x 14 mm として数値入力します。
タスクの「閉じる」をクリックし、ツールバーの「パッド」をクリックして押し出します。
パッドの長さで 4 mm を設定して OK します。
こうしてできた直方体の手前の面を選択し、この面に対して「スケッチを作成」をクリックします。
先ほどと同じように、ただし 1 mm の壁の分だけ内側に 204 x 12 mm の長方形を作成します。
タスクの「閉じる」をクリックしたあと今度はツールバーの「ポケット」をクリックします。長さは壁を考慮して 3 mm にします。
同様の手順で、「ポケット」を使って丸い穴をあけます。短辺の壁からは 4 mm、長辺の壁からは 3 mm の位置に中心をとって直径 6 mm の円を描いています。
モデルタブで丸い穴をあけたときのポケットを選択し、ツールバーの「直線状パターン」をクリックします。モードをオフセットにし、オフセットを 28 mm、回数を 8 にして OK します。
同様の手順で 5 x 1 mm のケーブル穴をあけます。
ほぼ同様の手順で蓋を作ります。
試作には Bambu Lab P1S を使いました。印刷時間は 15 分くらい、材料費は 16 円くらいです。
無事できあがったパーツにマイクをパチパチはめていきます。ぴったり 6 mm で作ってしまったのではまらないかと思っていたのですがこれで完璧でした。小気味よくはまっていきます。
裏蓋もパチっとはまりました。両端のマイクだけケーブルの長さが非常にギリギリですが、なんとかはまっています。
最終的にこのような姿になりました。
この件も一晩でなんとかここまで漕ぎつけました。使い慣れている Fusion であればもっと一瞬だったかもしれませんが、これを機に新しいツールが使えるようになりました。めでたしめでたし…。
需要があるかわかりませんが、今回作ったマイクケースはこちらに置いておきます。
動作検証はこれからですが、この先の性能評価も楽しみです。いずれ MEMS マイクの選定から始めて完全自作のマイクアレイを作ってみたいと思っています。
Discussion