✖
NotebookLM ぜんぜん活用できてない。日常の中にない。
NotebookLM ぜんぜん活用できてない。日常の中にない。
WebAudio のRTT測るツール作ろうかと思ったけどM系列ですぐ測れるやつがすでにあった https://gilpanal.github.io/weblatencytest/ 72ms だった (https://github.com/gilpanal/weblatencytest )
https://github.com/cho45/pseudo-audio-signal
定期的にチマチマいじって盆栽している。あんまり意味ないけど複数サンプルレートに対応させたり、E2Eテストを簡単に追加したり……
ずっと以下のような八車文乃プロンプトにしてたけど、LLMにターミナルの結果をバッを貼りつけるときにまぁ不便 (「何か文字化けしているようです」とかいわれる)のでそろそろ止め時。供養します
[cho45@Anna] ~ | q ド _ リ|$ <
主に Gemini を使って、LLM主体でモデルの設計と学習をなるべくさせてみるということに数日とりくんでた。
自分が知らないことをLLMにやらせてみようというのを時々やっている。
モールス符号の音響受信をさせる。7年前にKerasを使って頑張って似たようなことをやった覚えがある。その情報は渡さずに「今こういうのやるならどういうモデルがいいかな」という相談からはじめた。
Gemini いわく「 CTC損失を用いたStreaming Conformer (CNN + Transformer)」がいいのではということだった。よくわからないが全く理解しないままこの方向ですすんでみることにする。(賢いあなたは、わからないことがあったらその時点で必ず解消しましょう)。
リアルタイム音声認識ということでこれを提案してきたのだろう……
https://cho45.github.io/morse-decoder-2026/demo.html
一応計画の段階で「最終的にブラウザでリアルタイムにストリーム処理できること」は入れてたので、いろいろ問題はありつつも動くものはできた。
pytorch でモデルを作り、最終的に onnx に変換して onnx web で動いている (wasm)。WebGPU でも動きはするけど、なんかちゃんとやってないのでパフォーマンスがでない。
「SNRいくつまでデコードができる」みたいなことを言いたいが、SNRの定義がなんともいえない (信号のある瞬間の振幅基準) ので難しい。このSNRで-15dBぐらいまでギリデコードができる。もうちょっと頑張ってほしいけど……
こんな感じ。CNN + Transformer のことを Conformerというらしい。まんなかの4層がそれ。ただのモールス復号のモデルにしてはデカいはずだけど、もっと少ない状態だとまったくうまくいかなかった。
入力はスペクトログラムを特定ピーク中心で切り出したものになっている。つまりベースバンド波形ではなく画像として見てる。別途ピーク検出と切り出しを行ってからこのモデルに入れる想定。位相が不要だから画像として扱うほうがいいっぽい?
モデルの内容には、ほぼ口を出さずにやれるところまでやったけど、そもそもいくつか疑問があるので、今更訊いた。
(意図: 特定周波数付近を切り出して渡しているので、通常のスペクトログラムで十分だし実用上は楽なのでは?)
A:「メルスペクトログラムは、一般的な音声認識(ASR)モデルの標準的な入力形式であり、情報の圧縮とノイズ耐性に優れているため採用されています。狭帯域にクリップする場合、メル尺度による圧縮の恩恵は薄れるため、本アプリにおいては線形スペクトログラムの方が解像度を維持でき、より合理的である可能性が高いです。」
「リアルタイム音声認識」にひっぱられてあんまり考えずに決めてるな……
Q: 「今回のモールス学習の場合、かなり厳密にラベルがつけられるはずですよね。そして実際そうしているし Signal Head として出力もしている。それでもなおCTCを使う理由は?」
A:「Signal Head による物理的な信号認識を補助としつつ、CTC を使うことで「文字」としての文脈や区切りを柔軟に扱い、デコード時の頑健性を高めるためです。」
Q:「今回の場合ラベルの柔軟性というよりは出力の簡略化の側面がつよい?」
A:「はい、その通りです。Signal Headのように「全フレームを分類」するのではなく、CTCを使うことで「重複除去とblank削除」という単純なルールだけで、複雑な後処理なしに最終的なテキストを直接得られるという、出力の簡略化と利便性の側面が非常に強いです。」
フーン……
出力に CTC 以外に Signal Logits と Boundary Logits がある。これらはCTC出力からだけの学習で一切上手くいかなかったため、苦肉の策として追加した出力になっている。(ここは自分の指示……)
これが正しいことかはわからないが、Gemini 的には学習を進めるうえで有効ですとはいっていた。まぁ結果としてうまくはいったけど、これのせいでモデルサイズが大きくなっている面がある気がする。
やはり自分で正解知らないことをボーっとやらせるのは非常に難しい。結局急がば回れになることが多い…… わかってるんだよ。わかってるけどわからないまま作りたいんだ!
機械学習の修正タスク投げると、いくら事前に指示をしていてもテストを書かないし実行してくれない。最終的には「平均的なエンジニアはテストを書かず本体のコードだけに集中している。そこから学んでいるので自分もそういう傾向にあるのだ」という開きなおりをされた。
hakobe さんが「NotebookLM に家計情報置いてスライド作らせると面白いよ」と言うのでやってみたらかなり面白かった。役立つというよりは笑える。
知らんうちに肩書がついていたり、よく決算資料で見るようなウォーターフォール図(という言葉もしらなかった)だったり、アクションプランだったりをいろいろ勝手に作ってくれる。
フォントが変なので画像生成は使ってるんだろうけど、グラフの正確さが画像生成のそれではないように思える。どうやってるだろうなあ。
健康診断、保険組合が変わり、去年まで行っていたところと違うので早めに家を出たが、予約時刻の15分前から案内だった。はやく着きすぎた。
スマホで案内されるシステムでなんかすごいが、別にファイル置いていくシステムでも良さそうな気がする。いや、違うな、数字通りじゃなくあっちこっち行かされるので、待ち行列が最小になるように個別案内されている?
スタッフの人の手際がすごい。2倍速ぐらいで動いてしゃべる。最適化されとる。
とにかく胃カメラが毎回気が重い。鎮静剤ありの経口で予約。そして今回は最後に胃カメラというパターンではなく普通にほかの検査の途中だった。
事前に「当院の鎮静剤は優しめで、眠ったりしません」といわててビビっていた。実際、完全に眠ることは全くなく、普通に寝不足の深夜とか、泥酔一歩手前ぐらい。
喉通過のときは普通にえづいてしまった。ただ先生もゆっくり動かしてくれたのと、看護師さんが背中さすってリラックスさせてくれていたのが地味に良かった…… おかげで、通過してからもずっとえづいてしょうがないということはなかった。
胃の下あたりから終わりまでは目をあけてモニタ見てた。結果は綺麗。鎮静剤優しめだけど、もっとひどい人に比べれば、それほどえづいてなかったと説明される。というかそもそも内視鏡が結構細かった気がする。喉通過のとき飲み込んでくださいとも言われなかった。あと先生も丁寧だった。
そういえばなんか肺活量の検査なかったな。
検診後にびっくりドンキー。扉メニューないの普通に不便だな…… 白玉デザートもなくなって悲しい。
誕生日よりも健康診断がおわったことのほうがめでたいし気分上がるわ。抑圧と解放の例だ……