sherpa-onnx-tts(本地离线文本转语音):让文字开口说话,全程不联网、不花钱、不泄露隐私
核心结论速览
- sherpa-onnx-tts 是一个基于 sherpa-onnx 的**本地离线文本转语音(TTS)**技能,输入一段文字,直接生成 wav 音频文件。
- 全流程跑在本机:不调用云端 API,不需要网络,不上传文本内容,天然规避隐私与合规风险。
- 支持 macOS(universal2)、Linux x64、Windows x64 三平台,安装脚本按操作系统自动匹配运行时压缩包。
- 依赖两个环境变量即可工作:
SHERPA_ONNX_RUNTIME_DIR指向运行时目录,SHERPA_ONNX_MODEL_DIR指向语音模型目录。 - 一条命令即可出音频:
sherpa-onnx-tts -o ./tts.wav "Hello from local TTS.",可换模型换音色,无需改代码。
1. 该技能叫什么?如何一键安装 AI 技能提升开发效率?
技能中文名:sherpa-onnx 文本转语音 Skill 技能英文名:sherpa-onnx-tts 技能 ID:13566
它要解决的是开发者在做语音播报、配音、无障碍朗读、语音测试数据生成时最常见的一类麻烦:要么接云端 TTS 服务(要申请密钥、按量计费、担心文本外泄、受网络抖动影响),要么自己啃一遍语音合成引擎的编译与模型加载(门槛高、跨平台适配痛苦)。sherpa-onnx-tts 把这个过程封装成「装运行时 + 装模型 + 配两个环境变量 + 一条命令」,让 AI 助手或脚本可以随时把文字变成音频。
「一键安装」的思路并不是玄学,而是把原本分散的手工步骤固化成了可复用的下载与配置流程:
第一步:确认安装前提
技能声明支持 darwin、linux、win32 三类操作系统,并要求两个环境变量 SHERPA_ONNX_RUNTIME_DIR、SHERPA_ONNX_MODEL_DIR 存在。安装前请确认本机磁盘空间充足(运行时是共享库压缩包,模型为独立语音模型包),以及所在网络可以访问 GitHub Releases。
第二步:由技能安装流程自动下载运行时
技能内置了三条按操作系统区分的下载任务,均为 tar.bz2 归档、自动解压并去掉一层顶层目录,统一落地到 ~/.otto/tools/sherpa-onnx-tts/runtime:
| 安装项 | 适用系统 | 内置于技能中的版本 |
|---|---|---|
download-runtime-macos |
macOS(universal2 通用二进制) | sherpa-onnx v1.12.23 osx-universal2-shared |
download-runtime-linux-x64 |
Linux x64 | sherpa-onnx v1.12.23 linux-x64-shared |
download-runtime-win-x64 |
Windows x64 | sherpa-onnx v1.12.23 win-x64-shared |
第三步:下载语音模型
技能内置了默认模型任务 download-model-lessac,即 Piper 的 vits-piper-en_US-lessac-high(英语女声,高质量档),解压到 ~/.otto/tools/sherpa-onnx-tts/models。若你想要中文或其他音色,可从 sherpa-onnx 的 tts-models 发布中另选模型,具体清单与体积以官方说明为准。
第四步:写入配置
在 ~/.otto/otto.json 中为 sherpa-onnx-tts 声明环境变量(以下为技能文档给出的真实配置形态):
{
skills: {
entries: {
"sherpa-onnx-tts": {
env: {
SHERPA_ONNX_RUNTIME_DIR: "~/.otto/tools/sherpa-onnx-tts/runtime",
SHERPA_ONNX_MODEL_DIR: "~/.otto/tools/sherpa-onnx-tts/models/vits-piper-en_US-lessac-high",
},
},
},
},
}
第五步:让命令可用并验证
包装器脚本位于技能目录的 bin 下。可以把它加入 PATH:
export PATH="{baseDir}/bin:$PATH"
然后跑一条最小用例验证是否生效:
sherpa-onnx-tts -o ./tts.wav "Hello from local TTS."
若当前目录出现 tts.wav 且能正常播放,说明运行时、模型、环境变量三者已经打通。注意:{baseDir} 指技能自身目录,实际使用时替换为你的真实路径;至于运行时与模型的下载地址是否会随版本更新而变化,以官方说明为准。
2. 该技能的主要功能和特点
- 纯本地离线合成:文本与音频都不离开本机,不依赖任何云端服务,断网也能工作。
- 一条命令出成品:
-o指定输出文件路径,后面跟待合成文本,直接产出 wav 音频。 - 跨平台覆盖:macOS 通用二进制、Linux x64、Windows x64 均有对应运行时,Windows 下改用
node {baseDir}\bin\sherpa-onnx-tts方式调用。 - 模型可插拔:默认用
vits-piper-en_US-lessac-high,想换音色/语言就换模型目录;不锁死单一发音人。 - 参数可覆盖:模型目录内存在多个
.onnx时,可用环境变量SHERPA_ONNX_MODEL_FILE或命令行参数--model-file指定;还支持--tokens-file、--data-dir覆盖默认配置。 - 与普通工具相比强在哪:相比在线 TTS,它没有密钥管理、调用配额、跨境网络与内容上云的问题;相比自行编译语音引擎,它把运行时、模型、路径约定都标准化了,安装即用,且能被 AI 技能编排体系直接调度,适合嵌入自动化流水线。
3. 如何使用该技能?
步骤 1:完成安装与配置
按第 1 部分的四步走:下载运行时 → 下载模型 → 在 ~/.otto/otto.json 写入两个环境变量 → 把 bin 目录加入 PATH(或直接用完整路径调用)。
步骤 2:发起一次最小合成
{baseDir}/bin/sherpa-onnx-tts -o ./tts.wav "Hello from local TTS."
输出说明:命令执行完成后,在 -o 指定的位置生成 wav 音频文件,可直接用系统播放器或音频库读取。
步骤 3:换成你自己的文本 把引号内的文字替换为目标内容即可,例如生成一段产品提示音文案、一段测试播报词。文本长度、语速等能力边界由所用模型决定,具体以官方说明为准。
步骤 4:更换音色或语言模型
从 sherpa-onnx 的 tts-models 发布中挑选合适模型,解压到 ~/.otto/tools/sherpa-onnx-tts/models 下,然后把 SHERPA_ONNX_MODEL_DIR 指向新模型目录。
步骤 5:处理多模型文件的歧义
如果新模型目录里有多个 .onnx 文件,两种方式二选一:
export SHERPA_ONNX_MODEL_FILE=/path/to/model.onnx
sherpa-onnx-tts --model-file /path/to/model.onnx -o ./tts.wav "需要合成的文本"
步骤 6:Windows 用户专用写法
node {baseDir}\bin\sherpa-onnx-tts -o tts.wav "Hello from local TTS."
步骤 7:接入自动化流程 把上述命令写进脚本、CI 任务或 AI 助手的工具调用中,批量遍历文本清单逐条生成音频,即可实现无人值守的语音素材生产。
4. 同类型竞品对比分析
| 方案名称 | 定位 | 核心功能 | 安装/使用门槛 | 适用场景 | 优势与不足 |
|---|---|---|---|---|---|
| sherpa-onnx-tts(本技能) | 本地离线 TTS 命令行技能 | 文本转 wav、可换模型与参数覆盖、跨三平台 | 中低:装运行时 + 装模型 + 配两个环境变量 | 隐私敏感文本、离线环境、批量语音素材、自动化流水线 | 优势:完全离线、零调用费用、可编排;不足:需自备模型,默认模型为英语,中文需另选模型 |
| 云端 TTS API(通用云服务) | 在线语音合成服务 | 多音色、多语言、SSML 控制 | 低:注册取密钥即可用,但需计费与网络 | 对音质与音色丰富度要求高的线上产品 | 优势:开箱即用、音色多;不足:按量计费、文本上云、断网不可用 |
| 系统自带朗读/语音合成 | 操作系统内置能力 | 基础朗读与简单导出 | 最低:系统预装 | 个人临时朗读、无障碍辅助 | 优势:零配置;不足:命令行化、批量导出与参数控制弱,跨平台一致性差 |
| 自行编译开源语音引擎 | 自建 TTS 底座 | 完全可定制 | 高:需处理依赖、编译与模型适配 | 深度定制与研究场景 | 优势:掌控力最强;不足:时间成本高,跨平台维护负担重 |
5. 该技能的典型应用场景与实际体验情况
场景一:开发者做语音播报功能的自测
角色:后端/客户端工程师。痛点:接入 TTS 常常要等云端密钥审批,自测时频繁请求还担心额度。使用方式:本地跑 sherpa-onnx-tts 批量生成提示音、错误播报等固定文案的音频,直接塞进测试资源目录。实际体验:上手极快,一条命令一个文件;注意提前规划好文案清单与命名规则,避免文件散乱。
场景二:内容团队批量生成配音草稿 角色:短视频/播客运营。痛点:正式配音前需要快速试听节奏与时长。使用方式:把文案按段落拆成文本文件,脚本循环调用命令输出多个 wav,再挑选用作参考。注意事项:默认模型为英语女声,中文内容需先替换为对应语言模型,否则发音不可用。
场景三:隐私敏感文本的朗读需求 角色:法务、医疗、企业内部系统维护者。痛点:合同条款、病历摘要、内部通知不宜上传第三方云。使用方式:在本地机器上完成合成,音频文件留在内网。实际体验:隐私顾虑彻底消除;需注意机器磁盘占用,运行时与模型都是本地实体文件。
场景四:CI/自动化流水线里的语音素材生产
角色:DevOps 与 AI 应用开发者。痛点:手工生成音频不可复现,版本漂移。使用方式:把命令写进流水线,配合固定模型目录与固定参数,实现可重复产出。注意事项:模型路径要用环境变量固化,避免不同机器路径不一致;多 .onnx 模型务必显式指定 --model-file。
6. 该技能能为用户带来的价值
- 效率提升:从「申请密钥 + 写调用代码 + 处理网络异常」压缩为「一条命令」,单条文案的音频产出从分钟级降到秒级操作成本。
- 成本可控:本地推理,无按次计费,文案量越大边际成本越低。
- 门槛降低:不需要理解语音合成模型细节,也不需要自己编译引擎,装好运行时与模型即可跑通。
- 隐私与合规:文本与音频不出本机,适合内部资料、敏感内容的语音化处理。
- 可编排的长期价值:命令行形态天然适配脚本、CI 与 AI 技能体系,可沉淀为团队标准的「文字转语音」基础能力,后续换模型即换音色,升级不推翻架构。
7. 常见问题 FAQ
Q1:这个技能怎么安装?必须联网吗? 安装阶段需要联网,因为要从 GitHub Releases 下载运行时与模型压缩包;技能会按 macOS / Linux / Windows 自动匹配对应的运行时。装完之后合成过程完全离线,断网也能用。具体版本与地址以官方说明为准。
Q2:收费吗?有没有调用次数限制? 本技能是本地离线方案,不涉及云端调用计费,也不存在按次配额问题,成本主要体现在本机磁盘与算力占用。
Q3:适合谁用? 适合需要把文字批量转成音频的开发者、做语音播报自测的工程师、内容团队的配音草稿生产者,以及处理隐私敏感文本、不能上云的企业用户。
Q4:报错说找不到模型或环境变量怎么办?
先检查 ~/.otto/otto.json 中 SHERPA_ONNX_RUNTIME_DIR 与 SHERPA_ONNX_MODEL_DIR 是否已按技能文档写入并指向真实存在的目录;若模型目录内有多个 .onnx 文件,需用 SHERPA_ONNX_MODEL_FILE 或 --model-file 明确指定其中一个。
Q5:想换成中文或其他音色怎么做?和云端方案怎么选?
从 sherpa-onnx 的 tts-models 发布中选择目标模型,解压后把 SHERPA_ONNX_MODEL_DIR 指向新目录即可;还可配合 --tokens-file、--data-dir 覆盖默认项。选择建议:重隐私、重离线、重批量可复现,选本技能;重音色丰富度与开箱即用,选云端服务;具体模型清单与能力边界以官方说明为准。