[通信実験]

音声デジピーターの実験


つくばF3


 2023年8月27日、筑波山(男体山:871m)で移動運用した際、立山山頂(雄山:3003m)にデジタル小電力コミュニティ無線(以下、LCR)を使った音声デジピーター(立山山頂DPT局)が設置されているとの情報を交信局(とうきょうGW193局:城山湖移動)からいただいた。この交信後、アクセス可能かどうか試したところ、幸運にも可能なことが判明した。さらにこの中継装置を介して一斉呼び出しを行い、富山市内の方(とやま1局)と交信することができた。

 後日、筑波山~立山山頂間の地形を調べてみると、途中、山岳地帯(長野/群馬県境付近)に遮られ見通しはなく、また距離は約226kmも離れているが、LCR(500mW)は特定小電力トランシーバー(以下特小:10mW)に比べ電力が大きく、また波長も長い(約3倍)ためか?山岳回折や反射により、電波が十分に届いていたと考えられる。また立山山頂にはアマチュア無線レピーター(JR9VQ:439.12 MHz)が設置されており、国内だけでなく海外からもアクセス可能であるらしい。

 偶然、立山山頂に置かれた音声デジピーターを使う機会を得て、自らの手(Hands-on)で実験してみたくなった。そこで特小機(単信)1台、音声録音再生LSI、そしてそれらを制御するためのマイコンボード等を組み合わせて試作することにした。

 以下の写真(図1)中央に示す試作ボードは2段構造になっていて、僅かに見える下段の青色のボードがマイコンボード、その上段に載せられた緑色のボードが音声録音再生LSI他である。これらはピンヘッダとソケットを使って相互に接続(積層)されている。



図1:試作した音声デジピーター(初号機)



【音声デジピーターとは?】

図2:レピーター(左)と音声デジピーター(右)の違い

 図2左に示すように一般的な半複信のレピーターの場合は同時に2つのチャンネルを使って送受信する。あるチャンネル(f1:アップリンク周波数)で受信された音声を別のチャンネル(f2:ダウンリンク周波数)で再送信する仕組みである。

 それに対し、図2右に示すように音声デジピーター(やまびこレピーター)の場合は単一チャンネル(f0)のみで中継するため、受信音声を中継装置で一時的に録音し、通話終了直後、録音された音声を再生してそれを送信する仕組みである。よって交信にかかる時間は2倍以上必要(録音時間+再生時間)となり、一見”この時差”が発生して使いにくい印象だが、動作原理を理解して通話内容をできるだけ簡潔にすれば、効率よく会話(交信)が進められると思われる。

 また単一チャンネルしか使用せず、中継に関わる無線装置(単信)はすべて同じ仕様(周波数、電波形式など)のものでよいため、システム全体としては非常にシンプルである。また自局から送信した内容を送信終了後、折り返し確認できるので訂正が容易であり、そして相手局が不在の場合でも中継装置までどの程度通話内容が届いているかを事前に確認できるので、自局モニター(別のモニター受信機など不要)としても便利である。

 ところで「デジピーター」という言葉は昔々(1980~1990年代頃)、アマチュア無線でパケット通信(無線を使ったパソコン通信のようなもの)が流行っていた頃、デジピーターと呼ばれるデータ中継機能がモデム装置(TNC:ターミナルノードコントローラー)に予め実装されており、単一周波数を使って、あるノード(NODE:各アマチュア無線局)から別のノードへデータパケットをバケツリレーのように次から次へと中継(転送)する機能があり、盛んに使用されていた。それになぞらえて、音声デジピーターと呼ばれているようである(諸説あり?)。

 次に音声デジピーターの構成例について説明する。


【音声デジピーター構成例】

図3:音声デジピーター構成例

 全体の構成例を図3に示す。

 基本的に大きく3つの部分に分かれており、図の左から全体を制御する「コントローラー」、中央部分が送受信を担当する「無線装置(単信)」、そして無線装置から出力される受信音声を一時的に録音したり、また録音された音声を再生して無線装置へ送信音声として出力する「録音再生装置」から構成されている。もしテープレコーダーなどの機械的な録音再生装置で実装した場合、巻き戻しや頭出しなど操作は複雑で大掛かりな仕掛けとなる上、録音再生以外に余計な時間が必要となる。しかし、近年安価となった半導体メモリなどを使うことにより、とてもシンプルに実装できる。

 コントローラーでは、無線装置が受信待機中(スケルチクローズ)か?それとも通信を受信中(スケルチオープン)か?どうかを判定するため、無線装置から出力されるBUSY信号を常時モニターしていて、もし受信中と判定されるとREC信号が録音再生装置へ送られて無線装置のSP端子から出力される受信音声の録音が開始される。

 次に通信が終了(スケルチクローズ)と判定されるとREC信号が解除され、変わってPLAY信号が録音再生装置へ送られて再生を開始し、送信音声が無線装置のMIC端子へ入力される。また同時にPTT信号もコントローラーから無線装置へ入力され送信が開始される。そして音声の再生がすべて終わると録音再生装置からEND信号がコントローラーへ送られてPTT信号が解除され、無線装置が再び受信待機状態へ戻る。

 このような一連の動作(受信待機→受信録音→送信再生→受信待機→)が順次繰り返される。

 次に具体的な各構成部品について説明する。


