Files
ShowenV2/src
pulsareonbot 5df99ced7b feat(M2.1): Web 端语音录放闭环
1. 新增 GET /api/chat/audio/file?path=<tmp_dir内路径> 路由
   - 路径白名单:canonicalize 后必须位于 config.ai.tmp_dir 内
   - 返回 audio/wav 二进制流(浏览器可直接 <audio> 播放)
   - 60s 后自动清理临时文件
   - 修复:原 /download/:filename 只能读 downloads_dir,TTS 输出在 tmp_dir 无法访问

2. POST /api/chat/audio 支持 X-Audio-Format 头
   - 浏览器 MediaRecorder 产 webm/ogg/m4a,whisper-cli 靠扩展名判断格式
   - 服务端按头指示决定文件扩展名(webm/ogg/m4a/mp3/wav)

3. chat.html 录音 UI + 客户端 WAV 转码
   - 按住🎙按钮录音(MediaRecorder),松开发送
   - 客户端用 Web Audio API 解码 + 重采样到 16k 单声道 PCM16
   - 手写 WAV header,输出标准 16k mono wav(whisper-cli 直接可处理)
   - 非安全上下文(HTTP)下禁用录音并显示 Chrome flag 启用指引
   - 回复音频改用 /api/chat/audio/file 路径播放
   - 显示 ASR 转写文本(🎤 你说: xxx)
2026-07-06 14:18:17 +08:00
..

src/ — ShowenV2 源代码

目录结构

  • core/ — 插件微内核:消息协议、服务管理、配置、动态插件系统
  • plugins/ — 功能插件视频播放、HTTP API、BLE 配网、WiFi、屏幕管理
  • lib.rs — 库入口,导出 coreplugins 模块
  • main.rs — 可执行入口,注册插件并启动主循环