Skip to content

showkeyjar/Sonas

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

声象 Sonas

所言即所见 —— AI辅助演讲可视化工具

简介

声象 Sonas 是一款"所言即所见"的AI辅助演示工具,通过实时语音分析,自动生成与演讲内容匹配的视觉画面,帮助演讲者更生动地传达信息。

功能特性

  • 🎤 实时语音识别 - 说话同时转写为文字
  • 🎙️ 本地 Whisper 模式 - 可切换到本地音频录制 + Whisper 转写链路
  • ✍️ 文本试跑 / 兜底 - 浏览器不支持语音或仅想快速试跑时,可直接输入文本
  • 📚 术语表热词纠错 - 可配置品牌词、产品名、专有术语的标准写法
  • 🎯 ASR 热词偏置 - 本地 Whisper 会从术语表自动生成热词提示,提升品牌词识别稳定性
  • 🤫 静音切分转写 - 本地 Whisper 模式会根据静音自动提交语音片段,而不是固定时长硬切
  • 🚚 排队式准流转写 - 本地 Whisper 会按片段顺序排队上传,减少连续说话时的结果卡顿
  • 🔁 常驻 Whisper worker - 本地 adapter 会复用同一个 Whisper 进程处理连续分段,减少反复冷启动
  • 🌊 会话式流式回传基础 - 本地 Whisper 现在支持 session + 事件流回传,前端不必每段都同步等待结果返回
  • 🧠 服务端会话分段 - 支持连续上传原始音频块,由后端 session 负责静音/长句切段后再转写,更接近真正持续流式
  • 🌿 轻量自适应 VAD - 服务端分段会参考当前噪声地板动态调整触发阈值,比固定 RMS 阈值更能适应真实环境
  • 长句更早切段 - 连续长句会在更早的微停顿处先提交小批次,降低等待整段结束的延迟
  • 🔗 切段尾部保留衔接 - 低延迟切段会保留少量尾部上下文,减少长句在切点处断裂
  • 🧭 低延迟模式状态可见 - 可直接看到当前是静音切分、微停顿预切还是长句快切,以及尾部衔接是否生效
  • 🔀 回传模式状态可见 - 可直接看到当前本地转写走的是流式回传还是普通队列回退
  • 📊 队列与在途状态可见 - 可区分本地待发送片段、后端处理中片段和流式连接是否真正建立
  • 🛰️ 后端队列事件直达前端 - 流式链路会同步后端接收、排队和处理状态,减少仅靠前端估算造成的误差
  • 💓 流式心跳与失活识别 - 长时间彩排时可持续收到心跳,前端也能识别“已连接但疑似失活”的链路状态
  • 🔄 流式异常可重连 - 当流式链路失活或回退到普通队列时,可在当前本地转写会话里直接尝试重连
  • 🩺 会话级诊断可见 - 可直接看到当前本地转写会话已运行多久、流式已连接多久,以及重连/失活/回退次数
  • 📄 诊断报告可单独导出 - 可直接导出一份本地 ASR 诊断 Markdown 报告,便于排障、复盘和交接
  • 🔁 服务端分段失败可重试 - 会话分段模式下失败片段也可重新排队转写,不必因为后端接管切段而失去重试能力
  • 🎚️ 现代采集层优先 - 浏览器侧会优先使用 AudioWorklet 采集音频,并在必要时自动回退到 ScriptProcessor
  • 📉 噪声地板与阈值可见 - 本地状态栏会显示当前自适应 VAD 的大致噪声地板和触发阈值,便于排查环境噪声问题
  • 📈 最近批次耗时可见 - 可直接看到最近几段本地转写的平均耗时、最新耗时和最慢耗时
  • 🧪 按切段策略拆分耗时 - 可分别看到微停顿预切、长句快切、静音切分三类路径的大致耗时
  • 🧠 切段阈值轻量自适应 - 系统会根据最近几段的真实耗时,在更快切、平衡、更稳切之间小幅调节
  • 🎚️ 切段策略可锁定 - 可在自动、自适应之外手动锁定更快切、平衡或更稳切,用于稳定彩排
  • 💡 策略建议可见 - 系统会根据最近真实耗时直接给出更快切、平衡或更稳切的建议
  • 🧠 短暂停顿聚合生成 - 本地 Whisper 的相邻短分段会先合并成更完整的一句,再触发画面生成
  • 聚合状态可见 - 可直接看到系统是否正在等待短暂停顿结束,以便把碎片合成一句
  • ✍️ 聚合句子草稿可见 - 聚合中的那句话会先以草稿形式显示出来,便于理解即将出图的内容
  • 🎛️ 聚合草稿可操作 - 可直接用当前草稿提前出图,或丢弃这句重新说
  • 🧾 聚合草稿进入时间线 - 聚合中的句子会以临时草稿卡片出现在转写面板里
  • ✏️ 草稿可送入编辑区 - 聚合草稿可一键送入“文本试跑 / 兜底”区域,轻改后再生成
  • 🔗 编辑来源可追踪 - 从聚合草稿送入编辑区后,生成结果会保留“来自聚合草稿”的来源信息
  • 🪢 草稿来源双向可见 - 编辑稿会显示源自哪些 Whisper 分段,原分段也会标记自己已汇入编辑稿
  • 🎯 来源链可导航 - 点击来源链后,可直接定位并短暂高亮对应的 Whisper 原分段
  • ↔️ 来源链双向跳转 - 既能从编辑稿跳回原分段,也能从原分段跳到对应编辑稿
  • 🔍 来源链聚焦视图 - 可临时只看某条编辑稿及其相关原分段,复盘时更聚焦
  • 🖼️ 聚焦时联动画面上下文 - 进入来源链聚焦后,会同步展开相关画面主题与 Prompt 摘要
  • 📦 聚焦链可单独导出 - 当前聚焦的一条来源链可直接导出为局部 JSON 或 HTML 复盘包
  • 👀 本地转写队列可视化 - 可直接看到 Whisper 是否正在处理以及还有多少片段在排队
  • 🧩 分段时间线可见 - 本地转写面板会标出每一段的时间、状态和完成情况
  • ⏱️ 分段耗时与失败态 - 可看到每段 Whisper 是否失败以及大致处理耗时
  • 🔁 失败分段可重试 - 某一段 Whisper 失败后,可直接单条重提而不是整段重讲
  • 🧾 失败原因可见 - 时间线会保留失败分段的错误摘要,便于快速定位问题
  • 🎯 分段可单独重生成 - 可直接基于某一条完成分段重新生成当前画面
  • 🚦 画面生成串行队列 - 连续分段会按顺序进入生成队列,避免画面更新互相抢占
  • 关键分段收藏导出 - 可收藏时间线里的关键句子,并单独导出为 JSON
  • 🗂️ 章节化收藏 - 收藏分段可命名、排序,并按章节顺序导出
  • 📦 章节工程包导出 - 导出内容会显式带上章节标题、顺序、时间、章节摘要和关联画面资产
  • 🧾 离线故事板导出 - 可直接导出可阅读的 HTML 故事板,适合交接、复盘和演讲排练
  • 🖼️ 分段关联画面资产 - 每条分段可带上最后一次关联的画面、Prompt 和匹配主题
  • 🧠 智能语义理解 - 分析关键词、主题、情绪,并构建更稳定的图像 Prompt
  • 🎨 多风格画面生成 - 7 种视觉风格可选
  • 🔌 运行态与接线可视化 - 明确显示当前语音、ComfyUI、Ollama、OpenAI、Unsplash、内置图库的可用状态
  • 🧭 单机就绪度判断 - 侧栏会直接告诉你当前是否“可直接彩排”、仅适合试跑,还是还在基础配置阶段
  • 🛠️ 待处理动作提示 - 会按优先级列出当前最该补的依赖、推荐命令和兜底建议,减少本地排障成本
  • 🧯 针对性修复命令 - 当 Whisper、Ollama 或本地 adapter 未就绪时,会直接给出可复制的修复命令或 .env.local 片段
  • 🧩 建议 .env.local 片段 - 会根据当前环境自动整理出前端回退链路和本地模型参数建议,方便直接起草配置
  • 🪜 首次启动路径 - 会把“先做哪一步、做完会解锁什么能力”按顺序显示出来,降低新机器第一次配置成本
  • 🧰 推荐落地方案 - 会把当前最适合的单机模型档位、完整 .env.local 模板和启动命令汇总成一张可复制、可下载的落地卡片
  • 🟢 当前机器推荐 .env.local - 若检测到本机已有可复用的 Whisper 缓存,会优先生成带真实路径的专用配置,并支持直接导出模板文件
  • 🧪 导入 .env.local 校验 - 可直接导入现有配置文件,对照当前机器推荐模板检查缺失项、不一致项和可选项,生成最小修正片段,自动推荐下一条复验命令,并支持立即刷新运行状态查看是否真的生效
  • 🩹 一键修正后启动 - 可先按当前机器建议自动备份并修正 .env.local,再立刻拉起 Sonas Studio,减少“已经修好但本轮启动还在吃旧配置”的落差
  • 🗺️ 档位专属落地路径 - 三档模型方案都会各自附带 .env.local 模板和启动命令,便于按机器能力直接落地
  • 🧭 当前机器安装向导 - 会基于当前环境压缩出一条推荐路径,直接告诉你为什么选这档、还差几步、下一步先做什么
  • 🧳 运行时诊断包导出 - 可导出当前环境、安装向导、推荐档位、本地 ASR 状态、配置校验、复验结果和自动恢复摘要,便于远程协作排障
  • 🧾 诊断包可回看 - 导出的运行时诊断包也可重新导入到 Sonas 里查看关键结论、推荐档位和待处理动作
  • 🚀 推荐工作模式 - 系统会根据当前环境直接建议先用本地 Whisper、浏览器语音还是文本兜底
  • 🎯 首次自动预设首帧策略 - 新机器首次进入时,若尚未手动调整相关设置,Sonas 会按当前运行状态自动预选更容易成功的输入模式、首帧延迟与本地聚合策略
  • 🧭 首次试跑引导卡 - 首次打开且还没有会话记录时,界面会直接给出推荐输入方式、当前最该补的一步、文本试跑入口,以及 .env.local 校验 / 诊断导入入口
  • 🛟 本地链路自动稳态恢复 - 当本地 Whisper 出现积压、重连、失活或回退时,Sonas 会临时切到更稳的出图/成句/低延迟策略,待链路恢复后再退出
  • 📋 启动清单可复制 - 关键启动步骤会整理成步骤清单,并支持一键复制建议命令;完整配置模板可直接下载
  • 🗂️ 最近会话留存 - 自动保存最近生成结果,便于演讲彩排和回看
  • 💾 会话导入导出 - 可将当前会话导出为 JSON,也可重新导入恢复现场状态
  • ▶️ 轻量会话复盘 - 可按时间顺序自动回放最近一段会话的文案与画面
  • ⏯️ 工程级回放控制 - 复盘时支持播放、暂停、上一幕、下一幕和时间线拖动
  • 低延迟响应 - 语音到画面快速呈现
  • ⌨️ 快捷键支持 - Ctrl+Space 快速启停

