本次更新为工作区加入可编辑画布,并扩展语音转写的说话人分离、结构化结果与文件保存能力;聊天中的网页、文件链接及画布图片也有了更直接的打开和引用方式。
What's Changed
工作区画布与聊天图片
- 文件面板可新建
.tldr画布,在内置的 tldraw 编辑器中绘制、打开和保存。画布与普通文件共用多标签、未保存标记、关闭确认及工作区文件操作。 - 画布保存为原生
.tldr文件;选中的图形可导出为 PNG 并直接加入当前聊天的图片附件,无需先手动另存图片。单个画布文件上限为 32 MB,加入聊天的选区 PNG 上限为 10 MB。 - 画布保存时检查图片等资源是否已嵌入文件,避免保存后依赖临时 Blob URL 或本机路径;只改变视角或选择对象不会将画布标为未保存。
- 聊天输入区支持接收画布生成的内联 PNG 附件,移除附件时仅释放由应用创建的 Blob URL。
语音转写与说话人分离
- SpeechToText 新增可选的
diarize参数,使用本地 Pyannote Community-1 为转写片段标注匿名说话人。默认关闭;启用时需要已下载的说话人分离模型,以及能返回时间戳的语音识别模型。本地 Qwen3 ASR 会使用词级对齐;无法匹配说话人时标为UNKNOWN,这些标签不代表真实身份。 - 「本地模型」目录、本机 API 和
local_models.py脚本新增diarization类型,支持从 ModelScope 或 Hugging Face 下载 Pyannote 模型,并检查分段、嵌入及 PLDA 权重是否完整。推理从应用管理的本地目录加载权重,不会在转写时自动下载;首次运行需要 UV 准备独立的 Pyannote Python 环境。 - 转写结果新增
json格式,按字幕级片段提供起止时间、文本、可选说话人和音频时长。text、json、srt、ass均支持save_path;文本和 JSON 未指定路径时不创建文件,SRT/ASS 继续自动生成文件名。 - 文本和 SRT 使用
[SPEAKER_00]等标记;ASS 将说话人写入事件的Name字段;JSON 在片段中提供speaker字段。字幕分段结合标点、停顿、长度、时长及说话人变化,保留段内标点并清理段尾标点;没有可用时间戳时不会凭空生成字幕或说话人标签。 - 保存的转写文件保留完整内容,返回给模型的文本及字幕预览最多 1000 行。微信和 Telegram 语音消息同步适配新的转写文本返回格式。
聊天链接与文件预览
- 聊天消息中的 HTTP(S) 链接可在当前聊天的内置浏览器预览中打开;消息里的相对文件链接结合当前工作区路径解析,再交给桌面文件处理器打开。
- 文件面板创建画布后自动打开编辑;聊天预览可将画布选区作为图片加入输入区,普通聊天和项目聊天都可使用。
模型目录更新
- 更新内置模型目录快照:供应商仍为 229 个,模型条目由 8,273 个增至 8,283 个;按供应商和模型 ID 统计,新增 22 个、移除 12 个,并更新 97 个已有条目的元数据。目录用于模型配置,实际可用性取决于服务商、账号权限和本地环境。
使用提示
- 使用说话人分离前,请先在「设置 → 本地模型」或通过内置本地模型脚本下载
pyannote/speaker-diarization-community-1,确认状态为已下载,再选择具备时间戳的转写模型。若选择 Hugging Face 来源,需先接受该模型的使用条件并具备访问权限。 - 说话人分离模型用于区分音频中的说话片段,不会识别说话人的真实姓名;仅返回纯文本而没有时间戳的识别模型不能用于该功能。
Full Changelog: v0.3.58...df315ec