はじめに
2026年3月20〜22日、東京・Dragon Gateで開催された国際ハッカソン「Builders Weekend 2026 Tokyo」でVoiceOS賞をいただきました。
2週間前の YC 公認ハッカソン c0mpiled-7 に続き、2大会連続の受賞です。
今回作ったのは MissionLingo — AIとの会話で実践的な日本語を学ぶ語学学習アプリです。この記事では、48時間で何を考え、何を作り、何を学んだかを書きます。
チーム結成:ICEBREAKER NIGHTがすべての始まり
ハッカソン前日のICEBREAKER NIGHTに参加しました。ここで出会ったのが、カナダ出身で日本で英語の先生をしている方。最近プログラミングの勉強を始めたばかりで、ハッカソンは初参加。
もう一人は、2週間前のYCハッカソンで一緒に受賞した日本在住のベトナム人エンジニア。20代で技術力が高い。
この3人の国際チームが、前夜祭がなければ絶対に生まれなかった。運営の方々には本当に感謝しています。
何を作ったのか:MissionLingo
コンセプト
よくある「英単語を選択肢から選ぶ」タイプの語学アプリではありません。
日本に住む外国人が、コンビニ・居酒屋・タクシーなどのリアルな場面をまるごと再現した環境の中で、AI NPCと自由に会話しながら日本語を学ぶアプリです。
3つのステップで学びます:
- Watch(観る):AI同士の会話を観察。キーフレーズがハイライトされる
- Play(話す):自分がお客さん役になり、AI NPCと会話する
- Feedback(学ぶ):AIが採点し、カジュアル・丁寧・敬語の3パターンを提示
「ラーメン」とだけ答えたら、「ラーメンちょーだい」「ラーメンをお願いします」「ラーメンをいただきたいのですが」と3つの言い方を教えてくれる。これを 「Nani!?」フィードバック と呼んでいます。
なぜ唯一無二なのか
語学アプリは山ほどあります。Duolingo、Babbel、Rosetta Stone...。でもどれも「教科書的な日本語」を教える。
MissionLingoは違います。実際のリアルなシーンを再現し、その中でAIと対話できる。これが決定的な差です。
コンビニで会計する、居酒屋で注文する、タクシーで行き先を伝える — これらの場面をそのまま再現し、AI NPCが店員や運転手として応答する。教科書のフレーズを暗記するのではなく、リアルな場面の中で自然に言葉が出てくる体験を作りました。
さらに、コンビニのミッションで「カードでお願いします」と言うと、実際にDigital GargeのSDKを通じてマイクロ決済が走る。ユーザーは「課金している」のではなく「コンビニで支払いを練習している」。これが Live Payment Play というコンセプトで、シーン再現の究極形です。
全チャレンジに応募できる設計
今回のハッカソンには4つのスポンサーチャレンジがありました:
- Lovable — ノーコードでWebアプリを作る
- Supercell — AI駆動のゲーム体験
- RevenueCat — サブスクリプション課金
- Digital Garage — 決済SDK統合
普通はどれか1つに絞ります。
私たちは全部に応募できるように設計しました。おそらく2バージョンを並行開発して全チャレンジに対応したチームは他にいなかったと思います。
2バージョン戦略
- Lovable版(mission-master-japan):Lovableのチャットでプロンプトからアプリを生成。Supabase + Edge Functionsのフルスタック構成。Lovableチャレンジ用
- Next.js版(tpan):Next.js 16 + Vercel + Neon。SDK統合を作り込む本命版。DG・RevenueCat・Supercellチャレンジ用
Lovable版はUIとUXのショーケース、Next.js版はSDK統合のショーケース。同じプロダクトを2つの切り口で見せる戦略です。
実際に動くSDK統合
「SDKを使いました」と口で言うだけなら誰でもできる。私たちは実際に動くものを作りました。
Digital Garage VeriTrans4G SDK:
- 4つのAPIルート(checkout / authorize / cancel / receipt)
- 会話の文脈で自然に決済モーダルが出る
- トランザクションはPostgreSQLに記録
- 実際に¥50の決済が走る(デモモード)
RevenueCat SDK:
- ¥480/月 or ¥3,800/年のプレミアムプラン
- Basic 5ミッションクリア後に自然にアップセル
- Entitlement管理、Webhook連携まで実装
48時間の技術的こだわり
音声AI:TTS Race戦略
語学アプリなので音声は命です。ElevenLabsの日本語音声は高品質だけど、たまに遅い。OpenAIのTTSは速いけど、自然さでは劣る。
そこでTTS Raceを実装しました:
- ElevenLabsにリクエストを投げる
- 2秒以内に返ってこなければ、OpenAIにも並行リクエスト
- 先に返ってきた方を採用
ユーザーは常に高品質 or 高速のどちらかを体験できる。待たされることがない。
関西弁フル対応
「標準語だけ教えても、大阪に行ったら通じない」
関西弁を「おまけ機能」ではなく、フルサポートしました:
- 全13ミッションに関西弁バリエーション
- NPC音声を関西弁話者に切替(ElevenLabsの音声IDをリージョン別に管理)
- AIジャッジのフィードバックも関西弁で
- 挨拶・ヒントも地域対応
「めっちゃええやん!」と褒められる体験は、標準語版にはない。
適応型NPC
プレイヤーの過去スコアをExponential Moving Averageで追跡し、NPCの振る舞いを動的に変えます:
- 平均4点以上 → ハードモード(スラング、想定外の展開)
- 平均2.5〜4点 → ノーマル
- 平均2.5点未満 → イージー(ゆっくり、ヒント多め)
スクリプトではなく、GPT-4.1-nanoがリアルタイムに生成するので、毎回違う会話になる。
数字で見る48時間
- 41コミット
- 14ミッション(Basic 5 / Social 5 / Business 4)
- 34本の動画(関東・関西バリエーション含む)
- 14種類の音声ID(ElevenLabs、リージョン別)
- 3つのSDK統合(Digital Garage / RevenueCat / ElevenLabs)
- 2バージョン(Lovable版 / Next.js版)
チームの話
バチバチの議論
国際チームの良さは、遠慮がないこと。
仕様について意見が割れたとき、日本人同士だと空気を読んで譲ることがある。でもこのチームは石がぶつかり合うように議論した。結果、より良いものが磨き出された。
2日目のプログラミング教室
カナダ人メンバーはプログラミング初心者。2日目の2時間は、手を止めてプログラミングを教える時間に充てました。
ハッカソンの時間を「教育」に使うのは非効率に見えるかもしれない。でも、その後に「エンジニアになりたいという気持ちが強くなった」と言ってもらえた。これはどんな賞よりも嬉しかった。
VoiceOSを使って見えた未来
今回の受賞をきっかけにVoiceOSを実際に使ってみて、鳥肌が立ちました。
歩きスマホが当たり前になったように、PCにブツブツ話しかけるのが当たり前になる時代がすぐそこまで来ている。Claude Codeにキーボードで手打ちするのが、もうやってられなくなる。fnキーを押して話しかけるだけでアプリが作れる。
キーボードは特殊キーだけになる世の中が見えた気がしました。
最後に
2週間前のYCハッカソンに続き、Builders Weekend 2026でもVoiceOS賞をいただけたこと、改めて感謝します。
何より、貴重な時間を割いて一緒に戦ってくれたチームメンバー2人に感謝。そして運営の方々、本当に毎度お疲れ様でした。
全部に感謝。

