学而不思则罔,思而不学则殆。——孔子

VoiceStudio:让声音创作回到本地工作流

项目地址:https://github.com/debpalash/VoiceStudio

声音并不只是被播放出来的内容。

它可以是一段需要被复刻的语气,一种尚未成形的人声设想,一部等待配音的视频,一次随时捕捉的口述记录,也可以是一段准备被整理为故事或有声书的文字。不同声音任务看似分散,却往往围绕同一个问题展开:如何让录制、生成、转写、配音与管理这些环节,不再彼此割裂。

VoiceStudio 尝试把这些工作放进同一个本地优先的空间。

它是一款开源语音创作工具,提供声音克隆、声音设计、视频配音、听写、转写与有声书创作能力,并覆盖 646 种语言。项目以本地工作流为核心,默认使用由 k2-fsa OmniVoice 驱动的 VoiceStudio,也允许使用者选择其他引擎。

它不是单一功能的语音生成界面,而更像一间围绕声音展开的工作室。

在这里,声音可以被克隆,可以被设计,可以被用于视频,也可以从语音回到文字。不同创作任务不再各自漂浮,而是逐渐形成一条从输入到生成、从生成到管理、从管理到复用的工作流。

你的声音,你的工作流

VoiceStudio 在 README 中用三个方向概括自身能力:创作、制作与连接。

创作部分包含克隆声音与设计声音。

制作部分涵盖带有时间控制的影片配音、故事、有声书与批处理任务。

连接部分则提供本地 API、面向智能代理的 MCP、可复用配方与监视文件夹。

这三部分共同构成 VoiceStudio 的整体形态。

声音不是只能被一次性生成的输出物。它可以成为一个可保存、可调整、可复用的对象;视频配音也不只是导入文件后等待结果,而可以进入更完整的制作流程;本地 API 与 MCP 则让语音能力不只停留在桌面界面中,也能够进入自动化与智能代理相关场景。

VoiceStudio 所关心的,不只是让一段文字开口说话。

它还希望让声音任务能够被组织起来。

声音克隆,让参考录音成为创作起点

声音克隆是 VoiceStudio 的重要工作区之一。

使用者可以选择已有声音,也可以添加清晰的参考录音,然后输入文本并生成语音。在需要时,应用会提示安装对应模型。

这种流程让声音生成拥有一个明确的起点。

文本决定想说什么。

参考录音或已选声音决定由怎样的声音说出来。

二者相遇后,生成结果便不再只是普通朗读,而会进入更具个人特征的声音创作过程。

VoiceStudio 的桌面工作区围绕这一过程设计。左侧区域用于保存的声音与最近生成内容,中间是可滚动的脚本文本区域,右侧则承载参考音频与制作设置。生成完成后,播放与导出操作会出现在脚本编辑区域下方。

这让声音克隆不只是一次按钮点击,而是一种可以持续调整的制作过程。

声音设计,让声音从描述中诞生

如果说声音克隆是从已有参考出发,那么声音设计则是从描述出发。

VoiceStudio 提供声音设计工作区,让使用者能够描述希望得到的声音。它让声音不必完全依赖已有录音,也可以从对声音特质的想象开始。

一段声音可以是项目所需要的表达方式,也可以是某次创作中尚未存在的角色感与语气感。声音设计为这种需求提供了另一条路径:不是先找到声音,再开始使用,而是先描述方向,再让声音逐步出现。

这让声音创作拥有两种不同入口。

一种是从参考中延续。

另一种是从设想中构建。

无论从哪一侧开始,VoiceStudio 都试图让声音成为可编辑、可选择、可继续使用的创作资源。

视频配音,不让画面独自等待声音

视频中的声音有自己的时间关系。

画面在推进,语言需要落在合适的位置,语气与节奏也需要跟随内容变化。VoiceStudio 提供视频配音能力,并强调带有时间控制的语音制作流程。

项目还支持批量配音,并能够监视选定的本地文件夹。

当新视频文件进入被监视的文件夹后,系统会在两次间隔五秒的扫描中确认文件大小与修改时间保持一致,再将其加入队列。当前选择的语言、声音与背景设置会应用到新到达的视频上。

已存在的文件会被跳过。

暂停会阻止之后进入的文件继续排队。

停止操作或离开批量处理界面,则会释放对文件夹的访问。

