Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
腕時計ローカルAIスタックチャンを作ったら組み込み開発の罠にハマった話
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
hawky the miscellaneous
June 30, 2026
Technology
64
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
腕時計ローカルAIスタックチャンを作ったら組み込み開発の罠にハマった話
2026.6.28 ローカルAIと向き合う展⽰会 Vol.2 のLTで発表した内容です。
発表時の台詞に合わせて当日のスライドから若干修正しています。
hawky the miscellaneous
June 30, 2026
More Decks by hawky the miscellaneous
See All by hawky the miscellaneous
AI AgentのTDDルール追従性を評価する
hawkymisc
0
91
Applied AI Engineering とは
hawkymisc
0
110
非CUDAの悲哀 〜Claude Code と挑んだ image to 3D “Hunyuan3D”を EVO-X2(Ryzen AI Max+395)で動作させるチャレンジ〜
hawkymisc
2
580
Other Decks in Technology
See All in Technology
モノリス Rails でも日中に rails db:migrate を走らせたい! / Daytime rails db:migrate on Monolithic Rails!
euglena1215
4
640
Invisible to AI? Making TYPO3 Sites Quotable by AI Search Systems
wolfgangwagner
0
230
強化学習「理論」入門
enakai00
3
3.6k
コネクションをピン留めさせずに SELECTクエリのタイムアウトを設定した話
codmoninc
0
140
Goでデータパイプラインを作ろう
sansantech
PRO
1
510
ボトムアップ文化が強い組織で セキュリティをどう根付かせていくかの現在進行形の話 / Making Security Stick in a Bottom-Up Organization
yamaguchitk333
0
240
FPGAが実現する遠方宇宙の高空間分解能天体撮影 -大型地上望遠鏡の視力を補正する「補償光学」とは?-
komei_mt
0
500
Bits AI を制するものは Datadog を制す / The player that controls Bits AI, controls Datadog
kaminashi
0
130
AI-DLC実践録_フルサイクル開発への挑戦
miyuc
0
260
JavaScript 研修 (2026)
recruitengineers
PRO
2
630
猫付きpingコマンドを自作
uyuki234
0
260
Digitization部 紹介資料
sansan33
PRO
2
7.7k
Featured
See All Featured
Digital Ethics as a Driver of Design Innovation
axbom
PRO
1
370
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
480
The Illustrated Children's Guide to Kubernetes
chrisshort
51
53k
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
1
1.8k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
254
22k
30 Presentation Tips
portentint
PRO
1
370
The Organizational Zoo: Understanding Human Behavior Agility Through Metaphoric Constructive Conversations (based on the works of Arthur Shelley, Ph.D)
kimpetersen
PRO
0
420
The Spectacular Lies of Maps
axbom
PRO
1
930
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.9k
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
780
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
Bash Introduction
62gerente
615
220k
Transcript
Slide 1 / 13 改めまして、ほーきーと申します。LTのト ップバッターということで若干緊張してお りますが、普段はXのほうでいろいろつぶ やいております。1日数十ポストぐらい、 平均でつぶやいておりまして、いわゆるツ イ廃と呼ばれる部類です。AI関連の資格を
いくつか持っています、という「ちゃんと 仕事しています」アピールをしておこうと 思って、ここにバッジを載せております。
Slide 2 / 13 今回は「ローカルAIと向き合う展示会」と いうことですが、ローカルAIそのものから は若干外れた、番外編のようなテーマです 。ローカルAIに家の外からアクセスしよう としたらどうなるか・ということで、「腕 時計ローカルAIスタックチャンを作ったら組み込
み開発の罠にはまった話」という題材を選 んでいます。
Slide 3 / 13 腕時計ローカルAIスタックチャンとは何ぞや、と いう話ですが──前提として、AIスタックチャン というものがありまして。右側にあるよう な、こういう顔があって……それがスタックチャ ンというキャラクターです。M5Stackとい うメーカーが出している、マイコンにディ
スプレイとセンサーがまとまって付いたデ バイスに、こういう顔を表示するのが「スタ ックチャン」で、元々はメーカー発ではなくコ ミュニティ発のものです。
Slide 4 / 13 そのスタックチャンに、AIを使ってしゃべらせる というのが『AIスタックチャン』です。今回はそ れをさらに、AIをクラウドではなくローカ ル完結でやることと、腕時計としてスタックチャ ンを身に着けて持ち運ぶことを実現しよう と取り組みました。
構成としては、自宅のローカルマシンでAI を動かしたうえで、家にいるときは、この スタックチャンが動いているCore2というデバイ スからWi‒Fiで直接通信します。外出したと きはWi‒Fiで直接入れません。ちなみに、サ ーバー側をそのままグローバルに晒すのも 怖すぎるので、VPNを張ったうえで、その VPNに参加しているAndroidスマートフォ ンを使います。スマホは普段持ち歩くので 、スマホとこのスタックチャンのパーツをセット にして持ち運び、外出時はこれをUSBでつ ないで、ローカルのAIにアクセスする構成 にしています。
Slide 5 / 13 で、さきほどの構成図を見て疑問に思われ たかもしれません。 そうですね、Core2をVPNに参加させれば 、もっとシンプルな構成にできます。
Slide 6 / 13 私も最初は、Androidスマホをわざわざ経 由せずに、Core2をVPNに参加させればい いのではないかと考えました。そうすると 、全部Wi‒Fi経由で、しかもスマホのアクセ スポイントにWi‒Fiでつなげば、家の中でも 外でも同じ環境でできるので、シンプルな
構成になります。
Slide 7 / 13 しかし、このM5StackのCore2というデバ イスは、WindowsでもMacでもLinuxでも Androidでもありません。OSが動いている わけではなく、ファームウェアで動作を制 御する代物です。 私が使っているTailscaleというサービスも
Core2には対応しておらず、VPNクライア ントも当然ダウンロードできません。
Slide 8 / 13 そこで「どうする…?」と考えました。 さすがにTailscaleのクライアントをスクラ ッチ実装するのはやりすぎかなということ で、さきほどの構成にすると決めました。 ただ、Androidにアプリを載せてCore2と 通信しようとすると、アプリを自作するだ
けではなく、通信プロトコルも自作しなけ ればならない──という大きなハードルが ありました。とはいえ他にやりようがない ので、この構成でやってみました。自作ア プリと自作プロトコルで実装です。
Slide 9 / 13 このAIスタックチャンは、音声で話しかけるとスタッ クチャンがしゃべるというものです。実装はだ いたいAIに丸投げしていて、コーディング が終わりました。ファームウェアも書き込 みました。そこで、いざ試してみました。
Slide 10 / 13 短い文で試してみようと思って「元気です か?」と話しかけると、スタックチャンは、何を 言っているかわからない音声を返してきま した。 音声が再生できていないことだけはわかる 、という状態です。これが昨日か一昨日の
夜中くらいの状態でした。 Wi‒Fiのときはちゃんとしゃべれていたので 油断していたのですが、自作プロトコルに したらうまく音声が再生できないというこ とになり、「なぜなのか」ということをア プリ側にデバッグログを追加しながら、い ろいろ調べていました。
Slide 11 / 13 Wi‒Fiでは再生できていたのに有線通信にす ると再生できないのはなぜなのか── 音声が送られる経路の概略図は、この通り です。 ローカルAIサーバーマシン側で動いている Text‒to‒Speechで合成されたオーディオ
が、Androidスマートフォンに送られてき て、それがデバイスに送られる、という経 路です。 ただ、スマートフォンのリレーアプリがオ ーディオファイルをCore2に送るとき、フ ァイルを1回の通信では送れません。オー ディオファイルのサイズがそれなりに大き いため、1024バイト単位のチャンク(送信 しやすいサイズに小分けした塊)で、アプリ からデバイスにオーディオが送信されます 。
Slide 12 / 13 今回は、Core2側がそのチャンクをうまく受け取れて いませんでした。Androidアプリ側からデバイスに送 ろうとしている速度に対して、デバイス側が受け取る 速度が遅く、受け取りきれないパケットがたくさん発 生してしまいました。その結果、音が途切れ途切れに なったり、そもそもデコードできないというエラーが
出たりする状態になっていて……それを今朝から会場 でデバッグしていました。 【後記】 その後の調査で、Core2が受信できる帯域を超えたサ ンプリングレートのファイルが送信されており、そも そも原理的に受信するのが不可能であったと判明しま した。 ハードウェア制約により、通常のUSBでの有線通信で はなく、マイコン用のシリアル通信を利用しており通 信速度が遅いため、高品質なオーディオデータを受信 できませんでした。 そこで、TTSが生成するオーディオの品質を落とし、 シリアル通信でCore2が受信可能なレートまで抑える ことで、無事に音声が再生できるようになりました。 (このあたりの数字を含めた話は、別途時間があると きに記事にします)
Slide 13 / 13 感想としては、やはりハードウェアが絡む と制約条件が増えてくるので…… ソフトウェアと同じノリで「こういうこと はできるだろう」とカジュアルに考えても 、事前によく調査しないと、こういう落と し穴にはまります。
事前の下調べをじっくり行い、過去に問題 を乗り越えてきた先人たちの苦労と資産(ア セット)と涙をありがたく恩恵として受け取 りながら、Vibesだけで取り組むのではな く、きちんと設計をして開発に取り組むこ とが改めて重要だとわかりました。 皆様もこういう点にご注意ください。以上 でLT終了とさせていただきます。ありがと うございました。