【コントローラーについて】

図4:今回使用したマイコンボード(Arduino UNO)

 一連の動作を実現するため、図4に示す、汎用のマイコンボード(Arduino UNO)を使ってみることにした。Arduino(アルデュイーノ:イタリア語で発音が難しい)はPC(Windows Mac等)さえあれば、USBケーブルを通してプログラムの書き込みが可能で、専用の高価な書き込み機などは不要であり、また開発環境(Arduino IDE)もフリー(無料)である。さらに世界規模でユーザーが多いことからソフトウェアライブラリー(無償)はとても充実しており、ハードウェア情報も公開(オープンソース)され、オリジナル品だけでなく、安価な互換品(自作可能)も市販されている。ホビーユースでマイクロコントローラー(MCU)を使うには最適なマイコンボード(UNO以外にも多数あり)の一つかもしれない。

 今回は全体のロジック(論理)やタイミング制御だけでなく、図3にあったBUSY信号の生成もマイコンボード(MCU内)で行うことにした。一般的にBUSY信号は無線装置から発生させるものであるが、この信号を取り出すには改造(外部出力があって不要な機種あり)が必要な場合がある。しかしながら、特定小電力トランシーバーの場合、BUSY信号を外部出力している機種は皆無?(筆者未確認)のようであり、ご存じの通り、アマチュア無線機器などと違って改造はNG(改造後は使用不可)である。

 そこで以前、特小機(単信)2台を使ったクロスチャンネルレピーターの実験と同様の方法を今回も使うことにした。原理は無線装置のSP出力から発生するノイズがスケルチのオープン時(受信中)とクローズ時(待機中)で、以下の図5に示すようにレベル(振幅)差が生じ、この差を利用してBUSY信号を検出する方法である。前回の実験では、この微弱なノイズを低周波増幅器を使ってダイオードがスイッチング動作する電圧レベルまで持ち上げて半波整流(DC電圧発生)させ、さらにその電圧を増幅してリレー(継電器)が動作するレベルまで引き上げるアナログ的な手法を取った。このノイズレベル差、都合が悪いことに機種(無線機)によって違いがあるようで、機種ごとに再調整する必要がある。

図5:ノイズレベル差(オープン時/クローズ時)

 一方、今回の実験では無線装置のSP端子から出力される微弱なノイズを、先ずオペアンプを使って十分なレベルまで増幅(約20~30dB)させ、この増幅されたノイズをマイコンボードのアナログ入力ピンへ直接入力し、MCU内でサンプリング(標本化)、A/D(アナログ~デジタル)変換後、数値化(量子化)されたノイズを前回と同様の原理に従って、MCU内で演算処理することでBUSY信号を検出することにした。前回の方法ではすべてアナログ的(ハードウェア)な手法だったため回路定数(抵抗や容量など)の調整等を試行錯誤(カット&トライ)しながら決めていたが、今回はプログラム(ソフトウェア)の変更で機種(無線機)によるノイズレベル差の微調整も可能となった。そして動作が不安定なアナログ部分を極力減らし、安定性の改善と実装面積の節約が両立できたかもしれない。

 この検出されたBUSY信号を基に、後述する音声録音再生LSIの制御信号であるSTART信号、REC/PLAY信号、無線装置の送受信をコントロールするためのPTT信号をこのボードから発生させる。またこれら基本動作とは別にID(コールサイン等)送出のためのモールス信号の発生や局名アナウンス用の音声合成LSIの制御なども追加機能として用意してみた。

 そして、本稿冒頭で示した写真(図1)のように「シールド」と呼ばれる拡張ボードをピンヘッダとソケットを使って次々にマイコンボードの上へ積層できるような構造になっていて、後述する音声録音再生LSIや音声合成LSIなどを追加、実装している。このような構造を採用することで、拡張性、保守性、そしてコンパクトに収め可搬性も向上させている。

 ところで最近(2023年11月現在)UNOは、Rev4版(Minima/WiFi)がリリースされ、これまで採用されてきたAtmel社製ATmega328(16MHz)に代わり、新しいMCU(RA4M1)が採用された。クロック周波数の大幅な向上(48MHz)、またメモリ容量も大幅に増加し、他の機能も強化されたらしい。このMCU(内臓CPU:ARM Cortex M4)、なんと日本製(ルネサスエレクトロニクス社)であり、今後注目のマイコンボードである。


