更新日志
应用每天检查一次更新,安装前会显示这些说明。
所有应用的更新日志0.5 改的是用法,不是外观:颜色、字体和按钮都不变。从首页的一个输入框开始;每个工具都在自己页面的顶部开始工作,做出来的东西列在下面;结果可以接力送到下一个工具;所有产出都在「素材」里,所有长项目都在「项目」里。
新旧入口对照
原来 现在 工作室 文字转语音 历史 素材 音色发现、我的音色 音色:发现、我的 设计音色、克隆音色 新建音色:设计音色、快速克隆 项目库 项目(用侧栏的搜索或 ⌘K 搜索) 模型、引擎、日志 设置 → 模型与网络、引擎、日志 集成、设置 → 集成、本地 API 开发者:概览、本地 API(设置 → 集成会指向这里) 工具 开发者 → 工具 侧栏底部的活动卡片 「设置」旁边的通知铃铛 顶栏和面包屑 每一页自己的标题行 故事、有声书的「项目」菜单 页面上的列表,以及编辑器的 ⋯ 旧链接(audiosmith://gallery、/history、/tools、/integrations 等)会打开新位置;本地 API 和 MCP 不变。⌘1…⌘8 是首页、文字转语音、音色、项目、视频配音、语音转文字、故事、有声书;⌘F 把光标放进侧栏的搜索框。
从首页开始
- AudioSmith 打开就是首页:「今天想做点什么?」和一个输入框。输入文字、粘贴链接或拖入文件,按回车发送(Shift+回车换行):文字会在文字转语音里作为稿子打开,视频或链接会开始配音,录音会直接转写,文本或电子书会成为有声书。下面是工具行、最近的作品和五个示例。写作助手的模型已加载时,「智能分派」可以让它在文字转语音、故事和有声书之间选择。
- 侧栏上面是「地方」:首页、音色、项目、素材;下面是工具:文字转语音、新建音色、故事、有声书、视频配音、语音转文字、人声分离、听写,以及 ··· 更多(工作流、批量配音、电话)。搜索在侧栏顶部(页面、操作、音色、项目、示例);开发者、设置和铃铛(任务和通知)在底部。
- 每一页都有自己的标题行:标题、列出的数量,以及这一页自己的工具,最多一个主按钮,所有控件一样高。⌘[ ⌘] 和鼠标的后退、前进键在看过的页面之间后退、前进;条目页的标题前显示所属列表的名字,点它回到列表。窗口较窄时,搜索框收成放大镜,不常用的工具收进 ⋯。
- ⌘K 搜索一切。 没输入时显示快捷操作和最近的作品;输入后按组显示页面、操作、音色(回车即在文字转语音里使用)、项目、示例,以及按稿子搜到的生成结果,最后一行总是「用文字转语音朗读」。
每个工具都在自己的页面上开始
- 文字转语音:稿子占满左侧;稿子为空时,下面的示例胶囊(讲一个故事、产品旁白、播客开场……)会按音色的语言填入示例。「生成」(⌘↩)在左下,最新的结果就在它上方。右侧是设置(音色和模型选择器、「✦ 推荐」、语速、语言、高级)和历史(本页生成的结果,可导出、重用设置、换个音色再生成、存为项目、删除)。
- 视频配音:拖入视频或录音,或粘贴链接,选好语言,点「配音」。配音立即开始,出现在下面列表的最上方并显示进度;点开进入配音编辑器。
- 语音转文字:拖入、上传、粘贴链接或录音,选语言、是否区分说话人、快速或精确,然后发送。转写在单独的页面打开,可以接力「配音」和「在文字转语音里朗读」。
- 新功能:人声分离。拖入一首歌、一段视频或一段有噪音的录音,就能得到单独的人声、音乐和音效,以及降噪后的人声,全部在这台 Mac 上完成(HTDemucs、DeepFilterNet);每条音轨都能试听、保存,也能送去语音转文字或视频配音。
- 故事和有声书打开时,上面是输入框,下面是你的故事或有声书:一句话描述故事或粘贴剧本,或者粘贴、导入书稿并选好旁白,然后「新建」。项目在原来的编辑器里打开;点标题栏里的列表名(或 ⌘[)会保存并回到列表。保存和另存一份在编辑器的 ⋯ 里。
- 新功能:故事的**「帮我写」**。这台 Mac 上有写作助手的模型时,打开它,用一句话描述故事:写作助手会按描述的语言写出两三个角色的短场景(书面语,不加语气词),然后建好故事、分配音色并打开。写的时候有进度提示,可以取消。
音色
- 标题行里用「发现 | 我的」切换。
- 发现:语言、性别、年龄菜单和用途胶囊;先是宽度一致的「推荐」卡片,再是「全部」。▶ 在行内试听;点一行,右边打开音色详情:大的试听、「试一句」,以及「用于文字转语音」「用于故事角色」「用于有声书旁白」「保存到我的音色」。
- 我的列出你的音色,可按 全部 / 克隆 / 设计 / 收藏 筛选;⋯ 里可以重命名、复制、导出或删除(可撤销)。已保存音色的详情里有原来档案编辑器的全部内容。
- 新建音色提供快速克隆(一页向导:添加录音 → 检查 → 命名保存 → 完成)和设计音色(描述、预设胶囊、三个候选任选)。
项目、素材和示例
- 项目列出故事、有声书、配音、转写和人声分离,最新的在前,带类型、时间、长度和状态;可以搜索(标题,以及故事、有声书和转写的文字)、按类型筛选、列表或卡片显示;⋯ 里可以打开、重命名、复制或删除。人声分离显示文件名,不再显示完整路径。
- 素材汇集所有产出和导入的文件:生成结果、渲染、导出、分离的音轨,以及用过的录音和视频,可按类型和来源工具筛选。每一行可以直接播放、在来源工具里打开,也可以送去语音转文字、视频配音、人声分离,或把文字送去文字转语音。
- 示例:两人对话的故事、一章有声书、一段产品旁白、一段配音短片、一段会议转写,在首页的「示例」标签、项目页顶部和 ⌘K 里。打开示例会把它复制到你的资料库,成为可以编辑、删除的普通项目,然后打开;再次打开时会问你是打开已有的那份,还是新建一份。每个示例打开就能直接播放,也不会先弹出功能介绍:「雨夜修表铺」是两个角色加旁白的短场景(对话由多人对话模型演绎);「北站的末班车」是带两个角色的第一章;一段为虚构台灯配的三十秒旁白,作为文字转语音的最新生成结果;「天空为什么是蓝色的」是我们自制的英文短讲解,已配成中文,在配音编辑器里打开;还有一段两人的发布安排会,已区分说话人转写。所用音色都是内置音色。
- 配音项目复制或移动到别的文件夹后(打开示例、在设置 → 存储里移动数据文件夹),已生成的行仍然有效:改一行只重新生成这一行,不再全部重做。之前做的配音下次运行时会把每行再生成一次。
在需要的地方给提示
- 第一次打开视频配音、语音转文字、人声分离、新建音色、故事和有声书时,会弹出简短的介绍:三条要点和「开始」。每个只显示一次;设置 → 通用 → 「重新显示功能介绍」可以再看一遍。
- 列表为空时显示幽灵行,提示这里会出现什么。
列表、面板和控件
- 所有列表(音色、项目、素材、配音、转写、人声分离、文字转语音的历史、首页的最近)都用同一种行:没有表头,行与行之间没有分隔线;圆角行在鼠标经过、打开和播放时变色,点一行打开它,▶ 和 ⋯ 在行尾;长度、日期、类型、语言和用途前有小图标(悬停显示名称)。选中一行按 Delete 会询问是否删除。
- 详情和工具面板浮在页面右侧、标题行下方,滑入滑出:音色或生成结果的详情不再挤窄列表;文字转语音、配音步骤、故事和有声书的面板在页面够宽时占住自己的位置,窗口窄时浮在页面上。✕ 或 Esc 关闭;点另一行显示那一行。
- 标题行里的筛选、按钮和切换都和搜索框一样高;开发者页和文字转语音的标签改成和音色页一样的切换。
- 播放和暂停换成新图标(Hugeicons);试听播放时显示暂停,不再显示停止。
- 行里的标签(语言、性别和年龄、用途、音色类型、项目类型、素材来源)都能当筛选:点一下只看这一类,再点一下取消。行里的 ▶、「使用」和 ⋯ 在指针下会亮起;发现和我的里每个音色都能试听。
- 页面多用了一点窗口:左右边距从 24 点改为 16 点,标题栏和页面一致。首页仍是居中的一栏。
- 侧栏的「··· 更多」在原地展开(工作流、批量配音、来电),展开后显示「收起」;从别处打开其中的页面时会自动展开。
- 菜单栏图标:AudioSmith 正在生成(语音、配音、渲染、转写、听写、写作助手)时显示红点,有 Agent 通过 MCP 连接时显示紫点;下载和排队中的任务不算。
配音编辑器
- 步骤(转写、翻译、音色、生成、导出)变成页面标题栏里的图标:已完成的着色,当前步骤突出,进行中的转圈,失败的显示红色;悬停提示步骤名和状态。
- 去掉了底栏:当前步骤的主按钮放在播放控制行(还没有转写稿时放在标题栏),状态和进度环在标题栏的面板按钮旁边。
- 时间轴:点标尺跳转,拖动播放头,点色块只选中这一句(双击从这句播放);在空白处拖动不再拖动播放位置。轨道更矮,缩放、重播和 ±5 秒都在播放控制行里。空格播放/暂停,Home 回到开头,J、L 后退和前进。
开发者
- 开发者页最上面是「接入你的 Agent」:在 编程代理、MCP、cURL 之间切换并复制代码(给编程代理的提示词、MCP 服务器配置或第一个请求),下面的「等待第一次请求…」会变成最近一次请求的时间。再往下是 API 参考、安装技能、本地 API 设置的快捷入口,以及所有应用和代理的接入说明。本地 API 和工具(音色 A/B、变声、语速适配、演绎指导、文件检测、水印检测)在另外两个标签里。
- App 能做的事,Agent 几乎都能做(听写、电话、麦克风、接受许可和修改设置除外):MCP 服务器现在有 57 个工具,新增人声分离、列出素材和示例并打开示例、音色改名/复制/导出/导入、试听任意音色、克隆前检查录音、设计音色给出三个候选、用写作助手起草故事、用另一个音色重说一段录音、下载模型、水印检测、文件检测、演绎建议、台词时长检查和读取默认设置。配音可以直接给链接,转写可选快速或精确。技能文档写明了每个工具和常用流程。已在 ChatGPT(Codex)和 WorkBuddy 里实测。
- Agent 删除或下载之前会先问你。 只说了要做这件事不算同意:Agent 会先说明要删什么、下载多大,等你答应;支持的客户端会弹出 AudioSmith 自己的确认。工具会标明哪些只读、哪些会删除、哪些要联网。技能里也要求 Agent 用工具,而不是去操作 AudioSmith 的窗口。
修复
- 故事:没有空行的剧本里,跟在「人名:……」后面的旁白行重新算作旁白,不再算成那个角色的台词。
- 复制音色时,副本按 App 的语言命名。
闲置模型自动释放内存
- 30 分钟没用的模型现在会自动卸载(包括听写用的语音识别模型),把内存还给 Mac。下次使用时会自动重新加载:长时间没用后的第一次听写可能慢约 1 秒,等待时浮窗显示“正在加载模型…”。录下的内容不会丢。
- 设置 → 模型与网络 → 内存:“空闲时卸载模型”可选 5、15、30、60 分钟后或“从不”。如果你从没改过这一项,它会从“从不”一次性改为 30 分钟;你自己选过的值保持不变。
- 任务正在使用的模型、听写过程中和通话进行中都不会卸载模型;30 分钟从最后一次使用算起。
修复
- 引导流程中的“稍后再下载模型”没有反应(issue #1):向导在下一帧又把推荐的模型包选回去,之后仍按推荐包继续。现在选择会保留。
- 视频配音:还没翻译的行点开后,编辑框显示的是这一行当前的文字(原文),以前是空的,看起来像文字消失了(issue #2)。没有改动就点“完成”,不会把原文存成译文。
配音时间轴:缩放和平移
- 波形时间轴可以用触控板双指捏合、⌘ 或 ⌥ 加滚轮、⌘= 和 ⌘− 缩放,以鼠标指针所在位置为中心;按 ⌘0 或双击缩放倍数显示全部。缩放范围从整段素材到每秒 100 像素。
- 平移:双指横扫(带系统惯性)、⇧ 加滚轮、按住鼠标中键拖动,或用缩放按钮下新增的概览条:它在整段素材上标出当前看到的部分,可以拖动,点旁边直接跳过去。
- 放大后播放时,播放头走到边缘会自动翻页;如果你刚刚手动平移过,几秒内不会跳走。
- 句子很密时时间轴上的编号不再挤在一起:编号只在放得下、并且和前一个隔开时才显示。
视频配音:下载前先看到视频
- 粘贴链接后几秒内,视频配音页面就会显示它是什么,无需先下载:封面、网站(YouTube、哔哩哔哩、Vimeo、TikTok 以及 yt-dlp 支持的其他网站)、标题、频道、时长、画面尺寸、预计下载大小、发布日期、播放量、简介(点“展开”看全文)和字幕语言。这些信息保存在配音项目里,之后没有网络也能看到。
- 下载时,封面下方的细进度条显示大小和剩余时间;下载完成后,中间直接显示视频本身,可以播放;之后的转写等步骤在底栏显示进度。
- 无法读取的链接(私密或已删除的视频、需要登录的视频、不支持的网站)会在下载前说明原因,并附上网站给出的理由和“重试”按钮。“取消”可以像停止下载一样停止读取。
- 拖入的视频或音频文件同样显示封面帧、时长、画面尺寸和文件大小。
- 封面由 app 自己获取:和下载走同一个代理,只访问公网地址,最大 5 MB,并且只保留 JPEG、PNG 或 WebP 图片。
长项目更流畅
- 视频配音:编辑器只构建看得见的句子;2 小时视频的 2000 句不再拖慢每一帧(每帧 190 毫秒 → 不到 1 毫秒)。
- 有声书和故事:长稿件(整本小说)在停止输入后才检查和保存草稿,并且不占用窗口线程,不再每按一个键都做一遍;在 50 万字的稿子里打字和短文一样快。
- 工作室和有声书的编辑器:长文本换行会记住已经测量过的结果,打开、调整窗口大小、在长稿里打字都不再卡顿(每一行仍然不会超出编辑器边缘)。
- 隐形水印改成边读边写,给几个小时的配音加水印时不再把整段音频在内存里放好几份。
- 引擎最多保留 6 个已加载的模型(小模型不计入),由内存预算决定卸载哪个,渲染故事时不再每句都重新加载模型。
- 启动时删除 30 天前已结束的任务;试听音频不再每帧复制一遍;渲染缓存最多每分钟清理一次。
安全
- 音色名称在所有入口都会清理(导入的 .asvoice 和 .ovsvoice 文件、本地 API、MCP、app 本身、音色发现):换行和控制字符换成空格,名称最多保留 80 个字符。以前保存的名称在下次保存时清理。
- 智能体技能和设置提示词把音色名称当作数据列出(加引号、截短),智能体不会把它们当成指令。
- 通过 MCP 克隆和设计音色只能在这台 Mac 上进行(或带 API 密钥),和本地 API 一致;在局域网里,音色的音频只提供试听样本,不提供参考录音。
- 使用 Go 1.27.3 构建(修复了 Go 标准库的安全问题)。
日志
- 应用日志里新增操作日志(来源“ops”,每条一行 key=value):音色、项目、配音、转写、工作流和生成结果的创建、改名、删除、导入和导出,并注明发起方(应用、本地 API、局域网、MCP);设置改动(只记名称);每个任务的开始、结束、失败(含错误)和取消(含取消方和运行时长);下载;会修改数据的本地 API 和 MCP 调用及其状态;以提示显示给用户的错误;应用启动和退出的每一步。绝不记录脚本文字、转写内容、提示词或密钥。
- 日志和诊断包会遮盖本地 API 密钥、Twilio 令牌、从钥匙串读取的密钥和 Bearer 令牌,主目录显示为“~”;引擎自己的日志文件也会遮盖。
- 后台工作里原本被悄悄丢掉的错误(取消任务、导出记录、通知、应用写入或删除的文件等)现在会写入日志。
修复
- 工作室和有声书的稿子编辑器:在 Mac 上,每行最后一个字会在右边缘被截掉一半(中文逗号、句号单独测量时只有在行内时的一半宽)。现在按实际绘制的宽度换行。
- 从链接导入视频时显示真实进度(百分比、大小、剩余时间),页面中间、底栏和侧栏卡片都有,并显示视频标题;卡片上的停止和底栏的取消现在能真正停止下载(以前 yt-dlp 的子进程会继续下载);任务卡片不再显示空进度条。
- 在本机构建的副本会在 设置 → 关于 → 软件更新 里说明为什么不能自动更新,并附上下载页链接。
- 我的音色:音色卡片 ⋯ 菜单里的“删除…”(以及其他菜单项)在没打开编辑器时没有任何反应——没有对话框,也没有日志:菜单随着指针移走,选中的菜单项没有传到卡片上。
- 删除音色时会说明它在哪里使用(故事、有声书、配音、工作流、工作室、批量配音、电话、智能体),删除后约 10 秒内可以在提示里撤销,在此之前它的文件暂存在资料库的回收站里。用过它的地方会显示“音色已删除”,可以另选音色;用到它的故事或有声书会停止并说明原因;工作室会提示它的音色没了——绝不会悄悄换成别的音色。
- 退出不再卡住:尚未保存的修改(草稿、配音编辑器里的改动)先写入;取消后仍不停止的任务(例如卡住的下载)等待几秒后不再等它(下次启动时继续,或等待重试)。不再读取请求的引擎会被重启,不会一直卡住。
- 排在中断任务后面的任务(某个阶段里引擎连续停止两次)不再永远等待:它会失败并说明原因,配音或有声书不再一直显示"忙","继续"可以接着做。旧版本里这样卡住的任务链在启动时恢复。
- 语言模型占用 GPU 的时间持续到它的请求真正停止,下一个任务不会因"忙"被拒绝。
- 没有完成的模型移动(被取消、某个模型正被其他应用使用、应用退出)移走的模型不再显示为"未下载";重新启动后移动会继续。
- 删除配音时会等正在运行的阶段停止;同时启动同一个配音的两次运行只会生成一次。
- 故事和有声书:在项目库页改名不再把未保存的修改标记为已保存;保存时如果项目已在别处被修改(例如智能体通过本地 API 修改),会询问是另存为副本还是覆盖;本地 API 会拒绝基于过时内容的修改。
- 移动数据文件夹时,统计大小和清理失败的副本都在后台进行,对话框会显示当前步骤,窗口不再卡住。
- 其他小修复:后台工作出错时记录日志,不再直接关闭应用;写入失败的草稿会重试;所有文件夹里未完成的临时文件都会清理;崩溃后仍在运行的下载会在下次启动时停止。
窗口换成 ActNow 家族的统一布局
- 侧栏顶部是搜索框(⌘F):搜索项目、音色、生成结果、转写和导出,结果显示在"项目库"页("找到 3 个",可清除搜索)。框里的按钮打开命令面板(⌘K)。
- 工作室、项目库、历史放在最前;创作(故事、有声书、视频配音、转写)、音色库、自动化是可以折叠的分组。⌘1–⌘9 不变。
- 去掉了底部状态栏:正在进行的事显示为侧栏左下角的卡片——引擎停止(重启)、正在听写和通话(停止、挂断)、每个正在生成的故事、有声书、配音和工作流、单条生成、导出、转写和下载;同一类有多个时显示"2/5",完成后停留 3 秒。指针移上去会展开卡片堆,"查看全部"打开新的"任务"页,列出所有进行中和排队中的任务。
- 卡片下方是设置、日志面板(⇧⌘L)、工具,以及通知铃铛(有未读时显示圆点)。
- "模型"和"集成"并入设置(原来的链接会打开对应的节);"引擎"和"日志"不再放在侧栏(命令面板、"前往"菜单、设置 → 高级 → 诊断)。⌘E 快速切换改成一个小对话框,显示引擎状态和正在使用的模型。
- 设置从 17 节合并为 11 节,每节都是分组卡片,每个设置项下面有一行说明:通用(含外观)、工作室(含发音)、配音、听写(含权限)、写作助手、集成(应用与智能体,以及本地 API)、音频工具、模型与网络(模型列表,以及下载、存储、Hugging Face 令牌、内存和许可)、隐私、高级(存储、使用统计、诊断和自检)、关于。旧链接会打开它们现在所在的位置。
- 页面标题改小;项目库和历史页有 ‹ ›(⌘[ ⌘])和数量;项目库在页头切换列表和卡片(⌥1 ⌥2)。提示条默认显示在页面底部;工作室、视频配音、故事和有声书页底部有自己的工具条,提示条显示在页头中间。
更新在窗口里显示
- 设置 → 关于 → 软件更新:检查更新…、每天检查、无需询问直接安装(每天检查发现的新版本会自动安装,等你重新启动)和 Beta 版更新照旧,另有"查看更新日志…",按 AudioSmith 当前的语言查看每个版本的说明。旧更新窗口里的选择会保留。
- 发布时同时提交英文和中文说明(CHANGELOG.md 和 CHANGELOG.zh-Hans.md),actnow.dev 的更新日志页和 app 会按各自的语言显示。
音色发现:从 1184 个精简到约 35 个精选音色
- 音色发现现在只列出一小批根据试听测量(#91 审计)挑出的音色:中文和英文在前,另有日语、韩语、西班牙语、法语、德语、意大利语、葡萄牙语和俄语各几个。1126 个自动组合生成的音色和效果较弱的手工音色不再列出。
- 每个设计音色都有一段写好的人物描述(年龄、嗓音、场景),并真正交给模型;种子经过试选;参考录音随应用一起发布:"使用音色"保存后即可直接说话,不用再等参考生成。"预览"播放用这段参考做出的片段,和在工作室里说出来一样,试听时不再临时生成。
- 音色发现也提供值得直接用的内置音色(中文的 Serena 和 Dylan,Kokoro 中最好的英文和欧洲语言音色):"使用音色"保存这个说话人并打开工作室。
- 筛选:用途(旁白和有声书、对话和播客、角色和童声、广告和播报)、语言、性别和年龄,以及搜索。音高、口音或方言、风格以及原来的九个类别都去掉了。
- 从以前的音色库保存的音色照常可用(它们带着自己的配方);配音演员表或智能体引用以前的音色库音色或设计预设时也照常能找到:这些 id 都保留,只是不再列出。
设计:八个起点
- 旁白、聊天、新闻播报、商务演示、讲故事、长者、反派,以及新的"轻声"(取代耳语和冥想引导)。元气、童声和东北老铁去掉了(音色发现里有一个东北口音的音色)。所有预设都不再要求放慢语速。
不再提供效果较弱的内置说话人
- Kokoro 的 af_nicole(耳语)和 bm_lewis(粗糙)不再列出;Qwen3-TTS 的 Ryan 在中文界面不再列出(测试中他念不好中文数字)。已经使用它们的项目或设置保持不变,API 仍然可以按名字使用它们。
设置更舒展,文字更短
- 所有设置页用同一套间距:卡片内边距、每行上下留白和分隔线、卡片里的说明文字自成一块,标题、说明和控件之间不再挤在一起。写作助手页的模型选择不再被截断,重复的状态行去掉了。
- 中英文共精简了 28 处说明文字。
设计的声音不再念出残留的参考文本
- 语速较慢的设计声音(讲故事的人、长者、冥想引导,以及音色库里的几个声音)念参考文本时会在一半处被截断:Qwen3-TTS 在一个长度上限处停止,而慢速语音会碰到这个上限(引擎补丁 0008 把它从每个文本 token 0.48 秒提高到 0.8 秒,AudioSmith 自己的上限现在既能调低也能调高它)。但参考音频仍然连同完整文本一起保存,所以克隆出来的声音会在每一句前面先念出缺掉的那一半。
- 从声音生成的参考音频现在必须念出它的文本:如果识别器听到三次录音都没有念出(或被截断),就再生成一次;保留下来的录音如果念的是别的内容,就以它实际念的内容作为文本,否则不保留,并说明原因。参考文本永远不会是音频里没有说的话。
- 之前做的参考音频会在第一次被录音、故事或有声书克隆时检查一次:没有念出其文本的会重新生成(会有提示),或者改用它实际念出的文本。
- 设计提示词不再因为预设或选择的语速而要求慢速说话("speaks slowly"、"语速偏慢"):这会让参考音频变慢,克隆出来像在朗读。你自己写的描述会保留原样。
- 为日语、韩语、德语、法语、西班牙语、意大利语、葡萄牙语或俄语设计的声音,用该语言念参考文本,而不是英语。
- 音色库的试听改用工作室调好的采样参数(Qwen3-TTS 温度 0.7、top-p 0.8),不再用引擎的默认值;试听会重新生成一次。
- 隐藏印地语的音色库声音:这里没有模型能设计或克隆印地语。
听写的提示音可以自己选
- 设置 → 听写 → 提示音:开始聆听、停止和出错时的声音,可以分别从 ActNow 家族的音效库(默认 Tally、Wrap 和 Shrug)、macOS 的系统声音中选择,或者不用声音。紧凑的选择器可以搜索(名称和标签)、按类型筛选、用 ▶ 试听(再点一次停止),并分档调节音量;"试听"播放当前选择。
- 这些声音来自 React Bits 的 Sound Lab,只随 actnow.dev 和 GitHub Release 上的构建提供:不在本仓库里,也不适用本仓库的许可证(见 NOTICE)。从源码构建的版本播放 AudioSmith 以前用的系统声音(Tink、Pop、Basso)。
模型移到 ActNow 文件夹,不再进 Time Machine
- 模型存放在
/Library/Application Support/ActNow/models,与其他 ActNow app 共用,不再放在 Hugging Face 缓存(/.cache/huggingface)里,因为清理工具会把那里当作缓存清掉。已经在缓存里的模型会在第一次启动时搬过来,不用重新下载(用硬链接:缓存保持原样,供使用它的工具继续用)。 - Time Machine 默认不备份模型(可以重新下载);设置 → 高级 → "用 Time Machine 备份模型"可以为所有 ActNow app 重新打开。
- 被截断的模型文件(磁盘错误、中断的拷贝)不再被当成已下载的模型;重新下载即可修复。另一个版本下载到一半留下的文件,也不再让已下载的模型看起来不完整。检查模型文件时,会等待正在处理它的其他 ActNow app,并在文件损坏时通知它们。
- 如果 ActNow 文件夹里的模型声明被删除(例如清理工具),AudioSmith 回到前台时会重新声明自己的模型,并保留其他 app 可能还在用的模型。
有声书保留已渲染的部分
- 有声书已经渲染好的部分保存在 AudioSmith 的数据文件夹里,不再放在会被清理工具清空的 ~/Library/Caches:停止或失败后"继续"不会再把几个小时的内容重新渲染一遍。之前渲染的部分会在第一次启动时搬过来。
- 启动时清理被中断的录音和导入留下的临时文件。
密钥不再出现在日志里
- Google 翻译(基础版)的密钥改为放在请求头里发送,不再放在地址里,所以网络错误不会再把它写进日志。日志和诊断包会去掉密钥、令牌和代理密码。
配音编辑器:⌘Z 和 ⇧⌘Z 又能撤销和重做了
- 快捷键带 ⇧ 的菜单项,显示和响应的就是这组按键(⇧⌘Z 是重做,不再同时是 ⌘Z)。
本机写作模型的回答完整了
- 内置写作模型(Qwen3 4B)在必须遵循固定格式时,回答可能被截断或乱码。AI 导演会漏掉故事最后一句的指导;情绪导演可能丢掉半场戏(在情绪的位置出现
"surprisedn”: 2note”:);电影级翻译的审校会照抄译文而不是指出问题,所以什么也没有改进。这些都来自引擎让回答遵循格式的方式。现已修复:在测试中,每个故事的每一句都得到了指导,审校也能发现真正的问题。 - 同样的请求现在每次都得到同样的回答;以前每次启动 AudioSmith,回答各部分的顺序都会变。
- 开始自我重复的回答会立即停止并重新请求,不再运行好几分钟(某个术语表注释就出现过这种情况)。
- 回答不可用后的重试不再是同一个回答的拷贝:会重新采样。
Audiobook: dialogue passages (多人对话段)
- A scene in a book can now be spoken by a dialogue model, each line hearing the lines before it, so the characters answer each other. Mark it in the manuscript as a dialogue passage:
[对话]on a line of its own ([dialogue]in English;【对话】works too), then one名字:台词(Name: line) line per turn, then[/对话]. A line without a name is narration, read by the narrator; a line in parentheses is a stage direction, not read;名字(低声):gives a direction that is not read either;[pause 1s]on its own line lengthens the gap;[voice:NAME]lines work as well. The rest of the book stays on its model. - Insert → "Dialogue passage" writes an empty passage with the latest names of the manuscript (the first one selected, to type over), or makes the selected lines one, keeping every word: quotes become the turns of whoever the speech verb names (or, between two speakers, the other one), the words around them narration lines, and lines it cannot attribute are marked "?" for you to fix. Undo in the toast.
- In the editor a passage has a faint tint and a dot per line, each speaker's name its own colour, stage directions grey, and a summary after
[对话]("3 人 · 5 句 · 多人对话 · 轻量"); names of the cast are offered as you start a line; the context menu has "Preview this dialogue" and "Turn back into paragraphs". - The inspector has a "Dialogue passages" section while the book has some: each passage with a preview button, the dialogue model, and what happens without it. Passage speakers are part of the cast (marked "dialogue"); a speaker nobody is cast as gets a voice of their own, unlike the others', when the book is generated (or at "Assign voices").
- Without the dialogue model (not downloaded, or a Mac with less than 16 GB) the passages are read line by line in their voices, with the same tight conversational gaps; so are passages of one speaker and passages in languages other than Chinese and English. The dialogue model's lines are brought to the level of the chapter's narration. Chapter markers, the read-along and M4B export work as before; books without passages render exactly as before.
- The Local API and MCP:
update_longformtakes the manuscript asscriptanddialogue/dialogue_modelfor audiobooks;get_longformreturnsscript(up to 100 KB) anddialogue_blocks(chapter, index, speakers, lines, uncast speakers,modedialogue or per_line and why);render_longformtakesdialogue_block: {chapter, index}to preview one passage and lists the voices it gave asvoices_given.
Dub: foreign-language videos dubbed into Chinese speak Chinese
- Dubbing a Japanese or Korean video into Chinese with the default clone model (Qwen3-TTS Base) made many lines in the source language or garbled: given the speaker's clip and its transcript, the model went on in the clip's language (a Japanese test: 9 of 14 lines). Lines in another language than their speaker's clip are now cloned from the clip alone, from its voice print, and come out in the line's language as much like the speaker: in tests from Japanese, Korean, French and English into Chinese and from Chinese into English, 0.4–7 % character errors instead of up to 42 %, and as or more like the speaker. Dubs in the video's own language are made as before.
- Those lines are also heard again after they are made: a line that is not in its language, or does not say its text, is made once more and the better take kept; one that still fails is marked "Listen" in the line list, with what was heard, and the step says so, instead of being kept silently (the Local API's
flag:heardorlanguage). Conversation lines made line by line are checked for the wrong language too. - Qwen3-TTS Base, given a clip without its transcript, now clones that voice; it used to speak in no particular voice.
Model pickers fit the window; dialogue models in the Stories picker
- The model picker's list no longer runs past the bottom of the window with "Show all models" open (the Stories inspector, small windows): it opens below its button, or above it when there is little room below, at most as tall as the room there, and its list scrolls to the last model under the search field. Voice pickers follow the same rule.
- The Stories model picker has a section "Whole dialogue (multi-speaker models)" with the two dialogue models, now named "Dialogue · Light" (SoulX-Podcast 1.7B) and "Dialogue · One take" (MOSS-TTSD v1.0), with the memory they need and their download size. Choosing one turns whole dialogue on with it (the Performance switch follows); the story's model then reads the narration and the lines the dialogue model does not say clearly, as the button says ("Narration and fallback: …"). Macs with too little memory, and stories in other languages, see them greyed out with the reason.
Better voice references: checked, cleaned, and longer for designed voices
- Clone and dialogue models copy a reference's noise, loudness, intonation and pace. AudioSmith now checks every reference where it comes in (Clone, an imported voice, Dub's speakers, Stories' whole dialogue) and says in one line how good it is ("Reference quality: good / fine / needs work") with at most two tips: too short, very noisy, distorted, a transcript that does not match, a flat delivery, or (for dialogue) a slow, read-aloud pace. Nothing is blocked.
- References are cleaned automatically: background noise is removed only when there is some (DeepFilterNet; clean recordings are left alone), the silence before and after is trimmed, long pauses are shortened, and the loudness is evened out to −18 LUFS. The original is kept: Undo on Clone, "Use the original" in the voice's editor.
- Recordings of 15–30 seconds keep their best 10–14 seconds. Clone has tips for recording your own voice: a quiet small room, talk rather than read, record 15–30 seconds.
- Designed voices get a reference of their own for clone models, portable copies and Stories' whole dialogue: about 12 seconds of lively everyday speech in a casual tone, the best of three takes. Their greeting sample stays for previews. New designed voices get it when saved; older ones when first used with a clone model or in whole dialogue (or "Make reference" in the voice's menu).
- Portable copies of built-in voices now read everyday narration instead of a sentence about the recording, asked to sound casual where the model takes an instruction, and keep the best of three takes. They read in the speaker's own language (Vivian, Serena, Uncle_Fu, Dylan and Eric Chinese; Ryan and Aiden English), whatever the app's language.
- Dub denoises a speaker's reference only when it is noisy, and tidies it the same way.
Stories: emotions that stay coherent across a scene
- The AI director now reads the whole story and plans its emotions: a usual mood for each character, and for each line one of 13 emotions (steady, happy, excited, tender, pleading, hesitant, worried, hurt, sad, angry, scared, surprised, apologetic) with a strength from 0 to 3, the turns of the scene marked. Most lines stay steady; a character's feeling changes one step at a time, except at a turn.
- Each line is sent a short instruction made from its emotion ("略带委屈", "非常难过,带哭腔"), the same wording for every line of a character, instead of the persona and the scene with every line. In a test story, a father's voice moved over 8 semitones instead of 19.
- Each line shows its emotion and strength; you can change them, mark a turn, or write your own wording. Directing again keeps what you changed. Each character has a usual mood you can set.
- The pauses between lines follow the emotions: excited lines come quicker, hesitant or sad ones after a longer pause (Advanced → "Pauses follow the emotion").
- A character's lines are said in one go, stretch by stretch, so the voice carries on from line to line instead of starting afresh; AudioSmith cuts them apart again with the forced aligner and checks each line. A stretch that cannot be cut cleanly, and narration, are made line by line. Advanced → "Each character's part in one go" turns this off.
- Stories directed before this version sound exactly as before until you direct them again.
- The Local API and MCP:
update_longformtakesemotions(line id → emotion) and intensities 0–3;directruns the new director.
yt-dlp and ffmpeg download from a mirror too
- yt-dlp (importing from links) and ffmpeg now download from GitHub or ActNow's mirror, mirror.actnow.dev, whichever is faster; a download that stalls or crawls moves to the other. GitHub's downloads reach many users in China at a few KB/s.
- Both are still checked against their pinned SHA-256 before use: a file that does not match is fetched again from the other source, so the mirror cannot change what you get.
- Settings → Network → Download from now covers models and tools: Automatic (the fastest of the official sites and mirrors), Official sites only (huggingface.co, github.com), Mirrors only (hf-mirror.com, mirror.actnow.dev), or Custom (Hugging Face URLs; tools then come from either). Test the connection also reaches mirror.actnow.dev.
Stories: whole dialogue (整场对话)
- A new switch under Performance, "Whole dialogue": the characters' lines are spoken by a dialogue model (SoulX-Podcast 1.7B, Apache-2.0) a scene at a time, so each line hears the lines before it and answers them. Narration stays on the story's model.
- Each character is cloned from their voice: a cloned voice's own clip, a designed voice's reference, or a short sample the voice reads first.
- Every line is checked: one the model does not say clearly is made again with the same context, then on the story's model.
- Up to four characters per scene. Needs 16 GB of memory (the switch says so on smaller Macs) and a 2.4 GB download; Chinese and English stories. On an M4 it runs at about 0.7× real time.
- A second dialogue model, MOSS-TTSD v1.0 (OpenMOSS, Apache-2.0), on Macs with 24 GB of memory or more: pick it under "Dialogue model". It speaks each scene as one recording, with its own pauses between speakers, up to five characters per scene, and AudioSmith cuts the recording into the lines (with the forced aligner) and checks each one; a line it does not say clearly is made again after the lines before it, then on the story's model. An 11 GB download; on an M4 about 0.8× real time, using about 12 GB of memory while it speaks.
- The Local API and MCP:
update_longformtakesdialogue_model(soulxormoss);get_longformreturns it.
Chinese numbers, phone numbers and units
- Chinese text now reads phone numbers digit by digit (138-0013-8000, 010-12345678, 拨打10086), ranges (3-5天 → 三到五天, 1-2个 → 一到两个, 10%-20%), scores (3:2 → 三比二), dates with dots (2024.03.05) and units (5km → 五公里, 3.5kg, 100m², 60km/h, 220V, 128GB). Words with digits (MP3, iPhone15, COVID-19) and other languages are unchanged.
Dub: API keys for the online translators
- The online translators (DeepL, Google, Microsoft) have an API key field in the Translate step's Advanced options. Before, the key had to be added to the Keychain by hand.
Logs
- Click a line in the logs (the page or the panel) to copy it. Shift-click, ⌘-click or drag to select several lines, as in Finder; ⌘A selects every line shown, Esc deselects, ⌘C copies. While lines are selected the header says how many, with Copy and Deselect. Right-click a line to copy it, the selected lines or every line shown.
- The newest line is at the top. Scrolled down to older lines, the list keeps its place as new lines come in, and "N new lines" at its top goes back up. Copied lines are in the log's order, the oldest first.
New icon
- AudioSmith has its own icon: a white anvil with a lime spark on a green-to-teal gradient, in the same style as the other ActNow apps (macOS 26 adds its Liquid Glass look). The menu bar icon is the anvil too; while dictation listens, a dot takes the spark's place.
Fixes
- Models → Clean up could delete models another ActNow app uses, such as Dicta's language model (0.4.0-beta.1 to beta.4). It now keeps every model another installed ActNow app uses, and says which app.
- The Dub page's button read "Generate dub%!(EXTRA int=1)" with one target language. It reads "Generate dub" again, and the Translate button got the same fix.
HF_ENDPOINTnow overrides the download source chosen in Settings. Before, the setting won.
- A scene in a book can now be spoken by a dialogue model, each line hearing the lines before it, so the characters answer each other. Mark it in the manuscript as a dialogue passage:
Dubbing
- Importing a video from a link works again for YouTube videos offered only as separate video and audio streams (most of them now): AudioSmith gives yt-dlp the ffmpeg it uses (or one found on this Mac) to join them. Downloads stop at 1080p. Without any ffmpeg the error says to set it up in Settings → Audio tools, instead of "Requested format is not available".
- When a step fails, the dub shows why that step failed, not "A job it depends on failed".
Diagnostics
- Failed jobs (a dub step, a render, a transcription…) are written to the log, so Settings → Logs shows why.
Licence
- The app ships THIRD-PARTY-NOTICES.txt with the full licence texts of the 45 components it includes; Settings → Diagnostics and about → Third-party licences opens it.
暂无中文说明,显示英文原文。
Voices
- Hear a voice before you pick it: every voice list (Studio, Stories, Audiobook, Dub) has a ▶ on each voice, ■ to stop. Built-in speakers play a short sample that ships with the app, so they play before their model is downloaded; your own voices play the first seconds of their sample. One preview at a time; closing the list stops it. Keyboard: P plays the highlighted voice.
- Stories, Audiobook and Dub use the same voice picker as the Studio.
- Kokoro's Japanese voices are hidden, like its Chinese ones: our engine does not speak them intelligibly yet.
Licence
- AudioSmith is now licensed under the GNU Affero General Public License, version 3 (AGPL-3.0); earlier releases, up to and including 0.4.0-beta.1, remain under the Apache License 2.0. Settings → Diagnostics and about shows the licence and links to the source code; the Local API's
/,/healthand capabilities document carrysource_urlandlicense. The app ships LICENSE and NOTICE. - Contributions need the Contributor License Agreement (CLA.md): a bot asks you to sign it on your first pull request, by a comment. See CONTRIBUTING.md.
暂无中文说明,显示英文原文。
The first signed release is a beta (a GitHub prerelease): copies that receive beta updates get the next beta, and 0.4.0 once it is out.
Updates
- AudioSmith updates itself: once a day it reads the version file of its latest release on GitHub and, when a new version is out, shows its notes (this file's section of the version) and offers to install it, skip it or remind you later. Updates are signed; AudioSmith checks the signature before it installs one, and usually downloads only what changed. AudioSmith → Check for Updates…, the command palette and Settings → Diagnostics and about check at once; that page also turns the daily check and installing without asking on or off. Copies built on your own Mac don't update themselves.
- Releases are signed with a Developer ID and notarized by Apple, so they open without Gatekeeper's warning (docs/release.md).
- Beta updates: Settings → Diagnostics and about → Receive beta updates. Betas get new features sooner but may be less stable; turned off, AudioSmith only updates to releases. It is on in a beta copy (such as this one) and off in a release until you choose. Turning it off never goes back to an older version: a beta stays until a release newer than it is out. About shows a Beta badge next to a beta's version.
Transcription with speakers
- New model "Transcription with speakers" (区分说话人转写; MOSS-Transcribe-Diarize 0.9B, 8-bit, 1.3 GB, Apache-2.0): it transcribes and tells who says what in one pass. Download it from the Models page, Transcribe or the Dub page; nothing downloads by itself.
- Transcribe: a Speakers option in the toolbar. Transcripts list their speakers (S1, S2…) with their lines; click one to name it. Copy and TXT export put one paragraph per turn after the speaker's name, SRT cues start with it, VTT marks voices, JSON has each segment's speaker. Dictation and plain transcription stay on Qwen3-ASR (MOSS is about 4× slower: a 10-minute recording takes about 4 minutes on a MacBook Air M4).
- Dubbing: with the model downloaded, a source with more than one speaker is transcribed by it and every line gets its speaker from it (in our tests 1.00 of the lines right on three of four 2–4 speaker dialogues and 0.93 on a 13-minute one with five people, where Qwen3-ASR + Sortformer managed 0.50–0.69 and never found more than 2 speakers; no limit of 4 speakers); the aligner still times the words, and the glossary's terms are its vocabulary. Without it, the dub works as before (Qwen3-ASR + Sortformer) and suggests the download, then Transcribe again.
- Long recordings go in 10-minute windows that overlap by a minute, linked by who speaks in the overlap; stretches without speech are skipped, and the model's chat answers to silence ("I'm sorry, I can't assist…") are dropped.
- Local API and MCP:
speakers=true,model=gpt-4o-transcribe-diarizeorresponse_format=diarized_json; segments carryspeaker. MCPtranscribetakesspeakers: true.
Fewer transcription and writing models; Qwen3-ASR transcribes everything
- Speech recognition is Qwen3-ASR 0.6B ("Chinese & English transcription") everywhere: dictation, Transcribe's Fast and Accurate modes, dubbing and its read-back check, workflows, Convert, clone references and calls. It made 0.5–4 % errors on Chinese where Whisper made 8–33 %, punctuates, and is 2–4× faster (thread #44's measurements). Whisper large-v3 turbo ("Multilingual transcription", tagged Fallback) is used on its own for the languages Qwen3-ASR does not know (it knows 30) and for translating speech into English. Fast and Accurate now differ only in the word timings.
- Long files: the vocabulary is only sent with recordings up to 30 s (Qwen3-ASR copied it into the end of longer transcripts); the " The." (or "嗯。") Qwen3-ASR sometimes invents after the last sentence of a long file is dropped; files longer than about 4½ minutes are timed word by word in windows of at most 4 minutes, cut between sentences (the aligner's times broke down after about 4½ minutes).
- Removed: Parakeet TDT 0.6B v3 (no Chinese) → Qwen3-ASR, or Whisper for a language Qwen3-ASR does not know; Mel-RoFormer (its output ended in 2–3.5 s of silence, and it was 5–9× slower) → HTDemucs; Gemma 4 E4B, Gemma 4 E2B and Qwen3 1.7B (slower or broken JSON, weaker translations and clean-up) → Qwen3 4B Instruct 2507, now the only language model, named in Settings → Writing help instead of a choice. Settings that named a removed model go back to the default once, with a notice; a model you chose that is still there (Whisper) stays. API and MCP: a transcription that names Parakeet is answered by its replacement with
replaced_byand a warning (X-AudioSmith-Replaced-By/X-AudioSmith-Warning);GET /api/models/{id}describes the removed models, and they are not listed. Their files stay until Models → Clean up, which now also lists them (and shows on their tab). - Onboarding: Balanced no longer downloads Whisper; Max adds it instead of Mel-RoFormer.
Models named for what they do
- Every model has a plain name that says what it is for — Standard voices, High-fidelity clone, Fast clone, Voice design, Fast English voices, English clone, Multilingual all-rounder; Chinese & English transcription, Writing assistant · Standard… (标准音色、高保真克隆、快速克隆…) — a one-line description and a few tags (Chinese, Cloning, Built-in voices, Low memory, Non-commercial…). Pickers, the Models page, ⌘E, Settings, the bar beside Generate, History, onboarding, notifications and messages use them.
- The family, version, size, quantisation, repository and licence are still there: in a model card's Details on the Models page, in the pickers' tooltip and ⓘ, and in History's details (Technical name). Ids, repos and saved projects don't change.
- The model picker and the Models page have a search field that finds a model by its name, its technical name, id, repo or a tag.
- Local API and MCP: model lists add
display_name(English),ui_name(as the app shows it),descriptionandtags; a friendly name picks a model too.
Portable voices, and simpler Design, Clone and Export
- Make a portable copy of a model's built-in speaker or of a designed voice (My voices → ⋯, the Studio's voice list, or Make portable where a voice can't be used): its model says a ten-second line, evened out, and the take is saved as a cloned voice "<name> (approximate)" that every model that clones can speak with. It sounds close to the original, not the same, and says so.
- When a voice can't be used with a model, the message says why and what to do (make a portable copy, or pick a model that designs).
- Design shows only what the model can't express; what it will hear is behind ⓘ, and the seed moved into Details. Clone: style and language are under Advanced. Export audio: format, loudness, file name and extras in view; bit depth or bitrate, sample rate, channels and trimming under Advanced.
Simpler Stories, Audiobook and Dub
- Stories and Audiobook: the inspector keeps Setup, Cast, Performance (Stories) or Chapters and Cover & details (Audiobook), and one Advanced section for the rest — language, merging and evening out voices, refinement and guidance, gaps, trimming, seed, a stem per character, a story's M4B with its cover and details, an audiobook's own pronunciations — with N changes and Restore recommended (your pacing stays).
- The Project section moved to a Project ▾ menu in the header: Save (under the title — the title is the project's name), Save a copy, New, recent projects, All projects…
- A story shows only what its model hears: personas, the scene, the AI director and line directions disappear on models that say lines as written, and a line's speed on models without one.
- Dub: each step keeps its main choices; the rest folds into Advanced at the foot of the step (speakers and review, more languages and the translator's options, voice match, the voice model's parameters, a WAV's bit depth). The buttons the editor's ⋯ menu already had left the panels; Transcribe again… and Translate everything again joined that menu.
A simpler Studio
- The inspector shows what most takes need: the model, one Voice list (the model's speakers, your saved voices, a clip to clone, Manage voices…) and the speed. Everything else — style, reference transcript, length, refinement, guidance, sampling, seed, reading numbers, evening out the volume — is under Advanced, filled with the model's recommended settings; its header says "Recommended settings" or how many you changed, with Restore recommended inside. Advanced stays open or closed as you left it.
- The Voice controls and Audio quality buttons are gone, and so are the WAV precision (takes are kept at 24-bit; choose the file's bit depth in Export audio), Preload / Unload (in the ⌘E engine switcher, now with Unload), the autoplay switch (Settings → Studio) and the steps slider (three tiers remain).
- A clip chosen to clone is transcribed for you when it is a WAV.
- The bar beside Generate says which model and voice will speak, and how many settings you changed; a click shows the inspector.
Recommended models and settings
- Every speech model was measured on a MacBook Air (intelligibility with two recognisers, naturalness, voice stability, speed, memory). Each page now recommends two or three models for its job and your language, with a one-line "best for" and a speed and quality hint; the others are one click away under "Show all models", and the ones that can't do the job (no cloning for a dub) are greyed out with the reason.
- Tuned defaults: Qwen3-TTS uses temperature 0.7 and top-p 0.8 unless you (or an API request) set them — the models' own 0.9 / 1.0 sounded worse and less stable; OmniVoice uses guidance 1.5 with 32 steps (16 for dubbing). The Local API and MCP tools follow the same defaults. Rendered chunks from before are made again once with the new settings.
- Removed: six speech models that misread, paused or covered too little in the tests — KittenTTS mini, MOSS-TTS-Nano, Chatterbox (multilingual), Marvis, Soprano and Pocket TTS. Seven remain: Qwen3-TTS 0.6B CustomVoice, 0.6B Base, 1.7B Base and 1.7B VoiceDesign, Kokoro, Chatterbox Turbo and OmniVoice (under Show all models). Drafts, projects, dubs, workflows, settings, history and API or MCP calls that name a removed model use its replacement — Kokoro, Qwen3-TTS 0.6B Base for MOSS-TTS-Nano, Chatterbox Turbo for Chatterbox and for cloning with Marvis, Soprano or Pocket TTS — and the app says so once; the API answers with
replaced_byand a warning. A removed model's own speakers saved in My voices can't be used any more. - Models → "Removed models still take X GB": Clean up deletes their files (after listing them); nothing is deleted on its own.
- Chatterbox's expressiveness control is gone with the multilingual model (Turbo does not take it).
- New dubs fit lines with "Smart fit" instead of "Lip sync": lip sync sped most Chinese lines up audibly (1.2–1.4×). Dubs you already made keep their timing.
- Kokoro's six Chinese voices are hidden (unintelligible in the tests); its English voices are the best English default.
Stories: dialogue that flows
- Turn-aware pacing: the silence between lines follows the conversation — shorter when a character goes on or answers a question, a little longer after a statement, shortest when a line is cut off (… —), longer around narration. Three presets (Dialogue, Reading, Relaxed) in the new Performance section; new stories use Dialogue, stories made before keep their fixed gap until you pick a preset. A line's own "pause after" still wins.
- Consecutive lines of one character are said in one go, so the voice flows from one sentence into the next, then split back into lines at their pauses (player, stems and the sidecar see lines as before; a turn that cannot be split is made line by line). The pause inside a turn is kept close to the preset's.
- Each character's lines are brought toward one loudness (measured 4–7 LU apart on Qwen3-TTS before, about 1 after).
- A scene for the story, a persona for each character and a direction (with an intensity) for each line. Qwen3-TTS CustomVoice and VoiceDesign hear them as an instruction with every line; other models say lines as written, and the page says so ("Line by line"). Never spoken.
- AI director: the writing-help language model (Qwen3 4B on this Mac by default) reads the story and fills in the scene, personas and directions; edit any of them, Undo, or direct again.
- Imported scripts keep stage directions out of the spoken text:
妈妈(温柔地):…,MOM (softly): …,[Mia] (pleading) …become the line's direction. - Agents:
update_longformsets a story's scene, personas, directions, intensities and pacing, anddirect: fill | allruns the AI director;get_longformshows them with the model's continuity level. - The catalogue marks Qwen3-TTS CustomVoice and VoiceDesign as taking instructions, as the engine reports them; dubs and stories ask one predicate.
Export audio
- History's takes have an Export button (and Export… in ⋯); the Studio's latest take, a take's details and Projects open the same Export audio dialog, which replaces the Save as… menu.
- Choose the format (WAV; M4A through the engine; MP3, FLAC and Opus with ffmpeg, greyed out with a pointer to Settings → Audio tools without it), the bit depth or bitrate, the sample rate and the channels; bring the file to −16, −18 or −23 LUFS with a true-peak ceiling; trim the silence at both ends; name the file and its title and artist tags; save the script and subtitles beside it. The dialog shows the size and length before you export, and remembers your choices for each kind of take (Studio, voice preview, converted recording, Local API).
Writing help no longer fails during a render
- The language model on this Mac now waits for its turn when a render, dub or batch is using the engine, instead of failing with "the engine is busy": writing help, the AI director, dub translation, transcript clean-up, the direction coach, phone calls and API/MCP requests go next, ahead of queued batch work (a running job is never interrupted). These short requests don't appear in the jobs list. Their time limits count from when the model starts.
- Dictation never waits for a render: while one runs, it types the polished text at once without the model's clean-up. The Tools direction coach shows 「等待当前任务完成…」 (Waiting for the current job to finish…) and, if the job is still running after 30 s, reads the note by keywords.
暂无中文说明,显示英文原文。