这种机制让视频配音从单个任务延展到连续处理。它不只是处理眼前的一段视频,也可以等待新的文件进入工作流。

对于需要重复处理多个视频内容的场景而言,监视文件夹像一位安静等待的助手。文件抵达之后,工作流才开始继续运转。

听写与转写,让声音回到文字

声音创作并不总是从文字开始。

有时,一句话先被说出口,之后才需要被记录、整理或继续编辑。VoiceStudio 提供听写与转写能力,让口述内容能够回到文字工作流中。

听写使用浮动组件。

它让语音输入不必被固定在某个单独的大型界面里,而可以以更轻量的方式参与日常工作。对于正在写作、记录想法或处理内容的人来说,声音可以成为另一种输入方式。

转写则让已有音频中的内容能够被整理为文本。

在声音与文字之间,VoiceStudio 不只提供从文本到声音的生成路径,也保留了从声音回到文字的通道。两种方向共同存在,使声音工作室不再只是发声的地方,也成为接收、理解与整理声音的空间。

故事、有声书与批处理任务

VoiceStudio 将故事、有声书与批处理任务放入制作能力之中。

这意味着,它所处理的并不只是短句生成,也能够面向更连续的文本与更具篇幅感的声音内容。

故事需要叙述。

有声书需要持续的声音表达。

批处理则需要让重复性任务拥有更清晰的组织方式。

这些内容共同指向一个更完整的使用图景:声音生成不是永远围绕单次输出展开,它也可能服务于连续内容、规模化内容与可重复执行的工作流程。

在 VoiceStudio 中,声音可以被用于一段简短文本,也可以沿着更长的叙述继续延伸。

本地优先,让生成留在自己的设备上

VoiceStudio 的本地工作流运行在使用者自己的硬件上。

远程服务是可选项。

使用情况分析需要获得同意。

这三点为项目定下了清晰基调:本地运行不是一个隐藏在设置深处的附加选项,而是它的重要基础。

声音克隆、声音设计、配音与其他语音工作不必天然依赖远程服务才能开始。VoiceStudio 将本地设备视为工作流发生的主要位置,让使用者可以在自己的环境中进行生成与管理。

桌面应用会管理本地 FastAPI 后端。

启动时,应用会检查本地后端是否已经运行。若后端正在运行,桌面端会连接到它;若没有运行,应用会检查准备好的 Python 环境,并直接启动与管理 Python 后端。

本地生成因此不只是理念,也被放进桌面应用的运行机制之中。

不同硬件,也有不同的运行路径

语音模型与声音生成对硬件环境有不同需求。VoiceStudio 在 README 中明确列出了多种硬件支持情况。

在 Windows 与 Linux 上,NVIDIA GPU 支持 CUDA 加速。

Apple Silicon 支持 Metal 加速。

没有独立显卡的设备也可以使用 CPU 运行,只是速度会更慢。对于这类设备,安装流程会使用较小的 CPU 版 PyTorch,并需要约 5 GB 可用磁盘空间。

Windows on ARM 被标记为实验性支持。项目说明这一环境使用原生 ARM64 应用、在模拟环境中运行 x64 Python 后端,并采用 CPU 模式。

Intel Mac 则只支持应用界面,并需要连接远程后端。

这种区分没有把所有环境描述成完全相同的体验,而是让硬件能力与实际运行方式被明确呈现。拥有可加速硬件时,生成可以走向 CUDA 或 Metal 路径;没有专用 GPU 时,CPU 仍然是一条可用路线。

VoiceStudio 不把声音创作限制在单一种硬件配置中,而是在不同环境下提供不同的可行路径。

CPU 也能成为声音工作站的一部分

VoiceStudio 对无独立 GPU 的使用场景做了专门处理。

在受支持的 Linux 与 Windows 主机上,如果没有 NVIDIA 驱动,bun run setup:api 与打包版设置流程会选择仅 CPU 的 PyTorch。源代码安装流程也会检查 nvidia-smi。

这种设计避免在不具备 NVIDIA 环境的设备上下载 CUDA 库。

对于 Linux,使用者还可以显式选择 CPU 版依赖:

1
OMNIVOICE_TORCH_VARIANT=cpu bun run setup:api

在 Windows PowerShell 中,可以这样设置:

1
2
$env:OMNIVOICE_TORCH_VARIANT = "cpu"
bun run setup:api