快速开始

前置要求

  • Node.js 18+
  • Chrome / Edge / Safari 浏览器(需要支持 Web Speech API)

安装

npm install

配置本地 ASR(推荐)

如果你想使用“本地 Whisper”语音模式:

pip install -r server/requirements-asr.txt

可选环境变量:

WHISPER_MODEL=large-v3-turbo
WHISPER_MODEL_PATH=output/models/faster-whisper-large-v3-turbo
WHISPER_LANGUAGE=zh
WHISPER_DEVICE=auto
WHISPER_COMPUTE_TYPE=auto

如果 Hugging Face 下载链路不稳定,推荐直接把 CTranslate2 模型目录下载到本地,然后通过 WHISPER_MODEL_PATH 指向它。 例如本项目在 2026 年 6 月 6 日的实测中,使用 ModelScope 镜像拉取 mobiuslabsgmbh/faster-whisper-large-v3-turbo 后,可以正常完成本地转写。

git clone --depth 1 https://www.modelscope.cn/mobiuslabsgmbh/faster-whisper-large-v3-turbo.git output/models/faster-whisper-large-v3-turbo

推荐直接把 WHISPER_MODEL_PATH 指向 output/models/faster-whisper-large-v3-turbo 这类目录名。 从当前版本开始,Sonas 也会自动探测 output/models/ 下已有的 faster-whisper-* 本地缓存,并在运行状态里提示“已缓存但未接线”的情况。

