Moonshine 本地跑通语音转写:3 步从克隆到出字
2026/9/15 15:47:40 网站建设 项目流程

Moonshine 本地跑通语音转写:3 步从克隆到出字

【免费下载链接】moonshineVery low latency speech to text, intent recognition, and text to speech, for building voice agents and interfaces项目地址: https://gitcode.com/GitHub_Trending/moonshine3/moonshine

先把会议录音变成文字

开会录音想转成文字,丢给云端 API 要排队上传、按量计费,敏感内容还出不了内网。Moonshine 是一个跑在本地的语音识别工具,音频直接喂给它,文本边喂边出,全程不联网。接下来 15 分钟,用仓库里的 C++ 示例把一条 WAV 转成文字。

它到底能干啥

  • 本地推理 —— 模型和音频都在你自己的机器上,不联网也能出字
  • 流式转写 —— 边收音边出字,说话还没结束就有文本 🎙️
  • 多平台一套库 —— 同一个 core,C++/Python/iOS/Android/Windows 都能调
  • 多档模型 —— 从 tiny 到 medium-streaming,速度和精度自己选

三步跑通:克隆、备料、出字

1. 克隆仓库

git clone https://gitcode.com/GitHub_Trending/moonshine3/moonshine && cd moonshine

仓库自带示例音频在 test-assets/ 下,后面排错用得上。

2. 拉库、模型和样本音频

cd examples/c++ && ./download-library.sh # 自动识别平台,下载预编译库+medium-streaming-en模型+two_cities.wav

脚本按uname选对架构,三个文件都落到当前目录,不用你操心文件名。

3. 编译并运行转写器

g++ transcriber.cpp -Imoonshine-voice/include -Lmoonshine-voice/lib -lmoonshine -Wl,-rpath,'$ORIGIN/moonshine-voice/lib' -o transcriber ./transcriber # 默认读medium-streaming-en模型转写two_cities.wav,逐行打印转录事件

看到 "Line started / Line text changed / Line completed" 滚动输出,说明跑通了。

参数与模式拆解

示例工具共 4 个参数,Windows 麦克风工具是它的前 3 个:

参数作用推荐值/默认值
-m, --model-path模型目录,内含 encoder/decoder 的 .ort 文件medium-streaming-en(脚本已下好)
-a, --model-arch模型档:0=TINY,1=BASE,2=MEDIUM_STREAMING2,必须和目录里的模型匹配
-w, --wav-path待转写的 WAV 文件two_cities.wav
-t, --transcription-interval流式更新间隔(秒)0.481(默认)

文件转写模式

直接./transcriber就能跑,默认模型 + 默认音频开箱即用。想换音频:./transcriber -w test-assets/beckett.wav。会议录音这类长文件,-t调大一点更省 CPU。

Windows 麦克风实时模式

用 Visual Studio 打开 examples/windows/cli-transcriber/ 下的.vcxproj,编译后直接运行cli-transcriber.exe:它打开系统默认麦克风按 16kHz 单声道采样,边说边在同一行刷新文本,说完才落定成一行,Ctrl+C 停止。

卡住了怎么办

  • 现象:模型加载失败或启动即报错。原因-a的档和目录里的模型对不上,或 .ort 文件没下全。解法:用ls检查模型目录文件是否齐全;-a和模型档位严格对应。
  • 现象:喂音频报 "Not a RIFF file" 或直接失败。原因:工具只认 16 位 PCM 的 RIFF/WAVE,MP3、M4A、48kHz 立体声都不行。解法ffmpeg -i in.mp3 -ar 16000 -ac 1 -sample_fmt s16 out.wav转一道再喂。
  • 现象:想从core/源码构建,编译报'version' does not name a type原因:部分内嵌二进制走 git-lfs,指针没拉下来。解法git lfs install && git lfs pull;赶时间就直接走examples/c++/的预编译路线。

性能上两条:把-t从 0.48s 拉到 1s,CPU 占用明显下降;对速度敏感就换 tiny 档模型,代价是精度略降。

接下来

模型已经在你手里了,下一步把它接上麦克风:装 Python 包跑moonshine-voice mic --language en,边说边出字,直观感受流式延迟。想再压一压速度,换 tiny 档对比下精度损失。🚀

【免费下载链接】moonshineVery low latency speech to text, intent recognition, and text to speech, for building voice agents and interfaces项目地址: https://gitcode.com/GitHub_Trending/moonshine3/moonshine

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询