Moonshine语音识别命令行速成:4步跑通本地转录
【免费下载链接】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
Moonshine是跑在本地设备上的低延迟语音识别(ASR)库:音频直接在本机转成文字,不经过云端,内容不出你的设备。本教程用官方命令行示例带你完成第一次本地转录,并附上参数速查与常见故障处理。
Moonshine本地语音识别能做什么
Moonshine 的命令行示例把音频转成文字,全程在本机完成,分两个入口:跨平台的 C++ 转录示例(转 WAV 文件)和 Windows 麦克风实时转录工具。跟着做完,你会拿到:
- 一个能直接运行的
transcriber可执行文件,以及配套的模型和测试音频 - 一份可换模型、可调转录刷新频率的参数速查表
- 编译、模型加载、音频格式三类问题的报错对照清单
第一次转录前的准备清单
| 项目 | 位置 | 说明 |
|---|---|---|
| 项目源码 | 仓库克隆目录 | 运行git clone https://gitcode.com/GitHub_Trending/moonshine3/moonshine,进入moonshine目录 |
| 预编译库 | examples/c++/download-library.sh | 自动识别平台,解压到examples/c++/moonshine-voice/ |
| 语音识别模型 | 脚本下载至examples/c++/medium-streaming-en/ | 同一脚本拉取,默认 Medium 流式英文模型 |
| 测试音频 | test-assets/two_cities.wav | 脚本会顺带拉进示例目录;也可用 test-assets/ 里任意 16-bit PCM WAV |
| 编译器 | g++(Linux/macOS)或 Visual Studio(Windows) | C++ 示例只依赖 g++;Windows 麦克风工具需要 VS 工程 |
如何跑通第一次本地转录
1️⃣ 在示例目录运行下载脚本,一次性备齐预编译库、模型和测试音频:
cd examples/c++ ./download-library.sh2️⃣ 编译转录示例(Linux 命令;macOS 需在末尾补-framework CoreFoundation -framework Foundation):
g++ transcriber.cpp -Imoonshine-voice/include -Lmoonshine-voice/lib \ -lmoonshine -Wl,-rpath,'$ORIGIN/moonshine-voice/lib' -o transcriber3️⃣ 不带参数直接运行,默认加载 Medium 流式模型并转录two_cities.wav:
./transcriber终端会滚出Line started: ...、Line completed: ...等行,逐句显示《双城记》的开头内容。
Transcriber 命令行参数速查表
| 参数 | 作用 | 示例值 |
|---|---|---|
-m, --model-path | 模型目录路径 | medium-streaming-en |
-a, --model-arch | 模型架构:0=Tiny,1=Base,2=Tiny流式,3=Base流式,4=Small流式,5=Medium流式 | 5 |
-w, --wav-path | 要转录的 WAV 文件;Windows 工具省略该参数即进入麦克风模式 | two_cities.wav |
-t, --transcription-interval | 两次转录刷新的间隔秒数(C++ 示例专有) | 0.481 |
-h, --help | 显示帮助(Windows 工具) | — |
-a的取值必须与你-m指定的模型一致,传错会直接加载失败。
两个进阶场景:麦克风实时转录与换用测试音频
场景 1:Windows 麦克风实时转录⚡
用 Visual Studio 编译 examples/windows/cli-transcriber/cli-transcriber.vcxproj,然后直接运行:
cli-transcriber.exe不传-w就自动进入麦克风模式:终端先打印Listening to microphone...,之后当前行文字随说话实时改写,Ctrl+C 退出。
场景 2:换用仓库里另一段测试音频
在examples/c++目录执行:
./transcriber -w ../../test-assets/two_cities_16k.wav预期输出:终端同样逐句出现《双城记》开头文字;该文件是 16kHz 版本音频,可与默认音频对比识别节奏的差异。
运行报错后的常见问题与解决
- 现象:运行时报
cannot open shared object file: libmoonshine.so。原因:运行时找不到动态库。解决:编译命令保留-Wl,-rpath,'$ORIGIN/moonshine-voice/lib',或运行前先export LD_LIBRARY_PATH=$(pwd)/moonshine-voice/lib。 - 现象:
Only 16-bit PCM WAV files are supported。原因:音频是浮点或 24-bit 格式。解决:先转换:ffmpeg -i in.wav -ar 16000 -ac 1 -sample_fmt s16 out.wav。 - 现象:模型加载失败,提示模型目录缺文件。原因:流式模型是一组文件(多个
.ort加tokenizer.bin、streaming_config.json),下载不完整。解决:重跑./download-library.sh,检查-a与模型目录是否匹配。 - 现象:Windows 麦克风模式没有任何输出。原因:默认录制设备未选中或麦克风被占用。解决:在 Windows 声音设置里确认默认录制设备,并关掉其他占用麦克风的程序。
下一步
- 想换语言或对比精度:docs/models/available-models.md 列出了全部模型与准确率
- 想试文本转语音:同方式编译 examples/c++/text-to-speech.cpp,用
--asset-root指向core/moonshine-tts/data - 需要词级时间戳:见 docs/word-level-timestamps.md
【免费下载链接】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),仅供参考