1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
# ----------------------------------------------------------------
# audio-cpp-sys — audio.cpp (ggml 音频推理框架) 的底层 FFI 绑定。
#
# 构建流程(见 build.rs):
# 1. 用 CMake + Ninja 构建 audio.cpp 的 engine_runtime 静态库(vendored 于 ./audio.cpp);
# 2. 用 cc 编译 C shim(capi.cpp)为独立静态库;
# 3. 用 bindgen 为 capi.h 生成 Rust 绑定(bindings.rs)。
# ----------------------------------------------------------------
[]
= "audio-cpp-sys"
= "audio.cpp(ggml 音频推理框架)的底层绑定"
= true
= true
= true
= true
# 声明本 crate 链接的本地库名;任何同时声明 links="audio-cpp" 的 crate 会被 Cargo 拒绝,
# 防止一个程序里出现两份 ggml/audio.cpp 导致重复符号。
= "audio-cpp"
= "build.rs"
# 发布到 crates.io 时需要包含的文件(audio.cpp 上游源码体积过大,由 gitignore 排除,
# 通过其余方式提供,见 README)。
= [
"build.rs",
"capi.h",
"capi.cpp",
"/src",
"/examples",
]
[]
= true # 从 capi.h 生成 Rust FFI 绑定
= true # 用 CMake 构建 engine_runtime
= true # 编译 capi.cpp 并把 C 链接系统库交给它处理
= true # 收集 OUT_DIR 下的静态库文件
# ------------------------------------------------------------------------
# 模型组合 feature(互斥,映射 audio.cpp 的 AUDIOCPP_MODEL_SET)。
# ------------------------------------------------------------------------
[]
= ["core-models"]
# 引擎核心 + 内置 VAD 模型(silero_vad / marblenet_vad),已随上游源码
# vendored 在 audio.cpp/assets/framework/models/,无需下载任何权重。
# 这也是编译最快、开箱即用的最小编译集,适合仅用 VAD 或验证绑定链路的场景。
= []
# 全量编译 audio.cpp 支持的 44+ 模型族。注意:全量编译耗时很长且生成
# 的静态库很大;并不等于"能运行任意模型",权重文件仍需自行下载。
# 日常建议优先用模型族 feature 或 custom-models 按需编译,只有需要一次
# 备齐全部能力时才用本项。
= []
# 按需编译模式:引擎核心 + 内置 VAD + "请求的模型族"(对普通依赖方透明,
# 通常不需要直接启用它——下面的 model-* 与 AUDIOCPP_MODELS 会自动走进本模式)。
= []
# 常用模型族的专用 feature(`model-<target>`):启用即按需编译对应族,
# 无需手设 AUDIOCPP_MODELS。Cargo 视 `-` 与 `_` 等价,故 `--features
# model-qwen3-asr` 与 `model-qwen3_asr` 均可;build.rs 会扫描被启用的
# `CARGO_FEATURE_MODEL_*`,把后缀大写→小写即为上游 CMake target 名,
# 因此新增族 feature 时无需改动 build.rs。
# 其余未列出的模型族(roformer、htdemucs、outetts、glm_tts、pocket_tts、
# sortformer_diar 等)仍用 custom-models + AUDIOCPP_MODELS 环境变量调用。
= ["custom-models"] # ASR:英/多语语音识别
= ["custom-models"] # ASR:FunASR 轻量识别
= ["custom-models"] # ASR:Hviske 识别
= ["custom-models"] # ASR:Kroko 识别
= ["custom-models"] # ASR:NVIDIA Nemotron 识别
= ["custom-models"] # ASR:NVIDIA Parakeet TDT
= ["custom-models"] # ASR:Qwen3 ASR(已验证)
= ["custom-models"] # ASR:VibeVoice 语音
= ["custom-models"] # TTS:MOSS(moss_tts_nano / moss_tts_local,已验证)
= ["custom-models"] # TTS:Qwen3 TTS
= ["custom-models"] # TTS:Irodori TTS
= ["custom-models"] # TTS/Voice:Fish Speech/Cloning
= ["custom-models"] # 音频分离:Demucs 源分离(alias htdemucs)
= ["custom-models"] # 音频分离:Mel-Band RoFormer 源分离(alias mel_band_roformer)
= ["custom-models"] # 说话人分离:SortFormer Diar 4spk
# ------------------------------------------------------------------------
# 计算后端 feature(可叠加,映射 engine 的 ENGINE_ENABLE_*_CPU 选项)。
# 不启用任何 GPU 后端时使用 CPU 推理(ggml 默认)。
# ------------------------------------------------------------------------
= [] # NVIDIA CUDA。需要已安装 CUDA Toolkit(nvcc、cudart)且手工
# 配置好构建环境;开启后 ggml 的 CUDA 算子参与推理。
= [] # AMD HIP/ROCm(针对 Radeon/Instinct GPU)。需要 ROCm 工具链。
# 与 cuda 互斥:上游 CMake 同时启用会报错,勿同时开启。
= [] # Vulkan 通用计算后端。需要 Vulkan SDK 与驱动;跨厂商(NVIDIA/
# AMD/Intel)通用,但算子覆盖/性能通常不如专属后端。
= [] # Apple Metal。注意:macOS 上默认即开启,无需手动启用;
# 在非 Apple 平台(如 win32)默认关闭,需设环境变量
# AUDIOCPP_FORCE_METAL 才会强制开启(一般用于交叉实验)。
= [] # OpenMP 并行加速。依赖 OpenMP 运行时:MSVC 需 /openmp 运行时
# 库、GCC/Clang 需 libgomp;未安装对应运行时则链接期报错,
# 此时应关掉本 feature 而非忽略错误。
= [] # 针对本机 CPU 生成优化指令(对应 GGML_NATIVE,如 AVX2/
# FMA/AVX512)。能提升推理速度,但产出的二进制不再移植到旧 CPU,
# 若二进制的目标机与构建机不同,请不要开启。