本项目包含 推理(核心库)、GUI(PyQt6)、CLI(服务器部署)、模型导出脚本 四类用途。为避免仓库膨胀,模型文件、ffmpeg/llama.cpp 二进制、运行输出与临时目录默认不纳入版本控制(见 .gitignore)。
- 建议:Python 3.10(Windows 已验证较多)
requirements.txt- 推理 + GUI 运行依赖(桌面使用)
requirements-cli.txt- 推理 + CLI 运行依赖(不含 PyQt6,适合服务器)
requirements-export.txt- 模型导出 依赖(导出 ONNX / GGUF 时需要,依赖较重)
安装示例:
# 桌面 GUI
pip install -r requirements.txt
# 服务器 CLI(推荐)
pip install -r requirements-cli.txt
# 导出模型
pip install -r requirements-export.txt用于音频/视频抽取与转码(GUI/CLI 都会用到)。
- Windows:下载 ffmpeg 并加入 PATH,或将
ffmpeg.exe放在项目根目录 - Linux:
sudo apt install ffmpeg - macOS:
brew install ffmpeg
也可以通过环境变量指定:
FFMPEG_BINARY=/path/to/ffmpeg
本项目使用 llama.cpp 推理 GGUF Decoder。你需要自行下载对应平台的预编译包,并将其放到:
fun_asr_gguf/bin/
推荐从 llama.cpp Releases 下载(文件名会随版本变化,例如 llama-bXXXX-bin-win-vulkan-x64.zip)。
项目默认按 ./model 推导以下文件(GUI/CLI 均支持手动指定):
Fun-ASR-Nano-Encoder-Adaptor.fp32.onnxFun-ASR-Nano-CTC.int8.onnxFun-ASR-Nano-Decoder.q8_0.gguftokens.txt
- Decoder(llama.cpp)可通过 Vulkan 进行 GPU offload(Windows 常用)
- 通过环境变量控制(GUI/CLI 都支持):
VK_ICD_FILENAMESGGML_VK_VISIBLE_DEVICESGGML_VK_DISABLE_F16
为便于排查与避免污染项目根目录,运行过程产生的文件默认写入:
./temp/YYYY-MM-DD/<任务前缀-时间>/...
包含但不限于:
- 抽取/转码后的 wav
- 分段切片
- benchmark 采样 csv/json