【無線装置(特定小電力トランシーバー)について】

図6:今回使用した無線装置(DJ-CH1:アルインコ社製)

 今回使用している無線装置はアルインコ社製のDJ-CH1(図6)である。この実験のために新たに購入したものではなく、数年前、近所の中古屋さんで偶然見つけたジャンク品で、なんと980円(税込み)だった。購入後、半信半疑で電源を入れたところ、基本機能(送受信)に問題はなかったがLCDの表示に不具合があり、表示が非常に薄く何が書いてあるのか?ほぼ見えない。やはり安かろう悪かろうである。筐体には、ほとんど傷も見られず、使われた形跡がなくてほぼ新品のような状態だが、実使用に耐えられないため、しばらくそのまま手付かずに置かれていた。

 ところが、このような実験では一度設定(チャンネルやグループ等)が終われば、表示を度々確認する必要もない。また音量調整はロータリーエンコーダー等を使わないシンプルなアナログボリュームなので微調整が可能であり、実験の目的にとても適っている。よって再登板?の機会が与えられたわけである。


【録音再生装置について】

図7:今回使用した録音再生LSI(APR9600)

 音声を録音再生するだけであればA/D変換器内臓のMCU(マイコンボード)を使ってサンプリングした音声を書き込み読み出しすればよい。しかしその音声データを収容するのに十分な容量のメモリ(RAM)が必要となる。録音に必要なメモリ量(データ圧縮等を行わない)は概ね以下の計算式となる。

 必要なメモリ量(ビット)= サンプリング周波数(Hz)* 量子化(ビット)* 録音時間(秒)

以下の条件で計算してみると、

 サンプリング周波数:8~16KHz(必要な周波数帯域の2倍以上)
 量子化ビット数:8~16ビット(CDの場合:16ビット)
 録音時間:30秒(これ以上長い場合、逆に交信し難い)

 必要なメモリ量(バイト)= 約240Kバイト~最大960Kバイト(約1Mバイト)

 最新のPC/スマートフォンに内臓されているメインメモリ(数Gバイト~)やストレージ用のHDD/SSD(数Tバイト~)と比べれば、最大1Mバイトなんて写真1枚程度のとても小さなサイズだが、このような小さなマイクロコントローラー(MCU)にとっては現在でも広大なメモリ空間である。前述した「Arduino UNO」のRAMサイズは僅か2Kバイト(必要な量の約500分の1、実際に使えるのはこの半分程度)しかない。メモリ量だけをみれば、DRAMやSRAM、フラッシュメモリなどを外付けすれば十分に実装できそうだが、その制御はとても面倒であり時間とリソースをかける余裕はあまりない。しかしシステム全体をさらにコンパクトにまとめるためには選択肢の一つかもしれない。

 そこで音声の録音再生専用チップを探していたところ、実は手元にあるのを思い出した。購入当初(約10年前~?)、何かに使えないか悩んでいる間に忙しくなり、すっかりその存在を忘れていた。仕様書を改めて見ると高音質モードで最大約30秒録音できるようなので、まさにこの実験のために用意されたかのようなチップである。ただ少し残念なのが、パッケージサイズが図7に示すように大型(600mil)の28ピンDIPであり、小型(300mil)で同様なチップを探したが、結局見つからず、今回ついにご登場いただいたわけである。

 本稿冒頭の写真(図1)に写っている緑色の基板面積を多く占拠しているのがこのチップである。


【音声合成LSIについて】