项目也支持在 Linux 上选择 rocm,或在未被自动识别的 NVIDIA GPU 与 GPU 容器中显式指定 cuda。

CPU 推理仍然需要下载模型,并需要足够的系统内存。OmniVoice 在 CPU 上默认使用 float32。对于无法使用的 NVIDIA 驱动,安装过程会给出警告,使能够使用 CPU 的引擎仍可继续使用,而仅支持 GPU 的引擎则保持不可用状态。

这份设计让硬件限制不必直接变成创作入口的终点。

Electron 成为唯一维护中的桌面应用

VoiceStudio 当前的桌面应用以 Electron 为核心。

README 明确表示,Electron 是唯一仍在维护的桌面应用与 Web UI。Tauri 版本停留在 0.5.3,并已归档。

对于已有 Tauri 安装的用户,项目提供迁移路径,要求单独安装 Electron 版本。

Electron 桌面端使用 Electron、electron-vite、Vite、Rolldown、TypeScript、Bun、React、Tailwind、shadcn、Base UI、TanStack 系列工具与 i18next 等组件构建。

界面中的文本通过本地化资源管理,而不是硬编码到界面中。

桌面应用不仅承担界面展示,也负责协调本地后端、预加载层、应用协议与 API 代理。渲染层不会直接请求本地后端地址,而是使用应用内部的 /api 路径。在开发环境中,渲染服务将请求代理到后端;在生产环境中,则通过桌面应用的特权协议与主进程代理处理。

这让桌面端不只是一个外壳。

它也是本地声音工作流的调度中心。

从源代码启动声音工作室

对于希望从源代码运行 Electron 预览版的使用者,VoiceStudio 提供了一条清晰路径。

准备好项目依赖后,可以执行:

1
2
3
bun install
bun run setup:api
bun run dev

其中,bun run setup:api 用于在启动 Electron 前准备 Python 依赖,bun run dev 则启动主进程、预加载层与渲染层,并支持热更新。

如果需要构建并启动隔离的打包 Electron 应用,可以使用:

1
bun run smoke-test

如果需要进一步进行网络化的托管运行时安装检查,可以附加安装参数:

1
bun run smoke-test -- --install

项目还提供类型检查、Electron 检查、测试、构建与发行相关命令:

1
2
3
4
5
bun run typecheck
bun run check:electron
bun run test
bun run build
bun run dist

这些命令组成了从开发、测试到打包的基本路径。声音工作流需要稳定,桌面应用本身也需要通过相应的质量检查来维持可运行状态。

本地 API 与 MCP,让声音能力进入自动化流程

VoiceStudio 不只服务于直接使用桌面界面的人。

它提供本地 API 与 MCP,面向智能代理和自动化工作流开放连接方式。项目还提供可复用配方与监视文件夹,使声音任务可以被组织为更连续的流程。

README 中还提供了针对编码代理的安装指令。使用者可以把安装与验证要求交给支持的编码代理执行。项目的代理指南涵盖硬件检测、复用已有数据、在下载模型前进行询问,以及执行一次测试生成。

VoiceStudio 也提供可安装的代理技能。使用者可以选择面向音频工作流的 voicestudio,或面向仓库维护的 voicestudio-maintainer。

这让语音能力不再只停留在鼠标点击与窗口操作中。

它可以被纳入更广义的自动化流程,让智能代理、脚本化任务与本地服务之间建立连接。

保存、导出与再次导入声音

声音生成一次之后,并不一定就结束了。

VoiceStudio 提供保存声音、导入本地音频与视频片段、预览内容、删除内容,以及将声音用于克隆、故事或有声书工作流的能力。

已保存的声音可以导出为可移植的 .ovsvoice 文件包。

在导出时,可以决定是否包含原始参考音频。导出的文件包也能够再次通过导入功能被打开。

这让声音不只是一次性的生成结果。

它可以被整理、携带、再次使用,并成为之后声音工作流的一部分。一个已经建立好的声音配置不必永远停留在某一次项目中,也可以在新的场景中被重新调用。

项目还支持对导入的片段进行裁剪。裁剪功能提供内联波形编辑器、可移动选择区域、精确时间字段、缩放与循环预览。保存后会生成一个最长十五秒的独立片段,同时保留原始内容。

声音管理因此不只是存放文件,而是将声音素材放进可以继续处理的空间。

