stefanbocane/Project-StoryBox
GitHub: stefanbocane/Project-StoryBox
一款基于 ESP32-S3 的无屏幕 AI 讲故事硬件设备,通过 NFC 识别玩具角色并实时生成个性化故事,支持声音克隆、多语言情感朗读和互动语音选择。
Stars: 0 | Forks: 0
一款无屏幕、AI 驱动的儿童讲故事伴侣。
将玩具放在盒子上轻触。它便会讲述一个故事。每个故事都是独一无二的。
## 工作原理 孩子将玩具放在盒子上。NFC 标签识别出角色身份。云 API 生成一个以该角色为主角的原创故事,通过情感感知的语音合成进行叙述,内置扬声器将其生动呈现 —— 全程仅需数秒,无需屏幕介入。 ``` ┌──────────┐ │ Tap Toy │ └────┬─────┘ │ ▼ ┌────────────────┐ ┌─────────────────┐ ┌──────────────┐ │ NFC Identify │ ──▶ │ Cloud Story API │ ──▶ │ Voice Synth │ ──▶ 🔊 Built-in Speaker │ "Who is this?" │ │ "Write a story" │ │ "Narrate it" │ └────────────────┘ └─────────────────┘ └──────────────┘ │ ▼ ┌───────────────┐ │ LED Ring glows │ │ with emotions │ └───────────────┘ ``` 每个故事都是**即时生成**的 —— 绝不重复。角色拥有独特的性格、声音风格和口头禅。RGBW LED 灯环会随叙述的情感变换颜色,并在故事间隙发出暖白光充当小夜灯。
## 三种模式
| ### Story **默认模式。** 以孩子的玩具角色为主角的原创冒险。互动语音选项让孩子在决策点引导剧情走向。 | ### Learning **教育模式。** 角色探索现实世界话题,内容基于家长上传的文档,通过检索增强生成(RAG)技术实现。 | ### Memory **家庭模式。** 使用**克隆的家庭成员声音**讲述专属的家庭故事 —— 孩子可以听到奶奶讲睡前故事,即使相隔千里。 |
## 功能特性 **故事讲述** - AI 生成的故事,配以情感感知的旁白(语调随故事情节起伏) - 互动语音选项 —— 孩子通过语音在决策点引导故事走向 - 多语言支持(29 种语言) - 个性化体验 —— 旁白在关键时刻会直呼孩子的名字 **硬件 (V1)** - 定制 ESP32-S3 设备,集成扬声器、NFC 读取器、麦克风和 RGBW LED 灯环 - 单板设计 —— 无需 Raspberry Pi、无需蓝牙配对、无需外接扬声器 - 约 5 英寸立方体外壳:磨砂亚克力发光顶盖,织物侧面,木质饰边 - 通过 WiFi 实现秒级触碰即讲故事 - 量产规模下物料清单 (BOM) 成本约 $25/台 **云 API** - 经过生产验证的 FastAPI 服务器(19 个测试文件中共有 507 个测试) - 多设备架构 —— 每个 StoryBox 拥有独立的数据范围 - 设备身份由 MAC 地址配置,每次请求均进行验证 - 分析遥测功能,包含会话指标、角色受欢迎度和错误追踪 - 输入验证、路径遍历防护、提示注入防御 **Web Portal** - React 18 + TypeScript 管理界面 - QR 码设备配对 —— 扫描盒子上的贴纸即可连接 - 支持多设备家庭管理,内置设备切换器 - 角色 management、RFID 标签配对、学习主题、记忆故事、声音库、转录查看器、分析仪表板 **语音** - 云端 TTS 配合情感映射(V1 试点使用 Edge TTS —— $0/月) - 声音克隆 —— 录制家人的声音,故事将以该声音进行叙述 - 通过 INMP441 MEMS 麦克风实现设备端语音活动检测 - 用于互动语音选择的语音转文字 (Speech-to-text)
## 系统架构 ``` ┌───────────────────────────┐ │ StoryBox Device (ESP32) │ │ │ │ NFC Reader ─── State │ │ Microphone ─── Machine │ ◄──── WiFi ────► Cloud API (FastAPI) │ Speaker ────── Audio │ ├── Story Engine (LLM) │ LED Ring ───── Emotions │ ├── Voice Synthesis (TTS) │ │ ├── Speech Recognition (STT) └───────────────────────────┘ ├── Analytics Telemetry └── Device Management ┌──────────────┐ │ Web Portal │ ◄──── HTTPS ────► Cloud API │ (React 18) │ │ QR Pairing │ │ Management │ └──────────────┘ ``` ESP32 负责处理所有硬件交互和音频播放。云 API 负责故事生成、语音合成和数据管理。Web Portal 让家长可以通过手机管理角色、内容和设置。每个设备都通过源自其 MAC 地址的唯一 ID 进行划分和界定。
## 硬件 (V1) | 组件 | 用途 | |-----------|---------| | **ESP32-S3-WROOM-1** (8MB PSRAM) | 主计算单元 —— WiFi, NFC, 音频, LED, 麦克风 | | **MFRC522** NFC 读取器 (SPI) | 通过 NTAG215 NFC 贴纸识别玩具 | | **MAX98357A** I2S 放大器 | 驱动内置的 2.5" Dayton Audio 扬声器 | | **SK6812 RGBW** LED 灯环 | 情感同步色彩 + 暖白光夜灯 | | **INMP441** MEMS 麦克风 | 用于互动选择的语音输入 | | **定制 PCB** (KiCad, JLCPCB) | 单块 80x80mm 电路板,集成所有组件 | 硬件总成本:面包板搭建约 **$55** / PCB 量产规模约 **$25** 每台。
## 当前状态 在 [Hack for Humanity](https://www.hackforhumanity.io/) 路演大赛中**荣获第 3 名**,并获得 $600 种子资金。最初是在 48 小时内基于 Raspberry Pi 搭建的原型,目前正开发为独立的硬件产品。 **V1 进度:** - 云 API —— 已完成,经过生产级验证(507 个测试,9 次审计,包括多智能体 swarms 测试) - ESP32 固件 —— 已完成,验证了所有 7 种状态,包含设备 ID 配置,NULL/volatile 强化处理 - Web Portal —— 已完成,生产级重构,包含设备配对和分析功能 - 硬件 —— 正进入面包板验证阶段,组件已订购 - 目标:在一家托儿所进行试点部署 **单位经济效益:** 约 $0.004/故事(每天 100 个故事约 $12/月)。硬件大规模生产约 $25/台。
## 初衷 如果孩子的玩具能给他们讲故事会怎样?不是预录的,也不是来自屏幕 —— 而是实时生成的、真正新颖的故事,带着个性和情感娓娓道来。一个感觉像魔法一样的盒子。 StoryBox 始于一场黑客马拉松的点子,正在成为一个真正的产品。源代码位于私有仓库中 —— 此页面旨在分享我们正在构建的内容。
由 Stefan Bocanegra 构建
标签:AI讲故事机, C2, ChatGPT故事生成, ESP32-S3, ESP-IDF, IPv6支持, NFC玩具识别, Python后端, React前端, STEM教育, 云API集成, 交互式玩具, 亲子教育, 嵌入式开发, 开源硬件, 情感化语音, 无屏幕儿童设备, 智能硬件, 物联网IoT, 语音合成TTS, 辅助育人技术, 黑客松获奖项目