1.必要な部品・材料
前回に述べた手動音量調節のためのボリュームなどを含む、完成に必要な部品類を以下に取りまとめました。No.14の 3mmプラネジ(12mm)については、各ブロックのボードをベース基板(後述)に組み付ける状況に応じて、長さが異なるものを購入してください。同様に、ボードの高さを調整するために、No.15のスペーサーは高さが異なるものや、さらにワッシャなどが必要になるかも知れません。これらについては、ネジ類を取り揃えているホームセンターなどで調達するのがお勧めです。
(必要な部品・材料)
部品類は秋月電子などで購入できます。規格・形状などは各行のリンクで確認してください。
No. | 名 称 | 数量 | 参考単価 | 備 考 |
1 | タカチ汎用金属ケース YM-100 (W:100mm, D:70mm, H:30mm) | 1 | \770 | |
2 | 小型ボリューム 薄型 スイッチ付(S付) B10kΩ | 1 | \150 | |
3 | 片面ガラス・ユニバーサル基板 Bタイプ(95×72mm) | 2 | \150 | |
4 | 両面スルーホールユニバーサル基板 3*7 | 1 | \40 | |
5 | 3.5mmステレオミニジャックMJ-074N | 2 | \80 | |
6 | 3.5mmΦステレオミニプラグ | 1 | \60 | |
7 | 電源用マイクロUSBコネクタDIP化キット | 1 | \130 | |
8 | 2Pトグルスイッチ 1回路1接点 | 1 | \150 | |
9 | ラテパンダ ヒートシンク(13.2mm x 12.1mm x 4.8mm) | 1 | \190 | 5個入り \950 |
10 | 分割ロングピンソケット 1×42 | 1 | \80 | |
11 | ピンヘッダ (オスL型) 1×40 | 1 | \50 | |
12 | 3mm黄緑色LED 570nm | 1 | \10 | |
13 | 3mmLED用ワンタッチブラケット | 1 | \15 | |
14 | 3mmプラネジ(12mm)+六角ナットセット M3 20組入り | 1 | \200 | |
15 | プラスチックスペーサー 3-5 10個入り | 1 | \50 | |
16 | 耐熱電子ワイヤー 1m×10色 導体外径0.75mm | 1 | \400 | |
17 | カーボン抵抗 4.7KΩ 1/4W | 1 | \1 | 1袋100本入り¥130 |
18 | カーボン抵抗 10KΩ 1/4W | 1 | \1 | 1袋100本入り¥100 |
2.ベース基板と配置
各ブロックのボードを組み付ける基板を「ベース基板」と呼ぶことにします。この基板は上記部品表 No.3のユニバーサル基板を加工して作成します。基板横方向のサイズ 95mmは、そのままでケースの内側にぴったりと収まります。縦方向は 72mmを 64mmに切り詰め、さらに左端から 55mm、手前から 23mmを写真のように切り取ります。
ベース基板に各ブロックのボードを取り付けますが、気をつける必要があるのは電源用USBポート(USB: Power supply)と手動音量調整用ボリューム(Volume & Switch)の部分です。どちらもケースにスリット状の穴を開けて、上記の完成品写真のように位置を合わせる必要があります。
したがって、電源用USBポートはケースの前面パネルより 1~2mm内側の位置に取り付けます。また音量調整用ボリュームは、ケースの右側に開けたスリットからダイヤルが数mm外側に出るように取り付けます。スリットの外側からダイヤルでスイッチの ON/OFFとボリュームを回転できるように、位置決定には微妙な調整が必要になります。これらの位置については下の写真を参考にしてください。
以上のことに注意しながら各ボードの位置を決め、ベース基板に穴開けをしてプラスチックネジとナットで固定します。高さはプラスチックスペーサーやワッシャを挟んで調整します。
なおオーディオ・アダプタのヘッドフォン出力は、ボードに直接ハンダ付けで配線するのを避けるために、部品表 No.6のステレオミニプラグの絶縁部を外したものを挿入しています。
続いてケース前面の加工です。先ほどの電源用USBポートのスリットの他に、2つのミニジャック、LED、電源スイッチの取り付け位置を決めて穴を開けます。穴開けはドリルで行い、必要に応じて小型ヤスリで仕上げます。
次に、もう一枚のユニバーサル基板を 25mm幅で切り取り、95mm x 25mmのボードを作成します。これはケースの前面内側とベース基板の間に挟んで、LEDを固定するためにリード線をハンダ付けしたり、LED用のカーボン抵抗を配線するために使います。ケース前面に取り付ける部品の部分は、部品が貫通するようにやや大きめの穴を開けます。
このボードは、ベース基板がサイズどおりになっていればぴったり収まり、電源スイッチを取り付けると固定できます。
3.完成品の内部(配置と配線)
配線はとてもシンプルです。Teensyの電源は、モバイルバッテリーに接続する電源用USBポートとパワースイッチを経由して GNDと 5V端子に接続。手動音量調整関連の回路はオーディオ・アダプタと配線し、スイッチと 10kΩの接点を Teensyの 2番ピンに接続します。電源が ONの状態では LEDが点灯するよう、4.7kΩを通して 3.3Vと GND端子へ繋いでいます。
あとは、マイク用ミニジャックからマイクアンプを通してオーディオ・アダプタの Line入力への配線と、オーディオ・アダプタのヘッドフォンジャックに挿したプラグからイヤフォン用ミニジャックへの配線だけです。これらを含め、個々の配線については次節で取り上げます。
〔放熱対策について〕
Teensyの放熱対策としてヒートシンクを装着します。しかしケースは密閉状態なので、このままでは十分な放熱は期待できません。そこで、オーディオ・アダプタ部分の高さを調整して、ヒートシンクがケースの上蓋に密着するようにします。適切な高さのスペーサーに取り替えたり、ワッシャの枚数を変えたりして調整します。
〔調整のポイント〕
ケースに開けたスリットとの位置合わせを確実にすることが重要です。電源用USBポートはスリットとの左右と水平位置を確実に合わせること。手動音量調整ボリュームは同様の調整とあわせて、ケースの外からダイヤルが円滑に操作できるように位置決めしなくてはなりません。これらはそれぞれのボードとベース基板の間隔や横位置を、実際に試しながら行うことになります。
4.各ブロックの配線詳細
それぞれのボードから外部への配線は、多くがピンソケットと L型ピンヘッダを介して行います。こうすることでボード間の関係が明瞭になり、メンテナンスもやりやすくなります。一方で接続不良が発生しないよう、ピンヘッダを確実にピンソケットに挿入することが必要です。
なお、ベース基板上のボードからフロントパネル上のスイッチやジャック類への配線は、少し余裕(弛み)をもたせてください。
①電源ブロック
USBコネクターから[+]と[-]をピンソケットに引き出しています。[-]は黒色線のピンヘッダで Teensyの[GND]ピンへ接続。[+]は赤色線でパワースイッチを経由して、Teensyの [5V]端子へ接続しています。
オーディオ・アダプタの[3.3V]端子から黄色線で、 4.7kΩのカーボン抵抗を通して LEDの[+]へ接続し、[-]はイヤフォンジャックの[GND]へ接続します。
②オーディオ・アダプタと音量調整部
オーディオ・アダプタの[3.3V]ピンは他のブロックへの 3.3V供給端子になっています。電源ブロックの LED、マイクアンプ部の[VCC]、音量調整ボリュームとスイッチに、それぞれ黄色線で接続しています。
音量調整部のスイッチはカーボン抵抗 10kΩでオーディオ・アダプタの[GND]へ、また両方の接続部は白色線で Teensyの[pin2]へ接続します。これで、スイッチを ONにすると [pin2]に 3.3Vが現れて HIGHに設定されます。 一方、ボリュームの変動値は緑色線でオーディオ・アダプタの[VOL]端子へ接続して、回転角度に従った電圧が掛かり 0~1023のデジタル値に変換されます。
③マイクアンプ部
ステレオ入力端子からそのままマイク用ジャックに配線します。ステレオ出力端子は、オーディオ・アダプタのライン入力に繋ぎます。[L]は白色、[R]は緑色、[GND]は水色の線です。
駆動用の電圧[VCC]は、オーディオ・アダプタの[3.3V]と[GND]から供給しています。
④イヤフォン出力部
イヤフォン出力は、オーディオ・アダプタのヘッドフォンジャックに挿したミニプラグから、イヤフォン用ミニジャックへ配線します。[L]は白色、[R]は緑色、[GND]は水色の線です。
5.HAT24のチューニング
〔事前準備〕
HAT24のチューニングは、Teensyの USBポートをパソコンに接続して、Arduino IDEのシリアルモニターから行うことになります。そのためには若干の準備作業が必要です。
1) 電源用USBポートからケーブルを抜きます。
2) ケースの上蓋を外します。
3) Teensyの USBポートに USBケーブルが差し込める位置まで、ベース基板の手前を上に上げます。
この状態で Teensyの USBポートに USBケーブルを確実にセットできるようになります。
〔注意事項〕
電源用USBポートにモバイルバッテリーを接続した状態で、Teensyの USBポートをパソコンに繋がないでください。もし両方から同時に電圧が加わると Teensyは破壊されます!
①HAT24のコンパイルと書き込み
最初に行うのは、Arduino IDEを起動して HAT24のスケッチを Teensyに書き込むことです。まず、ダウンロードした HAT24.5.zipを解凍して取り出した HAT24.5フォルダーを、ドキュメントフォルダー配下の Arduinoフォルダーにコピーします。
次に Arduino IDEを起動してヘッダー部の[ファイル]-[開く]をクリックします。ドキュメント内のフォルダー一覧が表示されるので、先にコピーした HAT24.5を選択してスケッチのコードを表示させます。
Teensyとの通信ができるようにするため、IDEヘッダー部の[ツール]をクリックして、次のように[ボード種別]で「Teensy 4.0」を、[ポート]で「COM~ Serial(Teensy 4.0)」を選択します。
IDEヘッダー部の矢印の「書き込み」ボタンをクリックするとコンパイルが始まります。初回のコンパイルは時間がかかりますが、しばらく待つとコンパイル結果が Teensyに書き込まれます。
②初期状態を確認する
HAT24のチューニングは第4章3節の「HAT24の操作コマンド」で行います。初期状態を確認するために、シリアルモニターで '?'をキー入力してみましょう。次のようにデフォールトの設定値が表示されます。
これらの値を操作コマンドで変更することで、自身の耳に最も良く聞こえるようにするのがチューニングです。コマンドが不明な場合はヘルプコマンド 'h'でコマンド一覧を表示してください。
③音量の調整
この状態でマイクからの音を聞いてみましょう。音が小さい場合は 'v'を入力した後に、'u'と 'd'で音量を増減することができます。音量は 0~1.0の範囲で 0.02刻みで変更できます。最大音量近くでも十分な音量を得られない場合は、マイクのゲインや出力レベルが不足していることが考えられます。これらの設定値は Teensy Audio Libraryで下記のように定義されていて、それぞれ操作コマンドの liと loで変更することができます(li,4 または lo,25のように)。ただし、この値をかけ離れた値に変更すると、急激に音量が変化して耳を傷める恐れがあるので注意してください。
LineInLevel;
0: 3.12 Volts p-p
1: 2.63 Volts p-p
2: 2.22 Volts p-p
3: 1.87 Volts p-p
4: 1.58 Volts p-p
5: 1.33 Volts p-p (default)
6: 1.11 Volts p-p
7: 0.94 Volts p-p
8: 0.79 Volts p-p
9: 0.67 Volts p-p
10: 0.56 Volts p-p
11: 0.48 Volts p-p
12: 0.40 Volts p-p
13: 0.34 Volts p-p
14: 0.29 Volts p-p
15: 0.24 Volts p-p
LineOutLevel;
13: 3.16 Volts p-p
14: 2.98 Volts p-p
15: 2.83 Volts p-p
16: 2.67 Volts p-p
17: 2.53 Volts p-p
18: 2.39 Volts p-p
19: 2.26 Volts p-p
20: 2.14 Volts p-p
21: 2.02 Volts p-p
22: 1.91 Volts p-p
23: 1.80 Volts p-p
24: 1.71 Volts p-p
25: 1.62 Volts p-p
26: 1.53 Volts p-p
27: 1.44 Volts p-p
28: 1.37 Volts p-p
29: 1.29 Volts p-p (default)
30: 1.22 Volts p-p
31: 1.16 Volts p-p
④パラメトリック・イコライザーの設定
各バンドのフィルター種別と中心周波数、ゲイン、Q値に適切な値を設定することで、周波数帯域ごとに最も聞こえやすい状態をつくりだすことができます。実はこれが補聴器調整のキモであり、最も難しい作業になります。
フィルター種別は F%,LPF/HPF/BPF/NOTCH/PARAEQ/LSHELF/HSHELFのように、%部に 0~6のバンドNo.を指定し、カンマに続けてフィルター種別を指定します(例えば F3,PARAEQのように)。同様に f4,4200、g5,2.5, q2,1.5などのようにして特定バンドの中心周波数、ゲイン、Q値を変更することができます。また、次のように特定バンドのパラメータを一括して変更することもできます。
c3,PARAEQ,2000,1.0,0.4
なおここで指定できるフィルター種別の内容は次のとおりです。
LPF: Lowpass filter
HPF: Highpass filter
BPF: Bandpass filter
NOTCH: Notch filter
PARAEQ: Peaking filter
LSHELF: Lowshelf filter
HSHELF: Highshelf filter
このようにパラメータが多いのできめ細かな指定ができる反面、的確な設定を試行錯誤で行うのは大変です。そこで、参考までに手元で調整したパラメータの状態を掲載しておきます。
バンドNo.0は、ハイパスフィルターで低周波域の 80Hz以下をカットしています。またバンドNo.6は、ローシェルフによって 12,000Hz以上の高域を減衰させています。
バンドNo.1~5の設定にあたっては、「BiQuadDesigner」でシミュレーションをしました。フィルター種別は peaking filterを選択し、Sample Rateは 44,100Hzの設定です。波形の高さを揃えるためにゲインは同じ値(4.0dB)とし、Center Frequencyと Qの値を変えながらグラフを眺め、帯域別の連なりが自然になるように調整。このようにしてほぼ適正と思われる中央周波数と Q値を求めました。その値を操作コマンドでパラメトリック・イコライザーのバンドNo.1~5に設定した後、それぞれのゲインを変更しながら聞こえやすい値を求めたものです。
この方法が必ずしも適正とはいえませんが、比較的容易に設定することができました。しかし、使用しているうちに音質や左右のバランスが気になることもあり、しばらくは微調整が必要になると思います。
ついでながら、上記のパラメータリスト [Equalizer parameters]からわかるように、現在の環境では入力レベルを 9に変更し、音量を 0.64に調整。また音量バランスをとるために、左側の音量を 1.10にアップしています。
6.おわりに
品質的にかなり高いレベルの聴覚補助ツールを製作することができました。音質は良好で遅延も感じられず、Teensyは期待通りの働きをしてくれました。しかし、音声信号処理には抜群の性能を発揮しながらも、このような用途ではまだ十分とは言えません。現在の Teensy 4はワイヤレス接続機能をもっていないので、スマートフォンなどからビジュアルな画面で簡単にチューニングするようなことはできません。チューニング時には IDEが必要になり、PCに接続して IDEを立ち上げ、シリアルモニターから操作コマンドを入力する方法に限定されます。これは決して使いやすいとは言えません。また、Bluetooth接続のイヤフォンを使うこともできません。これらのネット接続ができるようにするには、アドオンボードを購入するか ESP32などとの連携が考えられますが、いずれもサイズや消費電力の点で問題を残します。
2020年の夏から始めた聴覚補助ツールの作成は、デジタル版・アナログ版と回を重ねて今回の製作でほぼ4年になりました。デジタル音声信号処理の基礎からスタートしたプロジェクトは、新発見や驚きの連続でしたが、とりわけ Teensyとの出会いは衝撃的でした。小型で高性能であることはもちろんですが、音声信号処理に関するハードウェアとライブラリーの充実には目を見張るものがあり、ほとんど予備知識なしにでも製作できてしまう環境が整っていたからです。
TeensyにステレオECM入力が追加され、ワイヤレス接続機能が付加され、オーディオ・アダプタボードとのコンパクトな一体化が進めば、ほとんど配線することなく、ソフトウェア開発だけで使いやすいツールを完成させることが可能になるでしょう。
『聴覚補助ツールの製作』は、今回のレポートをもって完結とさせていただきます。半導体の技術革新はすさまじいものがあり、さらに広範囲な技術との融合など夢が膨らみます。今後は、関連分野の新たな動きを期待をもって注視したいと思います。長らくお付き合いいただきまして、ありがとうございました。