本次「听记」v0.4 版本更新,核心功能只有一个:实时语音转录。
在 v0.3 版本实现历史会议管理后,用户反馈最多的需求是:能否在会议进行中实时将语音转为文字,而无需等待录音结束?恰好 Kimi K3 刚刚发布,我们借助它全程辅助开发,v0.4 版本终于补齐了这一能力。
v0.4 版本更新了什么
核心功能非常直接:实时转录。开会时只需打开浏览器,点击「开始实时记录」,麦克风采集的声音便会实时转换为文字并显示在页面上。点击停止后,系统会将录音保存为 wav 文件,原文保存为 json 格式,随后进入与上传录音相同的整理流程:校对、整理、生成结构化会议纪要。
实时转录提供了两种模式:
- 标准模式:内置 FunASR 流式引擎,macOS / WSL / Linux 均可使用,无需额外配置
- 增强模式:基于 GPU 的 Fun-ASR-Nano vLLM sidecar,对方言、口音、远场识别更准确,但环境要求较高,计划在 v0.5 版本提供
v0.4 版本优先将标准模式打磨扎实,确保开箱即用。
实时转录的技术实现流程
技术流程并不复杂:
- 浏览器采集麦克风音频
- 通过 WebSocket 将音频流传输至后端
- 后端使用 FunASR 的流式模型 paraformer-zh-streaming 逐段进行识别
- 识别结果实时返回前端,页面逐行显示
- 停止后,后端保存整段录音,再通过离线 ASR 重新识别,获得准确的说话人信息与时间戳
因此,实时页面上显示的文字更像草稿,最终的质量取决于停止后的离线识别过程。
开发过程中遇到的四个问题
1. 局域网环境下无法获取麦克风权限
浏览器有安全策略:麦克风权限仅授予 localhost 或 HTTPS。若在局域网通过 http://192.168.x.x:8000 访问,浏览器会直接拒绝授权,点击「开始」无反应。解决方案是在 config.yaml 中启用 SSL:
server:ssl:enabled: true
重启后,run.sh 会自动生成自签名证书到 certs/ 目录。局域网设备通过 https://<服务器IP>:8000/live 访问。首次访问时浏览器会提示证书不受信任,点击继续即可。
2. 实时字幕显示混乱
一开始,实时字幕将无标点的一段文字全部堆积在 partial 区域,难以阅读。流式模型返回的是原始识别文本,需要自行补充标点。将问题反馈给 K3 后,K3 添加了 ct-punc 标点模型,实时为流式文字打上标点,同时将 partial 显示区域限制为最多 60 个字符的滑动窗口。这样页面不再拥挤,眼睛可以跟上字幕。
3. 增强模式选项令用户困惑
WSL 环境下有 GPU,但增强模式需要单独启动 sidecar 服务。有用户看到增强模式无法选择,以为是 Bug。v0.4 的处理方式是:将增强模式标注为「v0.5 提供」,前端选择器灰色禁用,无法点击。同时同步更新 README 和 WSL 部署指南,避免误解。
4. 说话人标签始终显示为「说话人0」
实时流式模型只负责文字识别,不进行说话人分离。最初在实时字幕中硬性显示「说话人0」,实际上具有误导性。既然无法区分,索性将实时页面的说话人标签移除,仅显示文字。最终的准确说话人信息由停止后的离线 ASR 生成,那一阶段的说话人分离是正常的。
Kimi K3 在本次开发中的角色
整个跨前后端的完整功能均由 K3 实现:
- 理解 FunASR 流式模型的 API 签名,设计合适的 chunk 大小和缓存策略
- 设计浏览器与后端之间的 WebSocket 协议
- 编写实时字幕的增量更新逻辑,处理 partial 与 final 的衔接
- 同步更新 README、WSL 部署指南、CLAUDE.md,确保文档与代码一致
- 检查多文件之间是否有遗漏,例如 cache-buster 是否已更新
我负责决策方案、验证效果,并确定哪些功能纳入 v0.4、哪些推迟到 v0.5。Kimi K3 则负责将这些决策落地为代码,同时提醒遗漏之处——例如文档是否同步更新、cache-buster 是否已更新。实时转录涉及 app/stream.py、app/main.py、app/asr.py、static/live.js、README、WSL 部署指南等七八个文件,改完代码后还需确保文档不脱节。得益于 Kimi K3 的 1M 上下文窗口和强大的编码能力,它能在一次对话中记住所有修改过的文件,并同步更新相关段落,表现非常出色。
升级与试用指南
使用 v0.3 的用户,直接执行 git pull 然后重启即可,数据目录和配置均无需修改。新用户请执行以下命令:
git clone https://github.com/baigong-ai/Tingji.gitcd Tingjicp config.yaml.example config.yamlbash scripts/download_models.sh./run.sh
打开 http://localhost:8000,在首页点击「实时记录」即可体验。若要在局域网其他设备上使用麦克风,请按照上述说明开启 SSL。
v0.4 已完成与待办事项
v0.4 已完成:
- 实时流式转录(标准模式)
- 局域网 HTTPS 自签名证书支持
- 实时字幕标点 + 滑动窗口显示
- 增强模式明确标注为 v0.5 提供
- 实时页面移除误导性的「说话人0」标签
尚未完成(后续计划):
- 增强模式(GPU sidecar)
- 说话人手动合并 / 拆分
- 纪要二次编辑保存
- docx 导出
- 议程章节切分