检查本地 ASR 是否可用:

npm run asr:health

从 2026 年 6 月 13 日这版开始,这个健康检查会真实尝试加载当前 WHISPER_MODELWHISPER_MODEL_PATH 指向的模型,而不只是检查 faster-whisper 是否已安装。 如果这里失败,右侧“运行状态”里的 Whisper 状态也会同步显示真实错误,而不是误报为“已就绪”。 从 2026 年 6 月 14 日这版开始,npm run asr:health 也会自动读取项目根目录里的 .env.local / .env,不必额外手动导出同名环境变量。 若没有显式配置 WHISPER_MODEL_PATH,但 output/models/ 下已经存在与当前模型名匹配的 faster-whisper-* 缓存目录,Sonas 也会优先自动接入这份本地缓存。

建议再跑一遍整机体检:

npm run doctor

这条命令会直接检查 .env.local、Whisper、Ollama、ComfyUI、adapter 和云端回退配置,并给出下一步修复建议。 它也会区分“adapter 进程已经在线”和“ComfyUI 图像后端真正在线”这两层状态,避免把本地图像链路误判成已经可用。 从 2026 年 6 月 14 日这版开始,ComfyUI 的健康检查还会继续确认 COMFYUI_CHECKPOINT 是否真的存在,避免服务已启动但工作流加载的模型名其实无效。 从 2026 年 6 月 14 日这版开始,doctor 还会按当前机器状态输出一份有顺序的本地启动 runbook,直接告诉你先做哪一步、执行什么命令、做完再验证什么。 从 2026 年 6 月 19 日这轮产品化校准开始,doctorstudio 还会额外告诉你当前机器更接近“默认单机主线”还是“高配探索路径”,避免把普通单机推荐和高配实验建议混在一起。 同一版本开始,doctor:envdoctor:patch 生成的文件头也会直接写明当前策略轨道和推荐说明,便于离线 review 或转交别人继续配置。 从 2026 年 6 月 19 日这版开始,doctor 还支持直接生成一份当前机器推荐的 .env.local.sonas.recommended 模板,便于先 review 再合并到正式 .env.local。推荐直接使用快捷脚本:

npm run doctor:env

如果你已经有一份 .env.local,更稳的方式通常是先生成最小修正片段,只改当前机器真正建议调整的键:

npm run doctor:patch

确认补丁内容没有问题后,也可以让 doctor 先自动备份现有 .env.local,再把补丁并回去:

npm run doctor:apply-patch

如果你更想直接走最短路径,让 Sonas 先按当前机器建议修正 .env.local,再马上把 Studio 拉起来,可以直接运行:

npm run studio:fix

如果你想把 Sonas 自己负责的本地进程一把拉起,可以直接运行:

npm run studio

这条命令会先读取 doctor 的 JSON 诊断结果,打印当前机器的启动 runbook,然后自动拉起:

  • npm run server(如果 .env.local 已启用本地 adapter)
  • npm run dev

它不会替你安装或自动启动 Ollama / ComfyUI,但会在启动前明确告诉你当前还缺哪些外部依赖。 如果你想在启动前顺手生成一份当前机器推荐的配置模板,也可以这样运行:

npm run studio -- --write-env-local

或者直接使用:

npm run studio:env

如果你更想保留现有 .env.local 并只拿到最小修正建议,也可以直接使用:

npm run studio:patch

如果你希望 Studio 在启动前先自动把当前机器建议的最小补丁并回 .env.local,并且用更新后的配置直接拉起 Sonas,则可以使用:

npm run studio:fix

配置图像生成链路(推荐)

在项目根目录创建 .env.local

# 开源模型后端(ComfyUI adapter)配置
VITE_ENABLE_COMFY_ADAPTER=true
VITE_IMAGE_BACKEND_URL=http://127.0.0.1:8787

# 可选:OpenAI 作为云端二级回退
VITE_OPENAI_API_KEY=你的OpenAI_API_Key

从 2026 年 6 月 14 日这版开始,npm run server 也会自动读取项目根目录下的 .env.local / .env。 如果你只配置了 VITE_IMAGE_BACKEND_URL 而没有额外设置 PORT,本地 adapter 会默认复用这个地址里的端口,减少前后端端口不一致的问题。

默认链路优先级:

  • 语音:本地 Whisper -> 浏览器 Web Speech API
  • 语义:Ollama -> OpenAI -> 规则分析
  • 图像:ComfyUI adapter -> OpenAI -> Unsplash -> 内置图库

启动本地 AI adapter(新开一个终端)

# 你的 ComfyUI 服务默认应运行在 http://127.0.0.1:8188
# 你的 Ollama 服务默认应运行在 http://127.0.0.1:11434
npm run server

如果你在 .env.local 里把 VITE_IMAGE_BACKEND_URL 改成了别的本地端口,例如 http://127.0.0.1:8788,而又没有单独设置 PORT,这条命令会自动跟随该端口启动。

可选后端环境变量:

PORT=8787  # 可选;若显式设置,请与 VITE_IMAGE_BACKEND_URL 的端口保持一致
COMFYUI_BASE_URL=http://127.0.0.1:8188
COMFYUI_CHECKPOINT=sd_xl_base_1.0.safetensors
OLLAMA_BASE_URL=http://127.0.0.1:11434
OLLAMA_MODEL=qwen3:8b

如果你没有显式设置 PORT,Sonas 会默认复用 VITE_IMAGE_BACKEND_URL 里的端口。 如果你显式写了 PORT,请确保它和 VITE_IMAGE_BACKEND_URL 指向的是同一个本地 adapter 端口。

推荐先准备本地模型:

ollama pull qwen3:8b

从 2026 年 6 月 14 日这版开始,如果 .env.local 里的 OLLAMA_MODEL 还没装,但当前机器上已经有同家族、最接近的本地模型,Sonas 会优先自动改用那一份,并在 npm run doctor 与界面诊断里提示你把配置对齐到真实已安装模型。

启动开发服务器

npm run dev

然后打开浏览器访问 http://localhost:3000

构建生产版本

npm run build

构建产物将输出到 dist 目录。

