#序
ムスメ(小1)が公文式で英語を学習しているのだが、その英語学習用デバイスである"E-Pencil"がとてもよく出来ている。テキストの英単語や英文のそばに「音声マーク」があって、それをE-Pencilで押すと読み上げてくれる、というものだ。こんな面白いもの、当然仕組みを考えてみたくなるよねってことで考えてみることにした。
#音声マークとは
説明書には「音声マークを"押す"」と書いてあるのだが、もちろん"押す"ことに意味は無くて、ペン先にカメラが入っていて音声マークという「認識コード」を読みだしているのだろうということはすぐに想像がつく。拡大してみるとこんなコードだ。
1つのブロックが縦横に繰り返し並べられているように見える。ペン先の大きさから考えても、1つのブロックはかなり小さいと予想できる。横一列、縦一列に等間隔にドットが並んでいるところがあるので何か読み出しの基準になっていそう…。
と、いろいろ仕様を考えていたのだが、ここでうっかり"※E-Pencilは、グリッドマーク株式会社の特許技術を用い、凸版印刷株式会社が製造しています"という情報を得てしまった。
で、グリッドマーク社のWebサイトを見たら、普通に仕様概要が公開されてた。
技術 Gridmark Ink.
4x4格子を1単位として、格子の中に(恐らく)必ず1つのドットが存在して、ドットの位置をコード化していると考えられる。(というかほぼそう書いてある)
画像では+x+xのように並んでいて「上下左右位置」のブロックと「斜め位置」のブロックがあるのか(キードットとの誤認識回避のため?)と思ったのだが、4x4の16個の格子で48bitを表現できるらしいので、1格子あたり3bit表現できることになる。とすると、「上下左右4情報」と「斜め4情報」ではそれぞれ2bitしか表現できないのでこれでは足りない。ということは恐らく、「上下左右と斜め4か所の合計8情報」から3bitを表現できるものだろうと推測した。
#画像を解析してみる
ほぼ答えのようなヒントを得たので撮影した画像を実際に解析してみよう。
説明には4x4となっていたが、実際に解析してみると3x3の繰り返しになっているようだ。9個の格子なので27bitのデータが表現出来ると考えて良いだろう。赤い線でブロック、黄色い線で格子、青い線で情報ドットの基準線を引いてみたら、ドットの位置は確かに明確に8ポジションの内のどれなのかが判別出来るようになっていた。本当によくできているなあと感心した。
ちなみに解析に用いたソフトウェアは「Excel」である。Excelは万能だなあ。
#今後の見通し
当初の予定としては、「くもんからテキストをもらっていない箇所のコードを自作してテキストがなくても使える状態を作る」のが目的だったのだが、ちょっと難しい気がしている。というのも、最初の想定では、「読み取ったコードから該当番号の音声ファイルを再生しているだけ」で「音声ファイルはSDカードに入ってる」と思いこんでいたのだが、いざSDカードスロットを開けてみたら空っぽだったのだ。つまり、この音声データはシステム本体側のFlashに書き込まれていると考えられる。そこまでのハックに時間を費やすつもりはない。
また、仕組みが分かったら自前でSDカードに音声ファイルを入れて、好き勝手な音声を鳴らせるように改造したいという狙いがあったのだが、なんとこの機能は公式がそのまんま誰でもオリジナルの音声を鳴らせるツールセットを販売しているのだった。
DSP Sound Linker版(G-Speak+ドットシールセット+Sound Linker)
公式がちゃんとしたツールを公開(販売)して「オリジナル作りたいときはこれを使って」と言っているものがあるのに、ハックして自前で作ったりましてやそれを公開するというのは俺倫(俺的倫理規定)に反することになるので、あまり深追いしないことにしようと思ったのだ。
ということで次のステップは、「音声マーク」を自宅のプリンタで出力して再生出来るかどうか、並行してカメラで取り込んだ音声マーク画像をリアルタイムにコード変換する画像処理アルゴリズムの作成を考えてみたいと思う。
長くなってきたし疲れたので今日はここまで。