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
hawky the miscellaneous
June 30, 2026
Technology
49
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
87
Applied AI Engineering とは
hawkymisc
0
110
非CUDAの悲哀 〜Claude Code と挑んだ image to 3D “Hunyuan3D”を EVO-X2(Ryzen AI Max+395)で動作させるチャレンジ〜
hawkymisc
2
570
Other Decks in Technology
See All in Technology
Claude CodeとAmazon Bedrock AgentCoreでつくる、自分だけのAIアシスタント
ymae
0
110
そのドキュメント、自動化しませんか?
yuksew
1
430
セキュリティ研修【MIXI 26新卒技術研修】
mixi_engineers
PRO
2
190
壊して学ぶAWS CDK: そのcdk deployで消えるもの、残るもの
k_adachi_01
1
500
クラウドを使う側から、作る側へ / 大吉祥寺.pm 2026前夜祭
fujiwara3
6
1.4k
システム監視入門
grimoh
1
490
AI Coding Agent時代のcdk-nagガードレール 〜組織ルールを強制CIで守り抜く設計の挑戦〜
mhrtech
3
530
10年目を迎えた「ABEMA」がどのように AI 活用を推進して、AI 駆動開発にシフトしているのか / How ABEMA, entering its 10th year, is promoting the use of AI and shifting toward AI-driven development
miyukki
1
380
SoccerMaster: A Vision Foundation Model for Soccer Understanding
kzykmyzw
0
180
GoでCコンパイラを作った話
repunit
0
160
Power Automateアップデート情報
miyakemito
0
230
「休む」重要さ
smt7174
6
1.7k
Featured
See All Featured
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
470
Mind Mapping
helmedeiros
PRO
1
290
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
38
2.9k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
62k
How to make the Groovebox
asonas
2
2.3k
Evolving SEO for Evolving Search Engines
ryanjones
0
250
The untapped power of vector embeddings
frankvandijk
2
1.8k
How to Build an AI Search Optimization Roadmap - Criteria and Steps to Take #SEOIRL
aleyda
1
2.1k
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
118
120k
The Illustrated Guide to Node.js - THAT Conference 2024
reverentgeek
1
410
Statistics for Hackers
jakevdp
799
230k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
230
23k
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終了とさせていただきます。ありがと うございました。