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
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
# ----------------------------------------------------------------
# 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",
"prebuilt_download.rs",
"capi.h",
"capi.cpp",
"/src",
"/examples",
]
[]
= true # 从 capi.h 生成 Rust FFI 绑定
= true # 用 CMake 构建 engine_runtime
= true # 编译 capi.cpp 并把 C 链接系统库交给它处理
= true # 收集 OUT_DIR 下的静态库文件
= "1.0" # prebuilt 归档解压(gzip)
= "0.4" # prebuilt 归档解压(tar)
= { = "2.12", = false, = ["tls"] } # prebuilt 下载
= "1" # prebuilt 归档 metadata.json 解析
# ------------------------------------------------------------------------
# 模型组合 feature(互斥,映射 audio.cpp 的 AUDIOCPP_MODEL_SET)。
# ------------------------------------------------------------------------
[]
= ["core-models"]
# 启用 prebuilt 自动下载:从 GitHub Releases 拉取与当前平台/后端/模型组合匹配的
# 预编译归档(tag 默认 v{CARGO_PKG_VERSION},可用 AUDIOCPP_PREBUILT_TAG/REPO/URL
# 覆盖),解压缓存到 target/audio-cpp-prebuilt-cache/;找不到/下载失败/身份不符
# 时回落到本地源码构建。配合 AUDIOCPP_PREBUILT_DIR 则始终使用本地目录。
= []
# 引擎核心 + 内置 VAD 模型(silero_vad / marblenet_vad),已随上游源码
# vendored 在 audio.cpp/assets/framework/models/,无需下载任何权重。
# 这也是编译最快、开箱即用的最小编译集,适合仅用 VAD 或验证绑定链路的场景。
= []
# 全量编译 audio.cpp 支持的 75 个 loader 族(随上游增长,以
# audio.cpp/CMakeLists.txt 的 make_*_loader 为准)。注意:全量编译耗时很长且生成
# 的静态库很大;并不等于"能运行任意模型",权重文件仍需自行下载。
# 日常建议优先用模型族 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。
# 其余未列出的模型族仍用 custom-models + AUDIOCPP_MODELS 环境变量调用
# (如 voxcpm2、qwen3_forced_aligner 等;上游族名以 audio.cpp/CMakeLists.txt
# 的 audiocpp_add_model 为准,build.rs 会自动映射)。
= ["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:SenseVoice(阿里)
= ["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
= ["custom-models"] # 说话人分离:SortFormer v2.1(离线+流式,社区模型)
= ["custom-models"] # 音乐生成:MiniMax Music3(预览)
= ["custom-models"] # TTS:Soprano TTS
= ["custom-models"] # TTS:Echo TTS
= ["custom-models"] # TTS:VoxCPM1
= ["custom-models"] # TTS:F5 TTS
= ["custom-models"] # TTS:Magpie TTS
= ["custom-models"] # 多角色对话语音:PersonaPlex
= ["custom-models"] # 语音生成:MOSS VoiceGen
= ["custom-models"] # 语音转换:MeanVC2
= ["custom-models"] # 强制对齐:MMS Forced Aligner(社区模型)
= ["custom-models"] # 音频超分辨率:AudioSR
= ["custom-models"] # 可控音效生成:ControlFoley
= ["custom-models"] # 语音理解/生成:FireRed Audio
= ["custom-models"] # TTS:FireRed TTS3
= ["custom-models"] # IBM Granite Speech 5.0 ASR(社区模型)
= ["custom-models"] # Audio8 ASR(社区模型)
= ["custom-models"] # Audio8 TTS(社区模型)
= ["custom-models"] # 生成式音频:MIdashengLM
= ["custom-models"] # TTS:Chatterbox Turbo(快速推理变体)
= ["custom-models"] # TTS:sanoTTS(社区模型,en/vi/id)
= ["custom-models"] # TTS:Sopro V2 Turbo
= ["custom-models"] # TTS:MiraTTS(社区模型)
= ["custom-models"] # TTS:CosyVoice3
= ["custom-models"] # TTS:BreezeTTS
= ["custom-models"] # ASR:VibeASR(社区 INT8/ternary)
= ["custom-models"] # ASR:Moonshine 流式 ASR(社区模型,离线+流式)
= ["custom-models"] # ASR:Niagara 批处理 ASR(英文,仅离线)
= ["custom-models"] # TTS:Kokoro 82M 多语 TTS(仅离线)
= ["custom-models"] # 音频工具:内置降噪/增强/超分(deepfilternet2/rnnoise/zipenhancer/gtcrn/flashsr)
# ------------------------------------------------------------------------
# 计算后端 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,
# 若二进制的目标机与构建机不同,请不要开启。
# 继承工作区 lint 规则(见仓库根 Cargo.toml [workspace.lints])
[]
= true