开源AI可穿戴录音设备:从ESP32到Whisper的硬件与软件全栈实践

发布时间:2026/8/19 11:29:52
开源AI可穿戴录音设备:从ESP32到Whisper的硬件与软件全栈实践 1. 项目概述开源AI可穿戴录音设备最近几年AI和可穿戴设备的结合已经从科幻概念变成了触手可及的现实。作为一名长期关注硬件开源和边缘AI的开发者我一直在寻找一个能将前沿AI模型真正“戴在身上”、解决实际痛点的项目。市面上的智能录音笔或翻译机要么功能封闭要么价格高昂要么数据隐私存疑。这正是“开源AI可穿戴录音设备”这个项目吸引我的地方——它瞄准的正是用开放、透明、可定制的方式打造一个属于你自己的AI听觉助手。简单来说这个项目的核心目标是构建一个佩戴在身上的硬件设备它能持续、清晰地录制环境声音并利用本地运行的AI模型如Whisper进行实时或近实时的语音转文字、语义理解甚至指令响应。它不像手机那样需要你掏出来、解锁、打开App而是像眼镜或耳机一样成为你感知世界的一个自然延伸。想象一下在嘈杂的会议中它能帮你自动生成精准的会议纪要在课堂或讲座上它能实时转录重点内容供你回顾甚至对于听力障碍人士它可以作为一个实时的字幕显示辅助工具。这个项目的关键词“Opensource, AI, Wearable, OpenAI, Whisper”清晰地勾勒了它的技术栈和灵魂。“开源”意味着硬件设计、固件代码、软件栈全部开放你可以审查、修改、再分发完全掌控数据流向和设备行为这对于涉及隐私的录音设备至关重要。“AI”是大脑尤其是“Whisper”——OpenAI开源的强大语音识别模型以其高准确率和多语言支持成为首选。而**“Wearable”**则定义了它的形态和交互逻辑要求设备低功耗、小型化、佩戴舒适并能长时间稳定工作。接下来我将从设计思路、硬件选型、软件实现到实际应用完整拆解如何从零开始构建这样一个设备并分享我在原型开发过程中踩过的坑和积累的经验。2. 核心设计思路与方案选型打造一个可用的开源AI可穿戴设备远不是把树莓派和麦克风绑在一起那么简单。它需要在性能、功耗、体积、成本、易用性之间做出精妙的平衡。我的设计思路围绕以下几个核心原则展开2.1 边缘计算优先兼顾云端录音设备的隐私敏感性极高。因此核心设计原则是**“数据不出设备”**。所有语音识别、指令理解等AI推理任务应尽可能在设备本地完成。这要求我们选择具备一定算力的边缘计算核心。然而像Whisper这样的中大型模型完全在微控制器上运行实时识别目前仍很吃力。因此一个折中且实用的方案是设备端负责高质量音频采集、预处理和缓存然后通过Wi-Fi将音频数据流式传输到同一局域网内一个更强大的“边缘服务器”可以是一台迷你电脑或开发板进行AI处理再将结果返回设备显示或播报。这样既保护了隐私数据仅在家庭/办公室局域网内又获得了足够的计算能力。2.2 低功耗与常开待机可穿戴设备必须考虑续航。这意味着主控芯片在待机时功耗要极低能被语音活动检测VAD模块或物理按键快速唤醒。我们不能让Whisper模型一直全速运行。典型的功耗模型是大部分时间设备处于深度睡眠状态仅VAD电路在工作检测到人声后唤醒主控开始高质量录音和传输处理完成后再次进入睡眠。2.3 模块化与开源生态为了鼓励社区参与和不同场景的适配硬件设计应采用模块化思想。例如核心计算模块、麦克风阵列模块、电池/电源管理模块、显示/交互模块如小屏幕、LED、按钮可以相对独立。这样开发者可以根据需要比如更注重音频质量或更注重续航替换或升级特定模块。软件栈也应基于成熟的开源项目构建如ESP-IDF、Zephyr RTOS、TensorFlow Lite Micro、Whisper.cpp等避免重复造轮子。基于以上思路我对比了几种主流方案方案AESP32-S3 外挂AI协处理器如Kendryte K210优点ESP32-S3提供稳定的Wi-Fi/BLE连接和丰富的外设功耗控制优秀。K210等协处理器专门用于神经网络加速能高效运行轻量化模型。成本较低。缺点需要管理双核通信开发复杂度稍高。直接运行完整版Whisper仍有压力通常需要量化或裁剪后的版本。适用场景对实时性要求稍低或主要运行轻量级唤醒词、命令词识别再将长音频发送到边缘服务器处理的场景。方案B树莓派 Zero 2 W / CM4优点算力强大可直接在Linux系统上运行Whisper.cppC移植版甚至进行一些简单的语义分析。社区支持极其丰富开发速度快。缺点功耗较高即使使用Zero 2 W也难以实现“常开数天”的续航。体积相对较大佩戴设计挑战大。适用场景作为原型验证、固定场所的“可穿戴”设备如挂在脖子上而非耳戴或对续航要求不高的专业场景。方案C专用边缘AI芯片如瑞芯微RK3566、晶晨A311D搭配微控制器优点NPU算力充沛能流畅运行较大模型。Linux系统功能完整。缺点功耗和成本比方案A高系统复杂度也高需要较强的嵌入式Linux开发能力。适用场景追求高性能本地AI处理且对功耗和成本有一定容忍度的进阶项目。我的选择与理由 对于希望平衡开发难度、功耗、成本和社区活力的个人开发者或初创团队我推荐从方案A入手即以ESP32-S3为主控。它足够处理音频采集、编码、网络传输和简单的本地VAD。将重型的Whisper识别任务交给局域网内的一台老旧笔记本或树莓派4B充当的“边缘服务器”。这个架构清晰、灵活并且能真正实现“个人私有化”部署。后续随着硬件迭代可以逐步将部分AI能力下放到设备端。注意直接追求“完全离线、本地实时Whisper”在可穿戴形态下目前仍是一个高挑战目标对芯片选型如考虑带NPU的ESP32-S3R8、模型压缩量化、蒸馏和软件优化要求极高不适合作为第一个原型的目标。3. 硬件设计与核心组件解析确定了ESP32-S3 边缘服务器的架构后我们来详细拆解硬件部分。一个可穿戴录音设备的核心硬件通常包括主控模块、音频输入模块、电源管理模块、交互与反馈模块。3.1 主控模块ESP32-S3的核心优势我选择乐鑫的ESP32-S3-DevKitC-1开发板作为起点。理由如下双核Xtensa LX7处理器主频高达240MHz性能足以流畅处理音频I2S数据流、编码如OPUS、网络协议栈。丰富的外设支持I2S、I2C、SPI、ADC等完美对接数字麦克风和传感器。低功耗管理支持多种睡眠模式。在Deep-sleep模式下仅由RTC控制器和ULP协处理器维持运行功耗可低至10μA左右可由定时器或外部引脚连接麦克风中断唤醒。无线连接集成2.4GHz Wi-Fi和蓝牙5.0Wi-Fi用于与边缘服务器通信蓝牙可用于快速配网或连接耳机进行音频反馈。开发友好基于ESP-IDF框架工具链成熟社区资源海量。3.2 音频输入模块关键在于麦克风阵列清晰的音频采集是语音识别准确率的基石。对于可穿戴设备我们面临环境噪声、距离变化、方向性等挑战。单个麦克风往往力不从心因此我建议使用微型数字麦克风阵列。麦克风选型INMP441或SPH0645LM4H-B是常见的选择。它们都是MEMS数字麦克风输出PDM信号信噪比(SNR)高约61dB以上尺寸小巧。INMP441需要主控提供时钟并读取数据而SPH0645是I2S接口与ESP32的I2S外设对接更直接。阵列设计至少使用两个麦克风构成一个小型波束成形阵列。其原理是利用声音到达两个麦克风的时间差通过算法增强特定方向的声音抑制其他方向的噪声。这对于在嘈杂环境中拾取佩戴者自己的声音如自言自语或对话或正前方的说话人声音特别有效。在PCB布局时两个麦克风的中心距离建议在2-4厘米之间并尽量对称放置。接口与连接ESP32-S3的I2S外设可以轻松接收多路数字麦克风的数据。例如可以将两个SPH0645的时钟和数据线分别并联通过同一个I2S端口以时分复用的方式读取两个通道的数据。在软件中再进行通道分离。3.3 电源管理模块续航的生命线这是可穿戴设备硬件设计中最容易踩坑的部分。一个糟糕的电源设计会导致设备频繁重启、录音中断或续航远低于预期。电池选择考虑到体积和容量单节3.7V锂聚合物电池是首选容量在500mAh到1000mAh之间。需要确保其带有保护板防止过充过放。充电管理选用一颗集成度高的锂电池充电管理IC如TP4056。它负责恒流/恒压充电并可通过一个LED指示充电状态。注意要为其设计散热焊盘。电压转换ESP32-S3和大多数外围芯片需要3.3V供电。电池电压在3.7V-4.2V之间波动因此需要一个低压差线性稳压器。这里的关键是静态电流在Deep-sleep模式下整个系统的功耗主要就是LDO的静态电流和ESP32的睡眠电流。务必选择静态电流极低的LDO例如TI的TPS7A系列其静态电流可低至1μA以下。千万不要使用像AMS1117这样静态电流高达几mA的普通LDO它会在一夜之间耗光你的电池。使能控制为了进一步省电可以为麦克风、传感器等外围模块设计MOS管开关电路由ESP32的GPIO控制其电源通断在睡眠时彻底关闭它们。3.4 交互与反馈模块设备需要以某种方式与用户交互。考虑到可穿戴设备的局限性反馈方式应简洁、低功耗。视觉反馈一小块OLED显示屏128x64可以显示状态、转录的文字片段。或者使用几个RGB LED用不同颜色和闪烁模式表示“正在聆听”、“连接中”、“识别成功”、“错误”等状态。听觉反馈一个微型扬声器或通过蓝牙连接耳机可以播放提示音或合成语音TTS播报识别结果。触觉反馈一颗微型振动马达用于提供私密的通知提醒在嘈杂或不便看屏幕的场合非常有用。物理输入1-2个物理按键是必须的用于开关机、启动/停止录音、配对等基本操作。也可以考虑电容触摸传感器实现更优雅的交互。3.5 PCB设计注意事项当你从开发板转向自定义PCB时以下几点至关重要音频布局麦克风周围要铺地屏蔽模拟电源和数字电源要用磁珠或0Ω电阻隔离。麦克风的开孔位置要精心设计既要保证声学性能又要考虑佩戴时的朝向。天线区域ESP32的PCB天线或外接天线接口周围必须严格按照数据手册要求进行布局净空区内不得有任何走线和铜箔否则Wi-Fi信号强度会大打折扣。测试点为关键的电源网络电池电压、3.3V、I2S数据线、串口预留测试点方便调试。4. 软件架构与核心实现硬件是躯体软件是灵魂。整个系统的软件栈可以分为设备端固件和服务器端服务两大部分。4.1 设备端固件基于ESP-IDF设备端固件的主要职责是管理硬件、采集音频、处理音频、与服务器通信、管理功耗。4.1.1 音频采集与预处理流程I2S驱动配置初始化I2S外设设置为PDM接收模式采样率通常设为16kHzWhisper的常用输入采样率位深32位实际有效数据在低位。双麦克风时配置为立体声模式。环形缓冲区开辟一个双缓冲或环形缓冲区。I2S DMA会持续将音频数据填入缓冲区。当缓冲区半满或全满时触发一个任务Task来处理数据。语音活动检测在将音频发送出去之前先进行简单的VAD。可以在ESP32上运行一个轻量级的VAD算法如WebRTC的VAD移植版或者更简单的方法——计算短时能量和过零率。只有检测到可能的人声段才启动后续的高功耗流程如编码、传输。这能节省大量电力。音频编码原始PCM数据量较大。为了减少网络传输的数据量需要进行有损压缩。OPUS编码是绝佳选择它在低比特率下对语音的保真度极高。ESP-IDF有官方的OPUS编码库支持。我们可以将检测到的语音段编码成OPUS格式。网络通信使用ESP32的Wi-Fi模块连接到家庭路由器。与边缘服务器的通信采用WebSocket协议。WebSocket提供了全双工、低延迟的通信通道非常适合流式音频传输。设备端作为客户端连接到服务器端的WebSocket端点。4.1.2 功耗状态机管理固件需要实现一个清晰的功耗状态机状态DEEP_SLEEP设备大部分时间处于此状态。只有RTC计时器和少数几个具有中断能力的GPIO连接了按键或麦克风的中断输出在工作。功耗极低。唤醒事件可以是定时器唤醒定时采样环境音做简单VAD、按键按下、或麦克风检测到超过阈值的声音如果麦克风支持硬件中断。状态ACTIVE_RECORDING唤醒后初始化I2S、Wi-Fi、编码器等外设开始高精度音频采集和VAD。将确认的语音段编码后通过WebSocket发送。状态IDLE在一段时间没有检测到语音后设备关闭大部分外设但保持Wi-Fi连接进入轻睡眠状态等待下一次唤醒以快速响应。4.2 服务器端服务Python Whisper.cpp边缘服务器运行在性能更强的设备上它接收音频流调用AI模型返回结果。4.2.1 服务架构WebSocket服务器使用Python的websockets库快速搭建一个异步WebSocket服务器监听设备端的连接。音频流接收与解码服务器持续接收设备发来的OPUS编码数据包使用libopus或opuslib库进行解码恢复为PCM数据。Whisper推理这是核心。直接使用OpenAI的Whisper Python包可能较重。强烈推荐使用whisper.cpp。这是一个用C/C编写的Whisper模型推理实现效率远超原版Python实现。我们可以编译whisper.cpp并利用其提供的Python绑定whisper-cpp-python来调用。它支持多种模型尺寸tiny, base, small, medium在树莓派4B上tiny或base模型可以做到近乎实时的识别。结果处理与返回Whisper识别出的文本可以通过WebSocket实时返回给设备端显示。还可以增加后续处理比如调用本地运行的大语言模型如通过ollama运行的Llama 3或Qwen 2.5对转录文本进行摘要、提取待办事项、翻译等实现更智能的“AI助理”功能。上下文管理为了处理长时间的对话服务器需要为每个设备连接维护一个会话上下文将多次识别的文本按时间顺序拼接再送给LLM处理以保证理解的连贯性。4.2.2 一个简单的服务器端代码框架# server.py (简化示例) import asyncio import websockets import numpy as np import whisper_cpp_python as whisper from opuslib import Decoder # 初始化Whisper模型 model_path ggml-model.bin # 下载的whisper.cpp模型 whisper_model whisper.Whisper(model_path) # 初始化OPUS解码器 decoder Decoder(16000, 1) # 16kHz, 单声道 async def handle_device(websocket, path): print(fDevice connected from {websocket.remote_address}) audio_buffer bytearray() try: async for message in websocket: # 1. 解码OPUS数据 pcm_data decoder.decode(message, 960) # 假设每包960采样点 audio_buffer.extend(pcm_data) # 2. 积累一定长度后如3秒进行识别 if len(audio_buffer) 16000 * 3 * 2: # 16kHz, 3秒, 16位2字节 audio_np np.frombuffer(audio_buffer[:16000*3*2], dtypenp.int16).astype(np.float32) / 32768.0 # 3. 调用Whisper识别 result whisper_model.transcribe(audio_np, languagezh) text result[text].strip() if text: print(fTranscribed: {text}) # 4. (可选) 调用本地LLM进行进一步处理 # processed_text call_local_llm(text) # 5. 将结果发回设备 await websocket.send(text) # 清空已处理的缓冲区保留尾部可能被截断的音频用于下一次拼接 audio_buffer audio_buffer[16000*3*2:] except websockets.exceptions.ConnectionClosed: print(Device disconnected) async def main(): async with websockets.serve(handle_device, 0.0.0.0, 8765): await asyncio.Future() # run forever if __name__ __main__: asyncio.run(main())5. 模型部署与优化实战将Whisper这样的模型部署到资源受限的边缘环境并满足可穿戴设备对延迟和功耗的敏感要求需要一系列的优化技巧。5.1 模型选择与量化Whisper.cpp提供了多种预量化模型从tiny到large。选择哪个模型是一个权衡Tiny (~75MB)速度最快内存占用最小在树莓派4B上可以轻松实时但准确率尤其是中文和带口音的语音会有所下降。Base (~140MB)在速度和准确率间取得了很好的平衡是大多数边缘场景的首选。Small (~465MB)及以上准确率更高但对边缘设备的算力和内存要求也急剧增加。对于我们的架构服务器端如果是树莓派4B4GB内存我推荐使用base模型。如果服务器性能更强如英特尔NUC可以尝试small模型以获得更好的效果。量化是减少模型大小和加速推理的关键。Whisper.cpp的模型已经使用了GGML格式进行量化如q4_0, q5_0, q8_0等。数字越小如q4压缩率越高速度越快但精度损失也越大。对于base模型q5_0或q8_0是一个不错的起点在精度和速度间取得平衡。5.2 流式处理与实时性优化原生的Whisper推理是针对一整段音频的。为了实现“实时”字幕效果我们需要进行流式处理缓存与分段服务器端不断接收音频数据并缓存到一个队列中。滑动窗口识别每积累N秒的音频例如3秒就送入Whisper进行一次识别。但简单的分段会导致句子的开头或结尾被切碎识别效果差。基于VAD的智能分段更好的方法是结合语音活动检测。在服务器端也运行一个VAD当检测到一段语音开始和结束时将这一段完整的语音送入Whisper。这更符合自然语言单元识别准确率更高。可以在设备端做粗VAD在服务器端做更精确的VAD。上下文携带Whisper模型本身有一定的上下文窗口约30秒。在流式识别时可以每次将新音频与之前的一部分音频如前5秒拼接在一起送入模型利用模型的上下文能力提升对当前片段的识别准确率尤其是处理代词和语义连贯性时。5.3 针对中文的优化Whisper是多语言模型但对中文的优化并非完美。可以尝试以下方法提升中文识别率指定语言在调用transcribe时明确指定languagezh强制模型使用中文词汇和声学模型。使用中文微调模型社区中有一些基于Whisper架构、使用大量中文数据微调过的模型如funasr或paraformer的某些版本。虽然它们可能不是完全开源的Whisper但识别中文的效果可能更好。可以评估是否将其集成到服务器端。后处理对识别出的文本进行简单的后处理比如利用语言模型纠正同音字或者连接标点符号库来添加合适的标点。5.4 功耗优化实战技巧Wi-Fi功耗大头ESP32在保持Wi-Fi连接并处于活动状态时功耗可能在50-100mA量级。优化方法使用Wi-Fi节能模式在ESP-IDF中配置为WIFI_PS_MIN_MODEM模式。减少传输频率只在有语音数据时建立WebSocket连接并传输。无语音时可以断开Wi-Fi连接仅保持与路由器的关联省电模式或周期性地短暂连接发送心跳包。降低发射功率如果设备与路由器距离很近可以适当降低Wi-Fi的发射功率。外设电源门控如前所述用MOS管控制麦克风、屏幕等外设的电源在深度睡眠时彻底断电。调整CPU频率在非密集计算时段可以动态降低ESP32的CPU频率。6. 应用场景与功能扩展基础的通话转文字功能只是起点。基于这个开源平台我们可以拓展出许多有趣且实用的应用场景。6.1 核心场景智能语音记事本这是最直接的应用。设备持续监听当检测到佩戴者在说话可通过特定唤醒词或按键触发自动开始录音并上传识别将文字实时显示在小屏幕上或通过蓝牙耳机播报并最终保存到本地或同步到私有云笔记如Joplin、Obsidian中。对于记者、学生、会议记录者来说这就是一个永不疲倦的私人秘书。6.2 场景延伸实时翻译助手结合本地或云端翻译API如开源模型argos-translate或bergamot可以将识别出的中文实时翻译成英文或其他语言并显示或播报。这对于旅行、跨国交流或学习外语非常有帮助。由于所有处理可以在局域网内完成对话隐私得到了最大程度的保护。6.3 场景延伸听觉辅助与字幕生成对于有轻度听力障碍的人士设备可以实时将周围人的对话转换成文字显示在手机或AR眼镜上。也可以连接到家中的电视或电脑为影视内容生成实时字幕。这个应用的社会价值巨大且开源方案能让定制化成本大幅降低。6.4 场景延伸语音控制智能家居集成本地化的语音命令识别可以在ESP32上运行一个简单的TensorFlow Lite模型识别几十个命令词当识别出“打开客厅灯”、“调高空调温度”等指令时通过ESP32的Wi-Fi或红外模块控制家中的智能设备。所有指令在本地处理响应速度快且无需担心云端服务的隐私问题。6.5 功能扩展多模态感知可穿戴设备不止于“听”。可以很容易地集成其他传感器惯性测量单元加入MPU6050等IMU传感器可以识别佩戴者的活动状态静止、行走、跑步在不同状态下调整录音的灵敏度或触发不同的功能。环境传感器加入温湿度、气压传感器让设备成为一个环境数据记录仪。摄像头模块虽然会增加功耗和复杂度但加入一个低功耗摄像头如OV7670可以实现简单的视觉识别与音频信息结合实现更丰富的场景理解。7. 开发中的常见问题与解决方案在从原型到可用的过程中我遇到了不少问题这里总结出来希望能帮你避开这些坑。7.1 音频质量问题问题录音噪音大识别准确率低。排查电源噪声这是最常见的问题。用示波器检查给麦克风供电的3.3V是否干净。数字麦克风对电源噪声非常敏感。确保电源路径上有足够的去耦电容如10uF钽电容0.1uF陶瓷电容并联并尽量让麦克风的电源走线短而粗。时钟抖动I2S主时钟BCLK的抖动会影响采样精度。确保ESP32的I2S时钟源稳定并检查PCB布线时钟线尽量短远离高频信号线。麦克风放置麦克风开孔是否被外壳或衣物遮挡是否正对声源方向尝试调整麦克风在设备中的朝向和开孔设计。解决优先优化电源和布局。可以尝试在软件中增加一个数字高通滤波器滤除低频环境噪声如空调声。7.2 Wi-Fi连接不稳定问题设备经常断线音频传输卡顿。排查天线性能检查PCB天线设计是否符合规范或者外接天线是否连接牢固。可以用Wi-Fi分析仪App查看信号强度。路由器设置有些路由器的“节能模式”或“隔空模式”可能导致连接不稳定。尝试将路由器信道固定在1, 6, 11等干扰少的信道。代码逻辑确保Wi-Fi重连机制健全。在ESP-IDF中要合理处理WIFI_EVENT_STA_DISCONNECTED事件实现带指数退避的重连算法。解决优化天线设计在代码中增加心跳包和断线重连机制。如果条件允许让设备支持WPA2企业级认证等更复杂的网络环境。7.3 续航不达预期问题标称500mAh的电池实际只能用几个小时。排查测量实际电流使用万用表串联在电池回路中分别测量深度睡眠、待机、录音传输等不同状态下的电流。重点检查深度睡眠电流是否真的在10μA级别。检查“电老虎”屏幕、LED、未关闭的外设都是耗电大户。确认在睡眠时所有不必要的GPIO都设置为输入下拉/上拉模式外围模块电源已切断。传输策略是否在无语音时也维持着高频率的数据传输或心跳优化网络活动策略尽可能增加睡眠时间。解决根据电流测量结果逐个排查。优先更换静态电流高的LDO。优化软件状态机让设备“更懒”。7.4 服务器端识别延迟高问题从说话到看到文字延迟有好几秒。排查音频缓冲过长检查服务器端积累多少秒音频后才开始识别。尝试缩短这个窗口比如从3秒降到1.5秒但需平衡识别准确率。模型太大在服务器上运行top或htop查看Whisper推理时的CPU占用。如果一直是100%说明模型对于该硬件来说负担太重。网络延迟在局域网内网络延迟通常可以忽略。但如果服务器是远程的延迟就会明显。解决换用更小的模型如tiny或base启用Whisper.cpp的-t参数指定线程数以充分利用多核CPU并确保服务器没有其他繁重任务在运行。7.5 误触发与隐私问题设备在不需要的时候自动录音引发隐私担忧。解决硬件开关设计一个物理滑动开关可以彻底切断麦克风或主控的电源。这是最让人安心的方式。明确状态指示当设备处于监听状态时必须有一个非常清晰的视觉如红色LED常亮或触觉持续轻微震动提示。本地处理再次强调所有音频数据在本地设备或家庭服务器处理不上传至任何第三方云端从根源上解决隐私顾虑。在开源代码中这一点可以清晰地向用户展示和验证。构建这样一个开源AI可穿戴设备就像在微型的舞台上导演一场硬件、软件和AI的协同演出。它充满了挑战从底层的电源噪声治理到中间层的实时音频流处理再到上层的AI模型部署优化每一个环节都需要精心打磨。但回报也是巨大的你最终获得的是一个完全受你控制、功能强大且贴合个人需求的智能伴侣。这个项目最大的魅力在于其开放性和可扩展性你不仅可以复现一个录音笔更可以以其为蓝本创造出属于自己的、独一无二的可穿戴AI应用。