図8:音声合成LSI(ATP3012)

 このような中継装置の場合、稼働開始後、ほぼ放置される状態となるので、コールサインや目的、場所などを定期的に告知するため、モールス信号を使ってIDが送出できるようプログラムの追加を行った。この場合、ハードウェアの追加は特に必要ないが、モールス信号だけでは知らせる内容が分かりにくい上、送信時間(高速な30WPMでも音声の方が早い!)も余計にかかるので、同様の内容を音声で送信できるようにオプション機能として音声合成LSIを使ってみることにした。

 このチップ(図8)、UNOと同じMCU(ATmega328P)が使用されていて、基本的に16MHzの水晶発振子(またはセラミック発振子)外付けで動作させることができる。よって低消費電力で動作することができ、ハードウェアとしてはとても使い勝手はよい。しかし音声合成させる文章(ソフトウェア)を作成する際、できるだけ自然な話し言葉に近づけるため、内容(文脈)によってアクセントの位置などを調整する必要があり、これがなかなか難しい。文脈から合成音声用テキストへ変換するようなソフトウェアがあると便利かもしれない。

 最近はAI(人工知能)の技術を使い、文章(テキスト)から自然に聞こえる音声合成するソフトウェアがあるので、今後はそれを使って合成音声を作るのもよいかもしれない。そして人間が機械を、または機械が人間を相手にする「AI無線局」が現れるのも、そう遠くないのかもしれない。機械同士では人間の話す言葉をわざわざ使う必要はないので、実はもうすでに人間のわからない言葉?でお互いに交信しているのかもしれない。。。

 次にこれまで説明してきた各部品を組み合わせた、全体の回路構成を説明する。


【回路構成】

図9:回路構成

 各部品(マイコンボード、無線装置、録音再生装置、音声合成ボードなど)をまとめた、最終的な回路構成を図9に示す。

 無線装置の音声出力(SP端子)は二つに分岐し、一方は音声録音再生LSIの音声入力(MIC端子)へ、そしてもう一方はOPAMP(オペアンプ)で一旦増幅し、マイコンボードのアナログポート(AIN)へ直接入力され、その信号(アナログ値)が数値化(デジタル値)されてMCU内で演算処理後、マイコンボードから音声録音再生LSI(APR9600)の制御信号(START信号、REC/PLAY信号)や無線装置の制御信号(PTT信号)などを発生させる。受信中(スケルチオープン)とMCUが判定すると受信音声の録音が開始され、受信が終了(スケルチクローズ)するまで録音が継続される(ただし、最大録音時間約30秒を過ぎると自動的に録音停止)。

 受信終了(スケルチクローズ)直後、再生が開始され同時にPTT信号が無線装置(DJ-CH1)へ入力されて送信状態となり、再生音声が送信される。そして、すべての再生(通信内容)が終了すると、音声録音再生LSIが動作中(録音中または再生中)であることを示すBUSY信号(前述した図3の無線装置から出力されるBUSY信号とは違うので注意)が変化し、それをモニターしているマイコンボードがPTT信号の解除を行って送信が終了、受信待機状態へ移行する。

 また約3分に一度(約10~15秒間)、ID(コールサイン等)が自動送出するようにプログラムされており、モールス信号または音声アナウンス(日本語)のいずれかを選択できる。モールス信号の場合はマイコンボードのみで生成できるが、音声の場合は専用の音声合成LSI(ATP3012)を使い、マイコンボードのシリアルポート(TXD/RXD)から送信される文章(テキスト)をこのLSIで受信し、合成音声を発声させてそれを無線装置(DJ-CH1)から送信している。


【実験結果(フィールド実験)】

 2023年9月18日、秋の一斉オンエアデーの日である。試作機(初号機)が完成したのでこれを携え、茨城県つくば市宝篋山(461m)山頂へ登った。無線装置(DJ-CH1)の電源を入れて使っていないチャンネル(レジャー9ch)に合わせ、試作した中継装置と繋いで試験運用を開始した。並行して行っている移動運用(市民ラジオ→LCR→特小)で、茨城県筑西市内を移動運用中の”つくば48局”と繋がり、実験内容を伝えたところ、快く実験のご協力をいただきアクセスを試していただいた。ところが、短時間(数秒間)で録音が停止してしまい、それを再送信するような状態が続いたため、この日の実験は残念ながら中止することにした。

 後日、その原因を探ってみると受信音声のレベル(振幅)が過大に入力された場合、前述したBUSY信号(MCU内で生成した信号)が一瞬途切れること(録音→再生)が判明した。微弱なノイズレベル差に比べて、通常の受信音声はレベル差がとても大きくなり、条件によっては検出プログラムが十分に対応できていなかったようである。早速、プログラム修正を行った。

 また「再送信される音声レベルが少し小さいのでは?」との”つくば48局”からご指摘をいただいたので、適正なレベルになるよう再調整を行った。実際にフィールド実験してみると事前の室内実験では気が付かなかったことや、想定外の不具合が色々出てくるものであり、毎度ながらそれらを痛感させられた。

 2023年10月8日、前述した不具合のプログラム修正、音声レベル調整の他、ID送出のためのモールス信号発生プログラムの追加、また音声アナウンス生成のための音声合成LSIボード製作とその制御プログラムの追加を行い、修正版の2号機(マイコンボードは自作互換機へ変更)を携え、再び宝篋山山頂へ登った。この日も移動運用と並行して実験を行い、中継装置に設定したチャンネル(レジャー5ch)を同時にモニターしていたが、約3分ごとにIDが自動送出しているのを時々聞いているだけで、移動運用の方に注力したため、中継装置はほぼ放置したような状態であった。