从脚本到生成,保持创作过程可控

VoiceStudio 的克隆工作区对生成准备状态有明确要求。

只有当脚本文本不为空,并且已经选择可接受的参考文件,或加载了带有参考音频的已保存克隆声音时,合成操作才会处于可用状态。

录制、清理与文件准备过程也会阻止提交。

当缺少必要输入时,应用会在界面中给出引导,例如打开参考面板或已保存声音列表,而不是只弹出错误提示。即便如此,服务端验证仍然保持最终权威,用于处理文件被移除或无法解码等情况。

当没有选择可用参考时,克隆流程会先展示内联声音选择器。

已保存声音、上传与录音入口都可以直接在主要内容区域中使用。选择好声音后,脚本编辑器会出现并获得焦点。更换声音时,当前草稿会被保留,也可以取消更换。

这些细节让声音生成的过程更像一个被照看的工作台。

它不会假设所有条件都已经准备好,而是在每一步提醒创作所需的输入是否齐全。

界面不只是容器,也是创作节奏的一部分

VoiceStudio 的桌面工作区包含多个可调整区域。

左侧侧栏用于保存的声音与最近生成内容。

中央区域用于脚本编辑。

右侧检查器用于参考音频与制作设置。

侧栏与检查器都支持拖拽调整宽度,也支持在聚焦分隔线后使用方向键调整,并可以双击恢复默认状态。相关宽度、可见性、所选标签页与检查器选择会被保存在本地。

快速搜索可以通过快捷键打开,用于查找视图、声音、生成结果与生成操作。

设置界面提供外观与常规选项,包括主题、字体、界面缩放与自动播放生成输出等内容。即使后端尚未准备完毕,设置仍然可以访问。

VoiceStudio 还提供多套本地调色方案,包括 VoiceStudio Original、Canopy、Current、Hearth 与 Orchid。不同外观可以保留各自的配色选择,系统模式会跟随操作系统外观变化。

这些界面能力并不直接生成声音,却让声音创作拥有更适合长期使用的工作环境。

声音工作往往需要反复试听、修改文本、更换参考、调整参数与查看历史。一个能够记住布局与偏好的工作区,会让这些反复发生的动作更自然地延续下去。

646 种语言,让声音不被单一语言限制

VoiceStudio 支持 646 种语言。

这使它不只面向某一种语言的声音生成与转写需求。文本、声音、配音、有声书与听写都可能跨越不同语言环境,而多语言支持让这间声音工作室能够容纳更多表达方式。

语言不只是文字的差异。

它还包含发音、节奏、叙述方式与声音表达中的细微变化。VoiceStudio 将多语言能力写入项目最核心的介绍中,也说明它希望处理的不是狭窄的语音场景,而是更广泛的声音创作需求。

开源应用与独立的模型条件

VoiceStudio 的应用使用 AGPL-3.0 许可证。

README 同时说明,模型权重、分词器、声音与生成输出的相关条件是独立存在的。付费应用许可证也不会改变开源应用的 AGPL-3.0 条件。

这使项目中的不同部分拥有清晰边界。

应用本身以开源许可发布。

模型与声音相关内容则可能遵循各自的条件。

对于声音创作工具而言,这种区分尤其重要。软件、模型、输入参考与生成结果并不必然处在同一套规则之下。VoiceStudio 将这些边界明确呈现,让使用者在进入声音工作流时,也能理解不同组成部分各自对应的条件。

一间把声音留下来的本地工作室

VoiceStudio 的价值,并不只在于它能生成声音。

它更像是在本地设备上搭建了一间可以持续工作的声音工作室。

在这里,可以克隆声音,也可以设计声音。

可以为视频配音,也可以把口述内容转写为文字。

可以组织故事与有声书,也可以将视频任务放入批量处理流程。

可以使用桌面界面,也可以通过本地 API、MCP、配方与监视文件夹进入自动化工作流。

可以依赖 CUDA 或 Metal 加速,也可以在没有独立 GPU 的设备上使用 CPU 继续运行。

可以保存声音、导出声音包、再次导入并继续使用。

声音因此不再只是一个生成按钮之后出现的文件。

它可以被准备,被管理,被复用,被带入视频、故事、听写与自动化流程之中。

而 VoiceStudio 所提供的,正是这样一个让声音从灵感开始,最终走向完整工作流的本地空间。