ARTICLE DETAIL

资讯详情

深耕编程入门与网站建设的一线实战洞察。

sherpa-onnx 语音工具箱:3 分钟跑通离线语音合成与识别

sherpa-onnx 语音工具箱:3 分钟跑通离线语音合成与识别 sherpa-onnx 语音工具箱3 分钟跑通离线语音合成与识别【免费下载链接】sherpa-onnxSpeech-to-text, text-to-speech, speaker diarization, speech enhancement, source separation, and VAD using next-gen Kaldi with onnxruntime without Internet connection. Support embedded systems, Android, iOS, HarmonyOS, Raspberry Pi, RISC-V, RK NPU, Axera NPU, Ascend NPU, x86_64 servers, websocket server/client, support 12 programming languages项目地址: https://gitcode.com/GitHub_Trending/sh/sherpa-onnxsherpa-onnx 是一个完全离线的语音工具箱语音识别ASR、语音合成TTS、VAD、说话人分离、语音增强都装在一箱里不联网、零 API 费用。这篇走一遍最小路径装包、下模型、跑出第一段声音。 先想两个场景你的声音要留在哪场景一录音转写数据不能出内网。把会议录音丢给 offline-decode-files.py逐文件转成文字全程不碰外网也没有按字符计费的账单。场景二给自家软件加个朗读。App、网站、树莓派小盒子都可以。模型跑在本地 CPU 上断网照常工作数据不落地。这两个场景一个要听懂一个要开口都是 sherpa-onnx 的基本功。 三步跑通第一个语音合成git clone https://gitcode.com/GitHub_Trending/sh/sherpa-onnx cd sherpa-onnx pip install sherpa-onnx soundfile装一个 Python 包就够了不用自己编译 C。接着下载一个约 20MB 的英文 TTS 模型放进项目目录解压。模型列表在仓库 releases 页的 tts-models 标签下命令示例直接写在 offline-tts.py 文件头部。第 2 步合成并试听python3 ./python-api-examples/offline-tts.py \ --vits-model./vits-piper-en_US-amy-low/en_US-amy-low.onnx \ --vits-tokens./vits-piper-en_US-amy-low/tokens.txt \ --vits-data-dir./vits-piper-en_US-amy-low/espeak-ng-data \ --output-filename./generated.wav \ Hello from sherpa-onnx. This runs fully offline.跑完终端会打印RTF: 0.xxx/xx.xxx 0.xxx这就是实时率合成耗时除以音频时长。小于 1 表示比实时快。生成的 wav 直接播放验证即可。 核心原理一个工具箱两种角色别把它想成一个引擎更像是工具箱识别、合成、VAD 各自是独立的 ONNX 模型互不牵连各对应一套 API。ASR 像速记员wav 进来切成 40ms 左右的小帧逐帧算特征、喂进模型吐出文字。TTS 像播音员文本先经过数字、日期等规则改写那几个.fst文件干这事变成音素再经神经网络生成音频波形。推理底座是 ONNX Runtime。模型训练好之后导出成 .onnx任何能跑 ONNX Runtime 的机器——手机、树莓派、RK NPU、服务器——都可以直接执行这就是一次训练、多端部署的由来。⚙️ 进阶用法与调参换流式识别。麦克风实时转写用 online-decode-files.py边采边出字不等整句说完。部署成 WebSocket 服务。一条命令起服务浏览器直接录音上传python3 ./python-api-examples/http_server.py --port6009 python3 ./python-api-examples/non_streaming_server.py --port10095VAD 打底再识别。长录音先用 vad-with-non-streaming-asr.py 把静音切掉再送 ASR省时间也省算力这个组合也是字幕生成的标准套路。调参先看这张表参数默认值作用--num-threads1神经网络计算线程调 2~4 提速明显--sample-rate16000音频采样率必须与 wav 实际一致--decoding-methodgreedy_search解码方式beam search 更准但更慢--max-num-sentences1批内句数防长文本 OOM--speed1.0合成语速越小越慢️ 三个新手必踩的坑1. 采样率不匹配识别结果全是鬼话。8k 的电话音频按 16k 读音调全变。看 wav 标称采样率--sample-rate填多少就传多少。2. VITS 模型参数传混。官方给了 piper、matcha、kokoro、kitten 等多套模型。piper 系只用--vits-model、--vits-tokens、--vits-data-dir三项带--vits-lexicon的是 icefall、zh-ll 那批模型。指定data-dir后 lexicon 和 tokens 会被忽略别两个都传。3. 长文本合成 OOM。用--max-num-sentences控制批内句数设 1 最稳小值并不会比大值慢。⚖️ 选型建议它适合什么不适合什么适合离线/内网部署Android、iOS、鸿蒙、树莓派、NPU 板卡等多平台预算敏感、不想按量付费 API要 VAD、说话人分离、语音增强这类周边能力时一个项目全包含。不适合要顶级情感表达和超高自然度的高端有声书场景或毫秒级超低延迟的实时对话那还是云方案成熟。另外仓库示例里多数是离线模型 模拟流式的玩法纯流式体验以 streaming-decode-files.py 这类脚本为准预期要摆正。 延伸资源均为仓库内路径离线识别offline-decode-files.py语音合成offline-tts.py文件头 8 组模型示例可直接抄Web 与 WebSocket 部署http_server.py、non_streaming_server.pyVAD 组合vad-with-non-streaming-asr.pyAndroid 端工程android/SherpaOnnxTts/、android/SherpaOnnx/Flutter 跨平台示例flutter-examples/12 种语言的 API 绑定c-api-examples/、java-api-examples/、go-api-examples/、python-api-examples/项目目录很直白python-api-examples/下 80 多个脚本按功能命名每个脚本头部 Usage 注释都是现成命令照着改路径就能跑。下一步挑 tts-models 列表里体积最小的那个模型把 offline-tts.py 完整跑一遍记下打印的 RTF然后加--num-threads2再跑一次对比两个数字。基线有了后面换中文模型、换 kokoro 多语言模型心里就有底了。【免费下载链接】sherpa-onnxSpeech-to-text, text-to-speech, speaker diarization, speech enhancement, source separation, and VAD using next-gen Kaldi with onnxruntime without Internet connection. Support embedded systems, Android, iOS, HarmonyOS, Raspberry Pi, RISC-V, RK NPU, Axera NPU, Ascend NPU, x86_64 servers, websocket server/client, support 12 programming languages项目地址: https://gitcode.com/GitHub_Trending/sh/sherpa-onnx创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表