図10:移動運用先(筑波山男体山山頂付近)に置かれた音声デジピーター(2号機)

 2023年11月3日、各地一斉オンエアデーの日である。この日も修正や追加がほぼ終わった2号機を携え、茨城県つくば市筑波山男体山(871m)山頂へ登った。中継装置の電源を入れて使われていないチャンネル(レジャー8ch)に合わせて、特小やLCRの交信局に音声デジピーターの稼働状況(使用チャンネルや概要など)を伝えながら待機した。

 上の写真(図10)はこの日、移動運用先に置かれた音声デジピーターである。このボードから延長ケーブル(ステレオミニプラグ/ジャック)を使い、この上にある木の枝にぶら下げた無線装置(DJ-CH1)と繋がっている。プラスチックケースは100均で見つけたもので、稼働終了後はボード類(音声録音再生ボード、音声合成ボード、マイコンボード)や電池ボックス、ケーブル類などをすべてここに収納できる。

 並行してバンド(市民ラジオ→LCR→特小)を順次変えながら移動運用を行っているので、音声デジピーターの利用状況にあまり注視できなかった。しかし交信の合間に時々モニターしたところ、コールサインなどは未確認ながら何度かアクセスされているのを確認でき、ほぼ正常に動作しているようであった。

 通常の交信が一段落して、ランチをいただきながら音声デジピーターをモニターしたところ、茨城県筑西市内を移動運用中の”つくば48局”がアクセス中であり、声をかけたところ交信が成立した。こちらの設置場所との相性が最初あまり良くなったため、11月としては気温が非常に高い中、本当にありがたいことに徒歩で良好なアクセスポイントを探していただいたようである。またそれと前後して、茨城県鹿嶋市内を移動運用中の”かしまKH197局”がアクセス中の再生音声も聞こえ早速呼んだところ、”直接波”も同時に良好に入感しており、少し混乱を与えてしまったようだが最終的に中継装置を経由して交信が成立した。よってこの日の中継実験はほぼ成功したようである。


【考察】

 今回、特定小電力トランシーバー(単信)を用いた音声デジピーターを試作した。フィールド試験(9月18日、10月8日)の結果を基に、ハードウェア、ソフトウェアの追加修正を行い、11月3日の稼働実験で概ね良好に動作していることが確認できた。また特定小電力トランシーバー以外でもLCR(デジタル小電力コミュニティ無線)やアマチュア無線機器等でもこのボードが応用できるかもしれない。

 現在、マイコンボード等は剥き出しの「バラック」状態であり、また電源の確保や場所等の問題があって、今のところ常設のハードルは非常に高いと思われる。よって移動運用の際にできるだけ仮設する機会を設け、動作状況を観察しながら改良や機能追加などを今後も引き続き行う予定である。


【謝辞】

 本実験に際し、フィールド実験(初号機)で動作状況や改善点などのアドバイスと実際に交信していただいた”つくば48局”、今回交信していただいた”かしまKH197局”、そしてこの音声デジピーターへアクセスしていただいたすべての特定小電力無線局へ感謝申し上げたい。

 また、今回の実験の動機付けとなった”立山山頂DPT局”に関して情報共有していただいた”とうきょうGW193局”、実際にこの音声デジピーター(LCR)を介して交信していただいた”とやま1局”、そして”立山山頂DPT局”を維持管理されている有志の方々へ感謝申し上げたい。


【参考文献など】

ATP3012データシート(PDF)(株)アクエスト
DJ-CH1取扱説明書(PDF)(株)アルインコ
クロスチャンネルレピーターの実験通信実験のページ(つくばF3)
PC用ヘッドセットを使った特定小電力トランシーバーの通話実験通信実験のページ(つくばF3)
RA4M1 HomePage(株)ルネサスエレクトロニクス


【更新】

2023年11月11日:Initial Release
2023年11月18日:誤字、脱字の修正、および図の追加など


【ご注意】

本記事を利用して生じたトラブルに関しては、筆者は責任を負いかねますので、ご了承ください。