Chrome 拡張機能でモールス符号を再生する(1)

次の記事に書いたように、モールス符号の聞き取り練習用のテキストを用意するのは手間がかかります。

ji1jdi.hatenablog.com

これを少しでも楽にできないかと考えています。その一つの方法として Chrome 拡張機能を使ってウェブページのテキストをモールス符号に変換して、その場で再生できないかを試してみたいと思います。

まず最初のステップとして、Chrome 拡張機能モールス符号の再生ができるかを実験してみます。モールス符号の再生には Fabian Kurz (DJ5CW) さんの jscwlib を使います。

fkurz.net

Chrome 拡張機能は基本的に普通のウェブページを用意して、拡張機能の仕様を定義する manifest.json というファイルを作成すればよいようです。次の manifest.json を作成しました。拡張機能の名前は DitDah Player としました。

{
    "manifest_version": 3,
    "name": "ditdah-player",
    "version": "1.0.0",
    "description": "DitDah Player",
    "action": {
    "default_icon": "assets/images/ditdah-apps-logo.png",
    "default_popup": "index.html"
    }
}

default_popupには拡張機能のアイコンをクリックして起動したときに表示するページの HTML ファイルを指定します。

ページとイベント処理は Bulma と Vue3 を使って作成しました。拡張機能デベロッパーモードを有効にして、作成したパッケージを読み込みます。次の図が拡張機能を実行したところです。UI はデザインもレイアウトも DitDah Apps のようになりました。再生も可能です。

この時点ではまだ自分でテキストを入力するか、ページからコピー&ペーストするしかないので面倒です。たとえば、選択された範囲のテキストがそのまま拡張機能に取り込まれるようにすると楽になりそうです。

さらに、漢字仮名混じり文の再生をどうするかを考えなければなりません。jscwlib は和文にも対応していますので、カタカナやひらがなのテキストに変換するだけです。比較的楽な方法はルビが振られたページのテキストを利用することです。jscwlib は漢字の部分は無音になるので、ルビが振られたページのテキストをコピー&ペーストすれば一応再生はできます。ただし間が開いてしまいますので、漢字を取り除く必要があります。

Yahoo の Web API にはルビを振ってくれるものもあるので、それと連携する方法もありますね。自分で Web API を作ってもよいかもしれません。

まだまだ課題は山積みです。今日はここまで。そろそろクラブ活動もしたくなってきました。

JI1JDI

ゆるく楽しくアマチュア無線とプログラミングを楽しんでいます。 scrapbox.io