使用说明

  1. 查看运行状态 - 先确认右侧“运行状态”里本地后端或回退链路是否可用 若某项未就绪,优先使用“当前最该处理”和“启动清单”里的复制命令排查 若你在新机器上第一次搭环境,可先照着“建议 .env.local 片段”和“首次启动路径”逐步补齐
  2. 选择语音模式 - 在设置中选择“浏览器实时”或“本地 Whisper”
  3. 配置术语表 - 在设置中维护类似 Sonas => sonnus, sonus, 声象 的规则
  4. 调整本地语音参数 - 可设置“语音灵敏度”“静音切分”和“句级聚合”速度
  5. 选择风格 - 在右侧面板选择喜欢的视觉风格(写实/插画/3D/水墨/赛博朋克/扁平/动漫)
  6. 开始演讲 - 点击开始按钮并授权麦克风,系统会转写并生成匹配画面
  7. 文本试跑 - 若暂时不想开麦,可在“文本兜底”里直接输入一段内容生成画面
  8. 回看历史 - 在“最近会话”中快速恢复之前生成过的结果
  9. 轻量复盘 - 点击“最近会话”里的复盘按钮,按时间顺序自动回放整段内容
  10. 控制回放 - 复盘开始后,可使用播放/暂停、上一幕、下一幕和时间线拖动精细查看
  11. 导出收藏章节 - 在转写面板右上角可导出收藏章节的 JSON 工程包或 HTML 故事板
  12. 导出会话 - 点击右上角导出按钮,将当前会话保存为 JSON
  13. 导入恢复 - 点击右上角导入按钮,重新载入之前导出的 Sonas 会话文件
  14. 快捷键 - 使用 Ctrl + Space 开始/停止,Esc 停止

支持的语言

  • 中文 (zh-CN)
  • English (en-US)

项目结构

.
├── src/
│   ├── services/          # 核心服务
│   │   ├── speechRecognition.ts   # 语音识别
│   │   ├── semanticAnalysis.ts    # 语义理解
│   │   └── imageGeneration.ts     # 图像生成
│   ├── types/             # TypeScript 类型定义
│   ├── styles/            # 样式文件
│   ├── App.tsx            # 主应用组件
│   └── main.tsx           # 入口文件
├── public/                # 静态资源
├── server/                # ComfyUI 适配层
├── dist/                  # 构建产物
├── DESIGN.md             # 产品设计文档
└── package.json

当前技术栈

  • React 18 + TypeScript
  • Vite 6
  • Web Speech API
  • 基于规则 + Ollama / OpenAI 回退的语义分析与语音纠错
  • faster-whisper 作为本地 ASR 接口
  • ComfyUI adapter(本地开源图像模型推理)
  • Ollama qwen3:8b 作为默认本地语义模型
  • OpenAI gpt-4o-mini / gpt-image-1 作为云端纠错与图像回退

当前产品化进度

