快速开始
安装 Sonano 后打开 App,欢迎页会启动本地引擎,并等待 `/v1/models` 与 `/voices` 同步完成后进入工作台。第一次生成建议从语音生成页面开始,先选择模型、输出语言和声音;如果模型权重或运行时还没准备好,按提示下载完成后再生成一段短文本。
1打开 App等待欢迎页完成本地引擎启动和模型 / 声音目录同步。
2进入语音生成在右侧设置栏选择模型、输出语言和兼容声音。
3准备模型与运行时如果当前模型显示未下载或运行时未安装,先在模型库按提示下载;进度会出现在任务与进度。
4生成短文本先用一两句话验证模型状态、声音选择和播放器链路。
5保存或复用播放、导出,或从历史把结果回填到当前工作区继续迭代。
- 本地服务默认监听
127.0.0.1:19280
- 生成、转写、声音转换都会进入统一任务、产物和历史系统
- 桌面 App 包含主路径运行环境;模型权重按需下载,不同模型仍有内存和磁盘要求
- 用户声音、历史、日志和模型缓存保存在本机,升级 App 默认不清空
curl -i http://127.0.0.1:19280/health
curl -i http://127.0.0.1:19280/v1/models
curl -i http://127.0.0.1:19280/voices?view=slim
系统要求
Sonano 当前面向 macOS 原生桌面工作流。本地推理路径大量依赖 MLX / Metal,因此 Apple Silicon 是推荐环境;模型越大,对内存和磁盘空间要求越高。
| 项目 | 建议 | 说明 |
| 系统 | macOS | macOS 26 或更新版本,Apple Silicon。公开下载尚未开放。 |
| 芯片 | 推荐 Apple Silicon | MLX 模型、Metal 运行时和本地大语言模型路线主要面向 Apple Silicon。 |
| 内存 | 8 GB 起,16 GB 及以上更适合大模型 | 模型页会标出各模型版本的推荐内存和下载体积;模型越大,越建议预留更多内存和磁盘空间。 |
| 磁盘 | 按模型和运行时增长 | 模型缓存、运行时、产物、日志和状态数据库分开统计。 |
| 媒体处理 | 安装包内置 FFmpeg | 用于视频音轨提取、媒体归一化和 MP3 / M4A 导出。 |
界面导览
Sonano 不是单页文本转语音表单,而是桌面声音工作台。左侧导航按创作、资源库和系统组织,中间是工作区,右侧设置栏管理当前模型、声音和参数,底部播放器负责试听与播放。
- 创作:语音生成、转写、声音转换等生产工作流
- 资源库:声音、模型、历史和请求审计等可复用资产和记录
- 系统:模型库、任务与进度、设置、本地引擎状态
- 右侧设置栏:跟随当前工作区变化,不把所有设置堆在同一个页面
典型使用路线
如果你不确定该从哪里开始,可以按目标选择路线。Sonano 的设计重点是让图形界面、普通 API 和 Agent 使用同一套模型、任务和产物系统,因此同一个结果可以在播放器、历史、导出和自动化里继续流转。
短视频 / 播客旁白
- 在语音生成中粘贴脚本,选择 Qwen3 或 Chatterbox 路线。
- 用生成队列生成多个候选,保留最自然的一条。
- 导出 WAV 交给剪辑软件,或导出 MP3 / M4A 快速分享。
有声书 / 长文朗读
- 在语音生成的有声书模式导入 EPUB、TXT 或 Markdown。
- 检查章节拆分,统一选择模型、输出语言和旁白声音。
- 逐章生成或补齐缺失章节,再合并导出 M4B、M4A、MP3 或 WAV。
字幕与转写审查
- 在转写页面导入音频或视频,本地提取音轨并转写。
- 检查分段、静音区间和 AI 清理建议。
- 导出 SRT / VTT / JSON,或应用“剪辑媒体”决策。
创建可复用声音
- 从声音库新建设计声音或克隆声音。
- 保持参考样本清晰、单人声、5-20 秒更稳定。
- 保存后在语音生成、声音转换和 Agent 请求中复用。
让 Agent 发声
- 在 Agent 接入页面安装 Sonano skill,或读取能力清单。
- 让 Agent 使用推荐默认值,提交本地请求。
- 用请求审计确认调用方、任务、产物和错误。
模型选择
模型由模型库管理。模型决定语言、声音、流式预听、声音资产、运行时准备方式,也会影响输入区可用的风格提示和内联标签。第一次使用不需要自己改环境变量或猜 Hugging Face 缓存目录;在模型库选择目标模型,Sonano 会提示需要下载的权重或运行时。
- 快速中文 / 英文旁白:优先
qwen3-tts-custom-voice。适合短文案、预设声音、快速试听和反复改稿。
- 固定声线或角色声:选择
qwen3-tts、omnivoice、chatterbox-* 或 voxcpm2。这些路线可以使用出厂、设计、克隆声音,适合品牌声线和多角色脚本。
- 多语言内容:优先查看 OmniVoice。先确认目标语言是否支持,再看该语言下有多少可试听声音;长尾语言可按需搜索 600+ 语言目录。
- 转写与字幕:优先 Qwen3-ASR;如果需要更广覆盖,可把 Whisper 作为备选。
- 声音转换:使用 Chatterbox VC。目标声音必须是 Sonano 管理的出厂、设计或克隆声音;模型内部预设声音不能作为转换目标。
- 长文本、批量生成或 Agent 自动化:重点看下载体积、推荐内存、是否需要额外运行时,以及结果是否进入历史、导出和请求审计。
先选模型,再选语言,再选声音这是语音生成主路径。语言切换后,声音列表会按当前模型能力和声音类型过滤。
预设声音和声音资产不是一类东西预设声音是模型自带的声音选项;声音资产是 Sonano 管理的出厂、设计或克隆声音,保存后可以跨语音生成、声音转换和 Agent 请求复用。
提示方式跟随模型变化CustomVoice 支持自然语言风格提示;OmniVoice 支持正文内联标签;VoxCPM 2 同时支持风格提示和内联标签。
模型下载和运行时安装要分开看有些模型只需要下载权重,有些还需要安装 Python 运行时;任务与进度会分别显示这些准备步骤。
完整模型矩阵、语言范围、模型版本和场景对照见 模型页。
语音生成
语音生成是主生产工作流:单条朗读、长文本分段、多角色脚本、有声书章节项目、生成队列、历史复用、分段查看和导出都在这里完成。页面左侧是脚本工作区,右侧是模型、声音和参数设置,底部播放器负责试听当前结果。
通用布局
- 左侧主编辑区:这是主要工作区。普通模式显示连续正文编辑框,多角色模式显示按角色和段落拆开的脚本编辑区,有声书模式显示书籍和章节列表。
- 设置 / 生成记录:右侧顶部可在设置和生成记录之间切换;设置用于当前生成,生成记录用于播放、复用、导出或删除历史结果。
- 最近生成:生成完成后会出现可播放记录,显示模式、声音、模型、时长和采样率;长文本结果还可打开分段详情。
- 底部播放器:当前音频会进入统一播放器,可播放、暂停、拖动进度、调整音量,方便边听边改稿。
语音引擎右侧语音引擎卡片显示当前模型、模型体积、采样率、语言数量等信息。点击 更改 可切换模型,切换后声音列表、提示方式和参数会随模型能力更新。
声音设置声音区会按当前模式变化。普通模式选择一个声音;多角色模式会列出角色和对应声音。若声音不支持当前输出语言,界面会提示。
参数和预处理参数区会按模型显示可调项,例如 CFG、步数等;文本预处理用于清理脚本、拆分段落或在生成前统一处理输入文本。
普通模式
普通模式适合单人旁白、短视频口播、提示音和通知文本。左侧是一个连续正文编辑区,输入或导入文本后,选择模型、输出语言和声音即可生成。
正文编辑区直接粘贴或输入脚本,底部会显示字符数。不同模型会在正文下方提供不同辅助输入:有的显示风格提示和快捷建议,有的显示可插入正文的内联标签。导入文本 可导入外部文稿,隐藏指令 可收起这些辅助输入,让编辑区更清爽。
生成前检查先确认右侧模型、语言和声音可用,再看是否需要风格提示、内联标签或参数调整。短文本可直接生成,长文本会自动进入分段任务。
如果你只是想整体改变语气,使用风格提示输入框;如果你想让某一句出现笑声、叹气或疑问语气,用内联标签插入到对应文本位置。具体可用方式会随当前模型变化。
多角色模式
多角色模式适合故事、对话、播客脚本和分角色旁白。它不是一个连续文本框,而是按“角色 + 段落”组织脚本,每个角色可以绑定不同声音,每个段落也可以单独生成试听。
AI 分析拆分脚本多角色模式可先点击 分析脚本。Sonano 会根据正文推断说话者、旁白和段落边界,并把长脚本拆成可单独生成的段落;分析过程中会显示“脚本分析中”。这个功能需要先在 设置 页配置文本 AI 后才能使用。
角色声音右侧角色声音区会列出每个角色和对应声音。你可以给旁白、小兔子、小星星等角色分别选择声音,新增角色,或试听某个角色的声音;如果声音不支持当前输出语言,界面会直接提示。
段落编辑区每个段落都会显示说话者标签和正文。你可以直接改段落文字、改说话者、插入新段落,也可以用段落右侧工具拆分/调整/删除段落。
单独生成试听不确定某句台词是否自然时,可先对单段点击 单独生成试听。生成时当前段落会显示“段落生成中”,完成后再决定是否继续改文本、换声音或生成完整脚本。
完整生成确认角色和段落后,点击底部 生成 会按段落顺序生成完整音频。底部会显示说话者数量、段落数量和任务状态,生成结果进入播放器和最近生成。
有声书模式
有声书模式适合长篇文章、课程脚本、小说草稿和需要按章节管理的朗读项目。它把长文保存为本地书籍项目,按章节生成音频,避免每次修改一章都重新处理整本书。
导入与分章可导入 EPUB、TXT 或 Markdown。Sonano 会生成书籍和章节草稿,你可以编辑章节标题与正文,调整顺序或删除不需要的章节。当前不做 PDF / OCR 导入。
统一声音第一版有声书使用右侧全局模型、输出语言和声音,不提供章节级 Voice override。适合旁白型长文和课程内容;多角色故事可先用多角色模式处理关键片段。
逐章生成可以只生成当前章节,也可以生成缺失章节。已生成章节可连续播放,播放时会高亮当前章节,便于检查整本书的节奏。
整书导出已生成章节可合并导出为 M4B、M4A、MP3 或 WAV,并生成 audiobook manifest。M4B 会写入书名、类型和章节时间点等基础元数据。
当前 EPUB / TXT / Markdown 文件导入是 App 侧能力;Agent 更适合提交结构化章节内容,完整 audiobook job 会在后续 API 中扩展。
生成结果
生成分段长文本、多角色任务或有声书章节会生成分段清单。分段详情会显示每段模型、声音、语言、时长、时间范围和参数,并支持播放、复制脚本或重新生成单段。
复用与导出生成记录里的结果可以复用回工作区继续修改,也可以导出音频。删除历史记录不会影响已经导出的文件。
curl -s -X POST http://127.0.0.1:19280/v1/audio/speech \
-H "Content-Type: application/json" \
-H "X-Sonano-Caller: Docs Example" \
-d '{"model":"qwen3-tts-custom-voice","voice":"Serena","language":"Chinese","input":"你好,欢迎使用 Sonano。","response_format":"wav"}' \
-o speech.wav
转写
转写用于把音频或视频变成可编辑文本、字幕时间线和可审查的媒体修改计划。它不只是“识别文字”,还会把全文、分段时间码、静音区间、文本清理建议和导出结果放在同一个工作流里。
通用流程
- 导入文件:点击 导入音频或视频 选择本地文件。视频会先由内置 FFmpeg 提取音轨,再进入转写流程。
- 选择模型和语言:默认可使用 Qwen3-ASR;如果需要更广语言覆盖,可把 Whisper 作为备选。语言下拉会影响识别和后续字幕输出。
- 开始转写:点击 转写 后,顶部按钮会显示进度;处理中,转写文本和时间线会在任务完成后统一刷新。
- 取消或换文件:文件名会显示在顶部导入区,旁边可移除当前文件;处理中可取消任务,避免长音频占用本地引擎。
- 先转写,再审查:静音审查和文本审查都依赖转写结果。未完成转写时,审查区只会提示先完成转写。
转写文本
全文阅读转写完成后,上方 转写文本 会显示完整识别结果,适合快速确认内容是否识别完整、语言是否选对、是否有明显漏段。
查找与复制点击搜索图标可在转写文本中查找关键词,并用上一个 / 下一个按钮定位。右侧复制按钮可复制全文;收起按钮可临时让出更多空间给时间线和审查区。
时间线
时间线把转写结果放回媒体时间轴。左侧是序号和时间范围,中间是文本,右侧是片段操作入口。
- 分段 / 单元:分段视图适合按句子或语义段落检查;单元视图适合检查更细的词、字、停顿或字幕边界。
- 高亮提示:重复、口头语、疑似冗余或被审查命中的词会在文本中高亮,方便定位问题,而不是让用户从全文里手动找。
- 片段操作:每行右侧的更多按钮可打开操作,包括播放原媒体、预览修改结果、高级片段修改、恢复原始等。
- 静音片段:采纳静音审查后,时间线会出现独立的静音行,显示静音时长和所在位置,便于确认剪辑是否合理。
审查
静音审查用于找出长停顿。你可以设置最短静音、能量兜底和保留上下文,再点击 检测静音。结果会列出候选区间,可播放静音、播放上下文、采纳或清除,也可以全部采纳 / 全部清除。
文本审查用于发现语气词、重复和重说。点击 执行 AI 分析 后,Sonano 会给出建议编辑和原因;你可以播放对应片段、采纳建议,或继续手动改。这个功能需要先在 设置 页配置文本 AI 后才能使用。
静音审查和文本审查是分开的:前者基于时间区间处理停顿,后者基于转写文本处理表达问题。文本审查属于文本 AI 功能,需要先在 设置 页完成相关配置;所有建议都会先展示给用户确认,不会直接黑箱改稿或剪媒体。
高级片段修改
当普通剪切效果不理想,或某一小段识别错误但不想重做整条音频时,可以从时间线片段进入 高级片段修改。
- 修改文本:只调整这一段的转写文本,用于修正错字、漏字或字幕内容。
- 通过声音转换重生成:保留原说话人的音色,先根据修改后的文本生成新片段,再转换回原音色,适合替换短句。
- 重新录音:需要人工补录时使用,避免为了一个片段重跑整段媒体。
- 预览再应用:修改前可预览效果,确认后再应用到时间线;不满意可恢复原始片段。
导出
| 导出对象 | 格式 / 操作 | 适用场景 |
| 源时间轴字幕 | TXT / SRT / VTT / JSON | 需要原始转写稿、字幕文件或结构化时间线数据时使用。 |
| 编辑后媒体 | 剪辑媒体 / 导出媒体 | 采纳静音、文本或片段修改后,把确认过的修改应用回媒体。 |
| 编辑后字幕 | SRT / VTT / JSON | 需要把清理后的文本和时间码交给剪辑软件、字幕工具或 Agent 时使用。 |
声音转换
声音转换用于把一段已有音频转换成另一个目标声音。它不是重新写稿或重新做文本转语音,而是在尽量保留原音频节奏、停顿和语气的前提下,更换说话人的音色。
页面布局
- 模型状态:顶部显示当前声音转换模型,例如 Chatterbox,以及是否已安装。模型未就绪时需要先下载或安装运行时。
- 源音频:左侧用于导入要被转换的音频。导入后会显示文件名、时长和播放按钮,可先确认原音频是否选对。
- 目标声音:右侧用于选择转换后的声音。卡片会显示声音名称、语言、性别、来源和标签,并提供试听按钮。
- 转换按钮:源音频和目标声音都选好后,转换声音 按钮才会可用;转换中会显示进度和取消入口。
源音频
源音频是你想“换声”的原始素材,可以是录音、旁白、短视频音轨或语音生成结果。Sonano 会先在本地引擎内把音频归一化为适合模型处理的格式,再送入声音转换运行时。
先试听再转换导入后建议先点击 播放音频,确认内容、时长和音量没有问题。源音频里的停顿、语速和情绪会影响转换后的自然度。
可以更换源音频如果选错文件,点击源音频卡片右上角的 更换 即可重新导入。更换源音频不会删除之前已经完成的转换结果。
目标声音
目标声音决定转换后的音色。这里选择的是 Sonano 管理的声音资产,而不是模型内部的临时预设。
- 可用目标:出厂声音、声音设计和克隆声音可以作为目标声音,因为它们有可追踪的参考音频。
- 不可用目标:预设声音没有独立参考音频,不能作为声音转换目标。
- 声音信息:目标声音卡片会展示语言、性别、来源和标签,选择前可以先试听,确认音色是否适合当前素材。
- 找不到合适声音:可以先到声音库创建声音设计或克隆声音,保存后再回到声音转换页面选择。
转换过程
正在转换点击 转换声音 后,页面会显示“正在转换”和进度条。处理中可以取消任务,避免长音频继续占用本地引擎。
结果试听转换完成后,页面会显示已生成音频时长,并在底部播放器中加载结果。你可以暂停、继续播放、拖动进度和调整音量,确认转换质量。
重新尝试如果结果不理想,通常先更换目标声音;如果原音频噪声大、混响重或多人重叠说话,建议先处理源音频再转换。
最近转换与导出
右侧 最近转换 会保留已完成结果,方便你对比不同目标声音或继续复用。
- 播放:直接试听某次转换结果,不必重新运行模型。
- 复用:把历史结果带回当前工作区,继续作为参考或再次导出。
- 导出音频:把转换结果导出为常用音频格式,用于剪辑软件、播客、视频或其他工具。
- 移除:删除不需要的历史项;已经导出的文件不会受到影响。
声音转换更适合单人、干净、说话清晰的音频。它会尽量保留原音频的内容和节奏,但不能保证把环境噪声、多人重叠或严重失真的素材修好。
声音库与声音资产
声音库是 Sonano 的声音资产中心。它不只是一个“选择声音”的下拉菜单,而是把内置声音、模型自带声音、你设计的新声音和你克隆/导入的声音统一管理起来,让语音生成、声音转换、API 和 Agent 都能复用同一套声音资源。
380 个可试听声音当前官网预览口径合并展示 317 个出厂声音与 63 个已有试听样本的预设声音。
覆盖 55 种语言中文和英文各 30 个,西班牙语 / 葡萄牙语各 12 个,日语 / 印地语各 10 个,其它目标语言至少 4 个。
围绕场景筛选可按来源、语言、性别、收藏和标签筛选,例如播客、新闻、教育、向导、亲和、自信、低沉、柔和。
需要时自己创建找不到合适声音时,可用“新建声音”选择“声音设计”或“声音克隆”;保存后可在语音生成、脚本角色、声音转换和 Agent 请求中反复复用。
在 App 中进入 资源库 > 声音 可以打开完整声音库。常见操作包括搜索名称或描述、按语言/性别/标签过滤、试听样本、收藏常用声音、查看/编辑元数据、重命名自建声音、删除不再需要的自定义声音。语音生成右侧设置栏的 浏览全部 会打开同一个声音库弹层,因此你不需要离开当前生成工作流就能挑选或更换声音。
- 快速挑选:先选择语音模型和输出语言,再打开声音列表;Sonano 会自动过滤当前模型和语言可用的声音。
- 试听确认:点击播放按钮先听参考样本,适合在播客、旁白、教学、新闻、角色对白等风格之间快速比较。
- 收藏常用声音:星标会作为本地偏好保存,适合把常用旁白、角色声、品牌声线放在前面。
- 创建新声音:点击 新建声音,用声音设计描述想要的声线,或用声音克隆上传/录制参考音频;完成后会自动进入同一个声音库。
- 跨工作流复用:同一个声音资产可被图形界面、OpenAI 兼容 API 和 Agent skill 复用;在接口里通常通过声音资产编号(
voice_asset_id)引用。
| 类型 | 用途 | 注意事项 |
预设preset | 模型内置声音,如 Qwen3 CustomVoice 的说话人或 Kokoro 声音。 | 请求时通常使用 voice,不作为声音转换目标。 |
出厂factory | Sonano 随软件提供的出厂声音。 | 有由 Sonano 管理的参考音频,可用于支持声音资产的语音模型和声音转换。 |
设计designed | 通过声音设计保存的新声音。 | 由设计提示词和样本沉淀为可复用声音资产。 |
克隆cloned | 通过参考音频创建的用户声音。 | 需要授权确认,并保留来源和可追踪元数据。 |
小经验:如果你只是想快速朗读一段中文或英文,先从预设声音开始;如果你想固定品牌声线、多人脚本角色、声音转换目标,优先使用出厂 / 设计 / 克隆这类带参考音频的声音资产。
模型
资源库里的 模型 页面用于管理本机可用的语音生成、转写和声音转换模型。它解决的是“当前有哪些模型、装没装、该下哪个版本、为什么某个工作流不可用”这类问题;入门里的模型选择则更偏使用场景推荐。
模型列表
- 模型类型:区分语音生成、转写、声音转换等能力。不同类型会出现在不同工作流里,例如 Qwen3-ASR 用于转写,Chatterbox 用于声音转换。
- 安装状态:查看已安装、未安装、下载中、运行时缺失或不可用等状态。未就绪的模型不会直接出现在可用工作流中。
- 模型信息:关注参数规模、量化版本、下载体积、推荐内存、语言范围和采样率。下载体积影响准备时间,推荐内存影响能否稳定运行。
- 能力标签:模型卡片会标出是否支持多语言、流式预听、声音资产、内联标签、声音转换或转写等能力。
下载与版本
按需下载模型权重不会一开始全部下载。进入模型页或工作流选择模型时,Sonano 会提示需要下载的模型版本,下载进度进入统一任务系统。
版本选择同一个模型可能有不同参数规模或量化版本。一般优先选择推荐版本;内存更小的机器优先选体积更小、推荐内存更低的版本。
运行时准备有些模型除了权重,还需要 Python 运行时或额外组件。模型页会把模型权重、运行时和依赖状态分开显示,方便排查卡在哪一步。
和工作流的关系
模型页是资源管理入口,工作流页面是使用入口。你可以先在模型页准备好模型,也可以在语音生成、转写或声音转换页面遇到未安装提示时再按需下载。
| 工作流 | 模型页关注点 | 使用时影响 |
| 语音生成 | 语言、声音入口、提示方式、流式预听、推荐内存 | 决定可选声音、风格提示、内联标签和生成速度。 |
| 转写 | 识别语言、时间戳能力、模型体积、运行时状态 | 决定可转写语言、时间线精度和处理速度。 |
| 声音转换 | 转换模型是否安装、是否支持声音资产目标 | 决定能否把源音频转换成出厂、设计或克隆声音。 |
常见排查
- 工作流里找不到模型:先确认模型类型是否匹配当前页面,再看模型状态是否已安装并可用。
- 声音列表为空:通常是模型、输出语言和声音类型不兼容。先切换语言或模型,再打开声音库筛选。
- 下载完成仍不可用:检查运行时是否安装完成,或在任务、历史与审计中查看失败原因。
- 内存不足或很慢:换用更小的量化版本,关闭其它占用内存的任务,或选择推荐内存更低的模型。
模型页面向本机资源管理;如果你只是想知道某个场景该选哪个模型,先看入门里的 模型选择。
任务、历史与审计
历史页负责保存可复用结果,请求审计负责记录本地 API / Agent 调用,任务与进度负责展示下载、生成、转写、转换和媒体处理的运行状态。三者共用同一套任务和产物系统,但用途不同:历史面向“结果复用”,审计面向“谁调用了什么”,任务面向“现在跑到哪了”。
历史页
- 类型切换:顶部可在语音生成、声音转换、转写和请求审计之间切换。前三类是用户结果历史,请求审计是本地 API 调用记录。
- 搜索历史:搜索框可按文本片段、文件名、声音、模型或任务信息查找历史项。
- 列表 / 网格:列表视图适合看长文本、时间和操作按钮;网格视图适合快速浏览较多音频结果。
- 选择与删除:点击 选择 可进入批量选择模式;删除只清理选中的历史记录,全部清除 会清空当前类型的历史。
- 刷新:刷新按钮会重新读取本地历史和审计数据,适合刚完成任务但列表尚未更新时使用。
三类结果历史
语音生成历史展示生成文本摘要、模式、声音、模型、时长、采样率和生成时间。操作包含播放、复用、审计、查看产物和导出。多角色或分段结果会显示片段数量。
声音转换历史展示源音频文件、目标声音、转换模型和时长,例如“小兔子.wav → 好奇童声”。可播放、查看审计、查看产物、导出音频或删除。
转写历史展示导入文件名、转写文本摘要、转写模型、语言和片段数量。可复用回转写页面继续查看时间线,也可导出 TXT / SRT / VTT / JSON 等结果。
复用不是简单复制文件:语音生成会尽量回填文本、声音和模型;转写会带回转写结果和时间线;声音转换会带回源音频和目标声音信息,方便继续迭代。
请求审计
请求审计记录本地能力调用,适合排查“是谁触发了这个任务”“用了哪个模型或声音”“请求失败在哪里”。它会包含 App 自己的调用,也会包含外部脚本或 Agent 的调用。
- 概览信息:顶部显示今日请求数和最近活动时间,方便判断本机能力最近是否被频繁调用。
- 最近请求:列表展示能力类型、子任务、时间、状态和请求 id,例如语音生成、转写、文本审查、静音审查、声音转换、分析脚本等。
- 状态边界:已接受表示请求已进入任务系统;已完成表示任务成功产出结果;失败记录会保留错误信息,便于排障。
- 详情面板:选择一条请求后,右侧会显示能力、任务参数、声音、模型、调用方、来源地址、请求端点和请求 id。
- 复制字段:请求、请求 id、任务 id 等字段旁边提供复制按钮,方便反馈问题或调试 Agent 调用。
任务与进度
任务与进度弹窗用于查看正在运行或刚完成的后台任务,覆盖模型下载、运行时安装、语音生成、转写、声音转换和媒体处理。
状态筛选顶部可按全部、下载中、处理中、已完成、已取消、失败筛选任务,也可以只显示运行中任务。
进度信息每条任务会显示任务名、能力类型、状态、进度条、输出大小或时长、开始时间和可用操作。长任务可用这里确认是否卡住。
清理完成项任务完成后可以清理已完成记录,保持任务面板干净。清理任务记录不等于删除历史结果或已导出的文件。
清理策略
- 删除历史:删除的是结果记录和关联产物;已经导出到外部位置的文件不会被回收。
- 清理任务:只清理任务列表中的完成项,不影响历史页里保存的可复用结果。
- 审计保留:请求审计用于本地可解释性和排障,存储页可配置保留和清理策略。
- 反馈问题:遇到异常时,优先提供任务 id、请求 id、模型、声音、调用方和日志片段。
导出与文件格式
Sonano 内部以可追踪产物管理结果,用户导出时再选择交付格式。正式音频产物以 WAV 作为源文件,App 侧提供常用导出格式。
| 工作流 | 可导出内容 | 说明 |
| 语音生成 | WAV / MP3 / M4A | 单条、长文本分段和多角色脚本结果都可导出。 |
| 有声书 | M4B / M4A / MP3 / WAV + manifest | 按章节合并长文项目;M4B 会写入章节时间点等基础元数据。 |
| 转写 | TXT / SRT / VTT / JSON / 原媒体 / 剪辑后媒体 | 字幕和转写 JSON 可供后续工具继续处理。 |
| 声音转换 | WAV / MP3 / M4A | 输出结果仍可进入历史和播放器。 |
| Agent | 产物元数据 / 下载端点 | Agent 应引用产物,而不是猜本地文件路径。 |
Agent 接入
Agent 接入页面用于把 Sonano 的本地声音能力交给外部 Agent 使用。这里可以确认本地服务状态、复制服务地址、安装 Skill、集成 Hermes,并查看 Agent 可调用的能力入口。
服务状态
- 运行状态:页面顶部会显示本地引擎是否运行、版本号和监听地址。默认只监听
127.0.0.1,面向本机 App、脚本和 Agent。
- 服务地址:复制 URL 后可交给本机脚本或 Agent 使用,例如
http://127.0.0.1:19280。
- 健康检查:点击健康检查可确认本地服务是否可达;如果失败,先回到顶部状态和任务与进度里查看本地引擎是否启动。
- 请求审计:Agent 触发的能力调用会进入请求审计,便于用户看到调用方、端点、请求 id、任务和错误边界。
Hermes 集成
Hermes 集成用于把 Sonano 接入 Hermes 自身的语音能力。点击 安装 Hermes 集成 后,Sonano 会按当前 App 约定写入所需配置;安装完成后,Hermes 可以通过 Sonano 的本地能力生成、转写或转换声音。
给 Agent 安装 Skill
Skill 是推荐的接入方式。安装后,Agent 不需要自己猜接口参数,而是根据 Sonano 提供的说明读取能力清单、选择声音和模型,并把长任务交给任务系统追踪。
Shared(.agents)安装到共享目录后,Cursor、Codex、OpenCode、OpenClaw、Pi 等支持 ~/.agents/skills 的 Agent 可共用同一份 Skill,避免每个客户端重复安装。
已支持客户端页面会列出 OpenClaw、Hermes Agent、Cursor、Claude Code、Codex、OpenCode、Pi 等客户端的检测和安装状态。已安装项可移除或重新安装,未安装项可一键安装。
其它 Agent如果列表里没有你的 Agent,可在页面底部打开 Skill 文件夹、复制 Skill 路径,或复制一段给 Agent 的接入消息,按该 Agent 的文档放到用户级 skills / rules 目录。
如果同一个 Agent 同时支持共享目录和自己的专属目录,优先使用 App 推荐的安装项;已有旧版 Skill 时,使用“重新安装”更新到当前版本。
可用操作
页面底部会列出 Agent 可调用的本地能力,并提供复制示例。Agent 应先做能力发现,再按当前模型、语言和声音状态调用具体能力。
| 能力 | 端点 | 说明 |
| 健康 | GET /health | 确认本地引擎是否可达。 |
| Agent 清单(精简) | GET /agent/manifest?view=slim | 读取协议版本、能力列表、推荐默认值和结构化错误约定。 |
| 模型 | GET /v1/models | 查看模型、版本、下载和运行时状态。 |
| 声音(精简) | GET /voices?view=slim | 按语言、性别和声音类型选择可用声音。 |
| 语音生成 | POST /v1/audio/speech | 同步生成短音频;长文本建议跟踪任务和产物。 |
| 转写 | POST /v1/audio/transcriptions | 提交音频或视频转写,返回文本和时间线相关结果。 |
| 声音转换 | POST /v1/jobs/audio/voice-conversion | 异步把本地音频转换成受管目标声音。 |
调用建议
BASE="http://127.0.0.1:19280"
curl -s "$BASE/health"
curl -s "$BASE/agent/manifest?view=slim"
curl -s "$BASE/v1/models"
curl -s "$BASE/voices?view=slim&status=ready"
- 调用方建议传
X-Sonano-Caller,并使用和客户端一致的名称,例如 Codex、Claude Code、OpenCode、Cursor、OpenClaw 或 Pi。
- 长任务不要轮询文件路径,应使用任务状态和产物 id;结果进入历史、产物和请求审计。
- Agent 不应硬编码声音 id、模型版本或本地缓存路径,应该先读取清单、模型和声音列表。
- 文本 AI 相关能力需要用户先在 设置 页配置文本 AI,Agent 调用前应检查能力清单和错误提示。
设置
设置页集中管理应用行为、本地引擎、文本 AI、存储、审计和隐私。它不是只改界面偏好的地方:多角色脚本分析、转写文本审查、Agent 后台调用、历史保留、缓存清理和麦克风权限,都需要先在这里确认前置项。
通用
外观选择主题色和浅色 / 深色 / 跟随系统模式。主题会影响 App 主界面和文档截图里的强调色,但不会改变生成结果或本地数据。
语言应用语言切换后会立即生效。它只影响界面显示,不会自动改变语音生成或转写的输出语言。
应用行为可设置登录时启动 Sonano、登录时启动本地引擎、显示资源监控,以及关闭窗口时隐藏主界面。若希望 Agent 在不打开主窗口时也能调用本地服务,建议开启登录时启动本地引擎。
版本升级当前版本、自动检查更新和更新状态会在这里显示。升级默认替换 App bundle,本地数据继续保留在 Application Support 和 Caches。
本地引擎
本地引擎负责实际的模型、任务和本地 API 服务。Agent 接入、语音生成、转写、声音转换、模型下载和任务进度都依赖它。
| 项目 | 说明 |
| 主机 | 固定为 127.0.0.1,只允许本机回环访问。不要把它当成公网服务暴露。 |
| 默认端口 | 默认 19280。修改端口后需要点击 应用并重启,只影响由 Sonano 管理的本地引擎。 |
| 生命周期 | 可设置退出 Sonano 时是否停止本地引擎。若需要 Agent 在后台持续调用,关闭 App 前要确认这项策略。 |
| 当前端点 | 运行中会显示类似 http://127.0.0.1:19280 的地址;Agent、脚本和健康检查都使用这个地址。 |
- 健康检查:服务异常时,先检查本地引擎状态,再查看任务与进度、请求审计和日志。
- 资源监控:状态区显示 CPU、内存和本地服务状态,适合判断模型运行是否占用过高。
- 端口冲突:如果欢迎页或 Agent 接入页连接失败,先确认端口没有被其它进程占用,再重启本地引擎。
文本 AI
文本 AI 用于理解和整理文本,不负责直接生成声音。多角色脚本分析、转写文本审查、部分文本预处理和 Agent 的文本智能能力,都需要先在这里完成配置。
选择提供方先选择提供方 API,例如 DeepSeek,或选择自定义 OpenAI 兼容提供方来接第三方网关 / 自带 Base URL 的服务。
填写连接信息外部 API 通常需要 API 密钥、基础 URL 和模型 ID。密钥默认隐藏,可按需点击眼睛图标查看。
测试连接测试连接使用上次保存的设置;保存并测试连接会先写入当前字段,再发送一次短测试请求。
功能边界文本 AI 会帮助拆分脚本、识别说话者、建议删除语气词或重复,但不会自动生成或剪辑最终结果;建议仍会回到对应工作流让用户确认。
- 语音生成:多角色模式里的 分析脚本 需要文本 AI,用于拆分段落、识别说话者和生成角色草稿。
- 转写:文本审查里的 执行 AI 分析 需要文本 AI,用于发现语气词、重复和重说。
- Agent:Agent 调用文本整理类能力前,应先确认文本 AI 已配置且测试连接成功。
- 网络边界:使用外部提供方时,请求会发往你配置的服务;不配置文本 AI 时,这些写作辅助功能不会调用外部 API。
如果你在语音生成里看不到“分析脚本”,或在转写里无法执行文本审查,先回到设置页检查文本 AI 配置。
存储
存储设置用于理解和清理 Sonano 的本地数据。这里会把模型缓存、受管运行时、生成产物、音色库、状态数据库、审计日志和临时文件分开统计,方便判断到底是谁占用了磁盘。
| 类别 | 常见位置 / 用途 |
| 生成音频 | ~/Library/Application Support/Sonano/artifacts,语音生成、转写和声音转换任务产生的音频与产物。 |
| 自定义音色库 | ~/Library/Application Support/Sonano/voices,声音设计、声音克隆和导入声音的受管样本。 |
| 模型缓存 | ~/.sonano/models/hf-cache,已下载模型权重。通常体积最大,清理前确认是否还需要离线使用。 |
| 受管运行时 | ~/Library/Application Support/Sonano/runtime,按需安装的本地引擎依赖层。 |
| 状态数据库 | ~/Library/Application Support/Sonano/state/sonano.sqlite3,任务、历史、音色元数据和审计策略。 |
| 诊断日志 | ~/Library/Application Support/Sonano/logs,排查本地引擎、模型、导出和 Agent 调用问题。 |
- 存储概览:模型缓存通常按占本机磁盘的比例展示;运行时和应用 / 任务数据则按 Sonano 本地数据组内比例展示。
- 请求审计:可设置是否记录本地 API 请求、保留天数、是否隐藏系统噪声,以及是否只显示面向用户的有意义请求。
- 操作历史:可设置历史保留天数,并决定是否把 Agent / API 请求加入语音生成、转写和声音转换的历史列表。
- 清理入口:可分别清理临时文件、未引用产物、过期请求审计、过期操作历史和旧任务记录。清理策略会影响 App 启动和后台定期清理。
- 相关入口:存储页可以跳到历史、音色库、模型库和审计中心,分别处理单条结果、自定义声音、本地模型和请求明细。
- 危险操作:清除所有本地生成数据会删除生成产物、历史、自定义音色和相关临时文件;模型缓存和诊断日志会保留。
隐私
Sonano 默认本地优先。隐私页用于控制敏感音频数据、声音克隆确认、源录音保留和 macOS 权限,让用户明确知道哪些数据留在本机、哪些操作需要额外确认。
- 本地服务默认使用回环地址
127.0.0.1。
- 声音克隆确认:保存或使用克隆声音前可以要求确认,适合避免误用未经授权的声音样本。
- 克隆后保留源录音:开启后会保留原始参考录音;关闭后更利于减少敏感音频留存。
- 麦克风权限:只有在 Sonano 内录制声音克隆样本时才需要。未授权时,可以在隐私页发起 macOS 权限请求。
- 本地优先:Sonano 默认不会上传音频。除非你主动下载模型、检查更新,或配置并使用外部文本 AI,核心音频工作流都在本机完成。
API 契约速查
Sonano 会尽量保持本地 API 稳定。Agent 和脚本不应猜测界面状态,而应该通过能力发现、模型状态、声音列表、任务状态和产物元数据组合调用。
| 场景 | 端点 | 调用建议 |
| 能力发现 | GET /agent/manifest?view=slim | 先读取协议版本、能力列表、推荐默认值和结构化错误约定。 |
| 健康检查 | GET /health | 确认本地引擎是否可达;GPU 忙时可能返回运行时繁忙状态。 |
| 模型清单 | GET /v1/models | 检查模型、版本、下载、运行时和就绪状态。 |
| 声音清单 | GET /voices?view=slim | 按模型、语言、声音类型选择兼容声音;不要硬编码过期声音 id。 |
| 语音生成 | POST /v1/audio/speech | 短请求可同步返回音频;长任务或复杂脚本应跟踪任务和产物。 |
| 流式预听 | POST /v1/audio/speech/stream | 适合图形界面或 Agent 边生成边播放;正式产物仍应引用产物 id。 |
| 转写 | POST /v1/audio/transcriptions | 音频 / 视频输入会进入本地归一化和 STT 流程,结果可导出字幕。 |
| 产物 | GET /v1/artifacts/{id} | 用产物 id 获取元数据或下载路径,不直接猜 Application Support 下的文件。 |
BASE="http://127.0.0.1:19280"
curl -s "$BASE/agent/manifest?view=slim" | jq .
curl -s "$BASE/v1/models" | jq '.data[] | {id,status,active_variant}'
curl -s "$BASE/voices?view=slim&status=ready" | jq '.voices[0]'
本地数据与升级
Sonano 的应用包、用户数据、模型缓存、运行时、日志和状态数据库分开存放。升级默认只替换 App,不清空 Application Support 或 Caches。
| 内容 | 位置 / 说明 |
| 模型缓存 | ~/.sonano/models/hf-cache/ 或 SONANO_MODEL_CACHE_ROOT 覆盖目录。 |
| 用户数据 | ~/Library/Application Support/Sonano/,包含声音、运行时、状态库、日志等。 |
| 临时与草稿 | ~/Library/Caches/Sonano/,用于预听草稿、临时生成和字节码缓存。 |
| 日志 | ~/Library/Application Support/Sonano/logs/,设置和排障入口可打开。 |
| FFmpeg | 安装包内置,用于媒体归一化与 MP3 / M4A 导出。 |
隐私、审计与清理
Sonano 的核心边界是本地优先。默认服务面向本机回环地址,本地能力调用可审计,声音克隆和声音设计会进入 Sonano 管理的声音资产系统。
- 默认服务地址是
127.0.0.1,面向本机图形界面、脚本和 Agent
- 声音克隆 / 声音设计保留来源、语言、授权确认和元数据
- 请求审计可隐藏系统噪声,只保留有意义能力调用
- 存储页可清理临时文件、过期历史、过期审计和本地数据
更新、授权与发布状态
当前官网先保留下载和价格结构。正式发布时,下载页会提供稳定安装包、版本说明和更新入口;价格页会承接Free + Pro 一次性买断。
- 应用更新:检查发布清单、查看发布说明、打开下载页
- 升级边界:替换应用包,不自动清空用户数据和模型缓存
- 正式安装包和系统安全提示说明会以下载页最终状态为准
- Pro 授权、账号和权益会在商业化阶段接入
排障
遇到问题时,先确认本地引擎、模型状态、任务状态和日志。大多数问题可以定位到:本地引擎未启动、模型未下载、运行时缺失、语言/声音不兼容、Agent 使用了错误的服务地址。
| 现象 | 检查 | 处理 |
| 欢迎页停住 | /health、日志目录、本地引擎设置。 | 重试启动,打开日志目录,确认端口没有被其它进程占用。 |
| 模型未下载 | 模型库中对应模型版本的下载状态。 | 在模型库下载;下载进度可在任务与进度查看。 |
| 运行时未安装 | OmniVoice / VoxCPM2 的运行时就绪状态。 | 先安装运行时,再下载模型权重;两者是不同任务。 |
| 声音不可用 | 当前模型是否接受预设声音或声音资产。 | 预设声音使用模型内部声音名;出厂 / 设计 / 克隆声音使用声音资产编号(voice_asset_id)。 |
| Agent 连接失败 | 服务地址、代理环境、127.0.0.1 / localhost。 | 读取能力清单,传 X-Sonano-Caller,避免代理劫持本机回环请求。 |
| 导出失败 | FFmpeg、产物是否存在、目标格式。 | 优先从历史重新导出;必要时查看日志和存储页中的产物状态。 |
FAQ
这里收集的是用户最容易卡住的概念差异:模型权重、运行时、声音类型、本地数据和 Agent 调用边界。如果你已经遇到具体错误,建议先看上面的 排障 表,再用这里确认原因。
模型与运行时
为什么模型显示未下载?
这通常表示 Sonano 已具备运行该模型所需的本地引擎,但模型权重还不在 Sonano 管理的缓存里。进入 模型库 下载对应模型即可;下载进度会出现在任务与进度。
模型与运行时
为什么有些模型显示运行时未安装?
部分模型的 Python 运行时按需安装到 Application Support/Sonano/,不会写回应用包。先安装运行时,再下载模型权重;两类任务都会保留进度和失败状态。
声音资产
为什么声音转换不能用预设声音?
声音转换需要可追踪的参考音频作为目标音色。预设声音是模型内部 voice id,不一定有可复用参考样本;因此声音转换只接受出厂、设计和克隆声音。
Agent/API
Agent 能不能直接读写本地文件?
不建议让 Agent 猜路径。推荐通过 job、artifact id 和 API 读取结果,这样历史、审计、清理和权限边界都能保留;文件路径只作为用户明确导出后的结果使用。
本地数据
卸载 App 会删除模型和声音吗?
只删除 Sonano.app 不会自动删除模型、声音、历史和日志。它们保存在 Application Support 与 Caches 下,需要在 设置 > 存储里显式清理。
离线使用
能不能完全离线使用?
已下载的模型和已安装的运行时可以离线使用。显式下载模型、安装运行时、检查更新,以及依赖外部提供方的文本 AI 功能仍需要网络。
反馈信息包
如果需要反馈问题,最有帮助的信息不是一整段“不能用”,而是能把本地引擎、模型、任务和日志串起来的最小上下文。下面这些信息可以让支持排障快很多。
环境Sonano 版本、macOS 版本、芯片、内存、是否使用打包版 App。
能力状态/health、相关 /v1/models 条目、声音 id 和语言。
任务线索任务 id、请求 id、产物 id、失败时的结构化错误码。
日志~/Library/Application Support/Sonano/logs/ 中相关时间段片段。
联系支持
正式发布前,这里先作为支持入口占位。用户反馈问题时,建议附上 Sonano 版本、macOS 版本、芯片、模型 id、任务 id、是否通过 Agent 调用,以及相关日志片段。
- 打开日志目录:
~/Library/Application Support/Sonano/logs/
- 复制本地引擎状态:
GET /health
- 复制模型状态:
GET /v1/models 中对应模型条目
- 复制任务 id:任务与进度或 API 返回的
job_id