当前版本已从“概念原型”推进到“单机可试用”的第三阶段:

  • 可观测:用户能看到当前正在使用哪条生成链路
  • 可兜底:语音不可用时仍可通过文本生成验证产品
  • 可留存:最近会话会自动保存到本地 localStorage
  • 可交付:当前会话可导出为 JSON,也可再次导入恢复当前工作现场
  • 可复盘:最近一次会话已经可以按时间顺序自动回放,适合彩排和复查节奏
  • 可控场:复盘流程支持播放暂停与时间线跳转,更适合逐幕排练
  • 可本地化:语义纠错与场景理解优先走本地 Ollama
  • 可扩展:本地 Whisper ASR 接口已接入,前端可切换到本地转写模式
  • 可定制:术语表支持品牌词、专有名词、热词别名的本地标准化
  • 可增强:本地 Whisper 会从术语表抽取 canonical 术语作为 hotwords
  • 可自然:本地 Whisper 已改为基于静音的自动分段,而不是固定 4 秒切片
  • 可连续:本地 Whisper 分段会顺序排队处理,连续演讲时更接近实时出字
  • 可降延迟:本地 adapter 现已优先复用常驻 Whisper worker,连续分段不再每次重新加载模型
  • 可更及时:前端现在会更早切出长句片段,常驻 worker 能更快开始转写,而不是等到很长一段后再统一提交
  • 可更连贯:更早切段时会保留少量尾部上下文,连续长句的识别衔接更自然
  • 可感知:本地状态栏现在会直接显示低延迟切段策略与尾部衔接状态,更容易判断系统当前节奏
  • 可量化:低延迟链路现在不只是“感觉更快”,还能直接看到最近几段的真实转写耗时
  • 可比较:不同切段策略的真实耗时现在能拆开看,更容易判断哪种模式最适合当前演讲节奏
  • 可自调:本地低延迟链路会参考最近耗时轻量调整切段节奏,不必完全依赖固定阈值
  • 可控场:若你希望每次彩排都保持同一切段节奏,现在可以直接锁定低延迟策略
  • 可决策:即使不懂这些切段参数,也能直接根据系统给出的建议来选更合适的策略
  • 可成句:本地 Whisper 的短暂停顿结果会先做句级聚合,减少一句话被切碎后频繁出图
  • 可感知:前端会明确提示系统是否正在“聚合一句话”,更容易理解为什么还没立刻出图
  • 可预判:聚合提示里会展示当前句子草稿,方便在出图前判断语义是否已经收拢完整
  • 可干预:如果系统已经聚合出可用句子,用户可直接提前出图;若句子不理想,也能立刻丢弃重说
  • 可定位:聚合草稿现在在时间线里有明确位置,更容易区分“已完成分段”和“待成句草稿”
  • 可微调:若草稿大意已对但措辞还想再润一下,可先送入文本兜底区再手动生成
  • 可追溯:经过编辑区再生成的内容,时间线里仍能看出它最初来自聚合草稿
  • 可回链:原始 Whisper 分段和编辑后生成的文本之间现在能双向对照,更适合复盘和排查
  • 可导航:来源链不只是说明关系,还能直接带你跳到对应原分段,复盘更快
  • 可往返:现在原始 Whisper 分段和编辑稿之间都能互相跳转,复盘链路更完整
  • 可聚焦:来源链现在不仅能跳转,还能暂时切成“只看这一条链”的工作视图
  • 可联想:聚焦来源链时能同时看到相关画面线索,文本与视觉结果更容易对照复盘
  • 可带走:来源链聚焦视图里的局部上下文现在可以单独导出,便于做针对性复盘或交接
  • 可观测:本地 Whisper 的处理与排队状态已在前端可见,更容易判断是忙碌还是异常
  • 可诊断:每个本地转写片段都有独立状态,便于定位是某一段慢还是整条链路慢
  • 可排障:失败分段会直接留在时间线上,便于判断是偶发识别失败还是持续性后端异常
  • 可恢复:失败分段支持单条重试,减少因偶发错误导致的整段返工
  • 可定位:失败分段会带上错误原因摘要,能更快区分超时、后端不可达或服务异常
  • 可编辑:时间线里的已完成分段可以单独重生成画面,适合快速试不同表达片段
  • 可稳定:连续多段完成时,画面生成会自动排队串行执行,不会因为并发触发而打架
  • 可连贯:后一段会等待前一张画面完成切换后再继续,减少连续演讲时的视觉抢占
  • 可抑制重复:自动语音分段会跳过短时间内的重复出图,但手动“重生成”仍可强制执行
  • 可沉淀:关键分段可以收藏并单独导出,方便做演讲提纲和素材回收
  • 可编排:收藏分段支持章节标题和顺序调整,更接近真正的演讲工程
  • 可回收:收藏导出的片段同时保留关联画面信息,方便后续复盘和二次创作
  • 可交接:章节导出已升级为工程包结构,内含章节总览、封面级元数据与画面资产,便于后续复盘、再编辑或交给他人继续整理
  • 可阅读:收藏章节还可直接导出为离线 HTML 故事板,不必借助额外工具即可查看
  • 可回退:本地模型不可用时,会自动退回到云端或静态图库

推荐单机模型栈

以 2026 年 6 月 19 日这轮产品化校准为基准,Sonas 当前建议按机器能力分三档准备本地模型:

1. 极速试跑

  • 文本理解:qwen3:4b
  • 可替代:gemma3n:e4bgemma3:4b
  • 语音识别:distil-large-v3
  • 图像生成:ComfyUI + FLUX.1-schnell 或轻量 SDXL 工作流

适合先跑通整条链路,尤其是 16GB 内存、8GB 左右显存或笔记本设备。若当前机器更吃紧,Gemma 3n 这类轻量同档模型通常比“盲目追最新大模型”更实用。

2. 推荐平衡

  • 文本理解:qwen3:8b
  • 可替代:gemma3:12b
  • 语音识别:whisper-large-v3-turbo
  • 图像生成:ComfyUI + FLUX.1-schnell 或稳定 SDXL 工作流

这是当前 Sonas 最推荐的“普通单机可用”默认组合,兼顾语音连续性、语义质量与图像生成速度。这里的“推荐”不是指参数最新,而是指更容易在普通单机上长期稳定彩排、复现和排障。

3. 质量优先

  • 文本理解:qwen3:14b
  • 可替代:gemma3:27b
  • 语音识别:whisper-large-v3
  • 图像生成:ComfyUI + FLUX.1-dev 或更重的高质量 SDXL 工作流

适合更强的桌面机,接受更慢的首帧和更高显存占用,换取更稳定的语义理解和更强画质上限。若你已经在更强机器上稳定跑通更新一代的大模型,也更适合先把它们放到这一档实验,而不是直接改写 Sonas 的普通单机默认推荐。

截至 2026 年 6 月 19 日这轮校准,Qwen3 仍适合作为 Sonas 的默认主推本地文本模型;如果当前机器已经优先装了 Gemma 3 / Gemma 3n,同档位也完全可以继续沿用,不必为了“对齐推荐清单”再额外重复拉一套 Qwen。

同一时间点上,更前沿的新开源模型也值得持续关注。比如 Google 已在 2026 年 4 月 2 日发布 Gemma 4,但 Sonas 当前没有直接把它写成“普通单机默认值”,原因不是它不先进,而是 Sonas 现阶段更看重三件事:

  • 普通单机今天就能稳定跑起来
  • Ollama / 本地推理链路更容易接入和排障
  • 语音、语义、图像三条链路需要一起平衡,而不是只追单一模型上限

换句话说,Sonas 当前的产品化策略是:

  • 默认主线继续使用 Qwen3 / Gemma 3 / Gemma 3n + whisper-large-v3-turbo + FLUX.1-schnell
  • 更强机器再往 qwen3:14b / gemma3:27b + whisper-large-v3 + FLUX.1-dev 这一档走
  • 更新一代的大模型先作为“高配实验路径”观察,而不是直接覆盖普通单机默认推荐

这也是 Sonas 接下来继续产品化时的主要技术方向。

下一阶段若要继续向真正可交付产品演进,优先建议补齐:

  • 更完整的 Whisper/VAD/WebSocket 流式语音链路,替代当前前端静音检测 + 分段上传模式
  • 更强的本地视觉模型工作流与连续编辑能力
  • 更完整的演讲工程回放能力,例如倍速、章节标记与可编辑时间线
  • 更完整的会话工程管理与品牌风格模板
  • 后端服务化与多用户配置管理

注意事项

  • 本项目使用浏览器原生 Web Speech API 进行语音识别,需要浏览器支持
  • 本地 Whisper 模式需要额外安装 faster-whisper
  • 已支持开源 ComfyUI 的实时生成与连续编辑(优先)
  • 当前默认接线更适合基础 txt2img 与基于上一张图的 img2img 连续编辑;ControlNet、局部重绘、放大等复杂链路更适合作为后续增强或在 ComfyUI 中单独调试
  • Ollama 未启动时,系统会自动退回到规则分析或 OpenAI
  • OpenAI 仅作为可选二级回退,未配置时可继续使用
  • 若 ComfyUI 未加载 COMFYUI_CHECKPOINT 指定模型,请按实际模型名修改后端环境变量

许可证

MIT

About

声象 Sonas 所言即所见

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors