audio-cpp 0.9.0

audio.cpp(ggml 音频推理引擎)的高层安全 Rust 封装
Documentation
# ----------------------------------------------------------------

# audio-cpp — audio.cpp 的高层、安全 Rust 封装。

#

# 提供类型安全的 Registry / Model / Session API(离线 + 流式),

# 内部依赖唯一的 audio-cpp-sys FFI crate。

#

# 下列 feature 全部转发给 audio-cpp-sys,含义与用法见该 crate 的

# Cargo.toml 中对应注释(模型组合互斥;计算后端可叠加)。

# ----------------------------------------------------------------



[package]

name = "audio-cpp"

description = "audio.cpp(ggml 音频推理引擎)的高层安全 Rust 封装"

version.workspace = true

edition.workspace = true

license.workspace = true

repository.workspace = true



[dependencies]

audio-cpp-sys = { workspace = true }

serde.workspace = true

serde_json.workspace = true

thiserror.workspace = true



[dev-dependencies]

# 示例 load_any_audio 演示用 symphonia 解码非 WAV 格式(mp3/flac/ogg/m4a…)。

# 仅影响示例编译,不进入库本身依赖;用户可自行选择任何解码库。

symphonia = { workspace = true, features = [

    "aac", "adpcm", "alac", "flac", "isomp4", "mp1", "mp2", "mp3",

    "ogg", "pcm", "vorbis", "wav",

] }

# 示例 download_model 演示用 hf-hub 从 Hugging Face 下载模型权重(blocking 同步 API)。

# 仅影响示例编译,不进入库本身依赖;用户可自行选择下载方式。

hf-hub = { workspace = true }



[features]

default = ["core-models"]

# 转发给 audio-cpp-sys:启用 prebuilt 自动下载(见其 Cargo.toml 说明)。

prebuilt = ["audio-cpp-sys/prebuilt"]

# 转发给 audio-cpp-sys 的模型组合 / 后端 feature。

core-models = ["audio-cpp-sys/core-models"]   # 引擎核心 + 内置 VAD(默认,最小编译集)

full-models = ["audio-cpp-sys/full-models"]   # 全量 141 个 loader 族(编译慢)

# 按需编译:可直接启用 `model-<族>` feature(推荐),或设置环境变量

# `$env:AUDIOCPP_MODELS="qwen3_asr,citrinet_asr"` 后用本开关。

# 示例:cargo run --features model-qwen3-asr

custom-models = ["audio-cpp-sys/custom-models"]

# 常用模型族(转发给 audio-cpp-sys;完整解释见其 Cargo.toml)

model-citrinet-asr = ["audio-cpp-sys/model-citrinet-asr"]   # ASR:Citrinet

model-fun-asr-nano = ["audio-cpp-sys/model-fun-asr-nano"]   # ASR:FunASR

model-hviske-asr = ["audio-cpp-sys/model-hviske-asr"]       # ASR:Hviske

model-kroko-asr = ["audio-cpp-sys/model-kroko-asr"]         # ASR:Kroko

model-nemotron-asr = ["audio-cpp-sys/model-nemotron-asr"]   # ASR:Nemotron

model-nemotron-3-diar = ["audio-cpp-sys/model-nemotron-3-diar"] # 说话人分离:Nemotron 3 Diarization

model-parakeet-tdt = ["audio-cpp-sys/model-parakeet-tdt"]   # ASR:Parakeet TDT

model-qwen3-asr = ["audio-cpp-sys/model-qwen3-asr"]         # ASR:Qwen3

model-sense-asr = ["audio-cpp-sys/model-sense-asr"]         # ASR:SenseVoice

model-vibevoice-asr = ["audio-cpp-sys/model-vibevoice-asr"] # ASR:VibeVoice

model-moss = ["audio-cpp-sys/model-moss"]                   # TTS:MOSS

model-moss-tts-v15 = ["audio-cpp-sys/model-moss-tts-v15"]    # TTS:MOSS-TTS-v1.5(零样本克隆)

model-vieneu-v3-turbo = ["audio-cpp-sys/model-vieneu-v3-turbo"]  # TTS:VieNeu-TTS v3 Turbo(旧名 vietneu_tts)

model-qwen3-tts = ["audio-cpp-sys/model-qwen3-tts"]         # TTS:Qwen3

model-irodori-tts = ["audio-cpp-sys/model-irodori-tts"]     # TTS:Irodori

model-fish-audio = ["audio-cpp-sys/model-fish-audio"]       # TTS/声音克隆:Fish

model-fish-drama3 = ["audio-cpp-sys/model-fish-drama3"]     # TTS/克隆:Fish Audio Drama 3

model-demucs = ["audio-cpp-sys/model-demucs"]               # 音频分离:Demucs

model-roformer = ["audio-cpp-sys/model-roformer"]           # 音频分离:RoFormer

model-sortformer-diar = ["audio-cpp-sys/model-sortformer-diar"] # 说话人分离:SortFormer

model-sortformer-diar-v2 = ["audio-cpp-sys/model-sortformer-diar-v2"] # 说话人分离:SortFormer v2.1

model-minimax-music3 = ["audio-cpp-sys/model-minimax-music3"]   # 音乐生成:MiniMax Music3

model-soprano-tts = ["audio-cpp-sys/model-soprano-tts"]          # TTS:Soprano TTS

model-echo-tts = ["audio-cpp-sys/model-echo-tts"]               # TTS:Echo TTS

model-voxcpm1 = ["audio-cpp-sys/model-voxcpm1"]                  # TTS:VoxCPM1

model-f5-tts = ["audio-cpp-sys/model-f5-tts"]                  # TTS:F5 TTS

model-magpie-tts = ["audio-cpp-sys/model-magpie-tts"]          # TTS:Magpie TTS

model-personaplex = ["audio-cpp-sys/model-personaplex"]        # 多角色对话语音:PersonaPlex

model-moss-voicegen = ["audio-cpp-sys/model-moss-voicegen"]    # 语音生成:MOSS VoiceGen

model-meanvc2 = ["audio-cpp-sys/model-meanvc2"]                # 语音转换:MeanVC2

model-mms-forced-aligner = ["audio-cpp-sys/model-mms-forced-aligner"]  # 强制对齐:MMS Forced Aligner

model-qwen3-forced-aligner = ["audio-cpp-sys/model-qwen3-forced-aligner"]  # 强制对齐:Qwen3 Forced Aligner

model-audiosr = ["audio-cpp-sys/model-audiosr"]              # 音频超分辨率:AudioSR

model-controlfoley = ["audio-cpp-sys/model-controlfoley"]    # 可控音效生成:ControlFoley

model-firered-audio = ["audio-cpp-sys/model-firered-audio"]  # 语音理解/生成:FireRed Audio

model-fireredtts3 = ["audio-cpp-sys/model-fireredtts3"]      # TTS:FireRed TTS3

model-granite5asr = ["audio-cpp-sys/model-granite5asr"]      # IBM Granite Speech 5.0 ASR(社区模型)

model-audio8-asr = ["audio-cpp-sys/model-audio8-asr"]        # Audio8 ASR(社区模型)

model-audio8-tts = ["audio-cpp-sys/model-audio8-tts"]        # Audio8 TTS(社区模型)

model-midashenglm-gen = ["audio-cpp-sys/model-midashenglm-gen"]  # 生成式音频:MIdashengLM

model-chatterbox-turbo = ["audio-cpp-sys/model-chatterbox-turbo"]  # TTS:Chatterbox Turbo

model-sanotts = ["audio-cpp-sys/model-sanotts"]              # TTS:sanoTTS(社区模型)

model-sopro-tts = ["audio-cpp-sys/model-sopro-tts"]          # TTS:Sopro V2 Turbo

model-mira-tts = ["audio-cpp-sys/model-mira-tts"]            # TTS:MiraTTS(社区模型)

model-cosyvoice3 = ["audio-cpp-sys/model-cosyvoice3"]        # TTS:CosyVoice3

model-breeze-tts = ["audio-cpp-sys/model-breeze-tts"]        # TTS:BreezeTTS

model-vibeasr = ["audio-cpp-sys/model-vibeasr"]              # ASR:VibeASR(社区模型)

model-moonshine-asr = ["audio-cpp-sys/model-moonshine-asr"]  # ASR:Moonshine 流式 ASR(社区模型)

model-niagara-asr = ["audio-cpp-sys/model-niagara-asr"]      # ASR:Niagara 批处理 ASR

model-kokoro-tts = ["audio-cpp-sys/model-kokoro-tts"]        # TTS:Kokoro 82M

model-builtin-audio-utils = ["audio-cpp-sys/model-builtin-audio-utils"]  # 音频工具:内置降噪/增强/超分

model-yue2 = ["audio-cpp-sys/model-yue2"]  # 音乐生成:YuE2

model-sheetsage2 = ["audio-cpp-sys/model-sheetsage2"]  # 音频转谱:SheetSage2

model-canary-asr = ["audio-cpp-sys/model-canary-asr"]  # ASR: NVIDIA Canary 180M Flash

model-cohere-asr = ["audio-cpp-sys/model-cohere-asr"]  # ASR: Cohere Transcribe

model-moss-transcribe-diarize = ["audio-cpp-sys/model-moss-transcribe-diarize"]  # ASR: MOSS Transcribe+Diarize

model-pulsevad = ["audio-cpp-sys/model-pulsevad"]  # VAD: PulseVAD

model-apollo = ["audio-cpp-sys/model-apollo"]  # Audio tool: Apollo

model-universr = ["audio-cpp-sys/model-universr"]  # Audio tool: UniverSR

model-zipvoice = ["audio-cpp-sys/model-zipvoice"]  # TTS: ZipVoice / ZipVoice-Distill

model-auk = ["audio-cpp-sys/model-auk"]  # TTS: AuK / AuK-Flash

model-confucius4-r2t2 = ["audio-cpp-sys/model-confucius4-r2t2"]  # ASR: Confucius4-R2T2

model-liveavatar = ["audio-cpp-sys/model-liveavatar"]  # Audio generation: LiveAvatar

model-piper-tts = ["audio-cpp-sys/model-piper-tts"]  # TTS: Piper VITS TTS (community)

model-kitten-tts = ["audio-cpp-sys/model-kitten-tts"]  # TTS: KittenTTS Mini 0.8 (community)

model-kitten-tts2 = ["audio-cpp-sys/model-kitten-tts2"]  # TTS: Kitten TTS 2 (multilingual + cloning)

model-kugelaudio = ["audio-cpp-sys/model-kugelaudio"]  # TTS: KugelAudio-0-Open

model-maya1 = ["audio-cpp-sys/model-maya1"]  # TTS: Maya1 3B expressive EN TTS

model-moss-ttsd = ["audio-cpp-sys/model-moss-ttsd"]  # TTS: MOSS-TTSD dialogue TTS

model-tone-color-vc = ["audio-cpp-sys/model-tone-color-vc"]  # VC: Tone Color VC

model-owsm = ["audio-cpp-sys/model-owsm"]  # ASR: OWSM multilingual

model-owsm-ctc = ["audio-cpp-sys/model-owsm-ctc"]  # ASR: OWSM-CTC

model-gigaam-asr = ["audio-cpp-sys/model-gigaam-asr"]  # ASR: GigaAM

model-crisperwhisper = ["audio-cpp-sys/model-crisperwhisper"]  # ASR: CrisperWhisper 2.0

model-audio-flamingo = ["audio-cpp-sys/model-audio-flamingo"]  # ASR: Audio Flamingo 3/Next

model-lfm2-audio = ["audio-cpp-sys/model-lfm2-audio"]  # ASR: LFM2.5-Audio

model-index-echo = ["audio-cpp-sys/model-index-echo"]  # ASR: Index-Echo-S2TT

model-samsone = ["audio-cpp-sys/model-samsone"]  # ASR: SAMSONE

model-reuse = ["audio-cpp-sys/model-reuse"]  # Audio tool: RE-USE restoration

model-sam-audio = ["audio-cpp-sys/model-sam-audio"]  # Audio tool: SAM Audio separation

model-sidon = ["audio-cpp-sys/model-sidon"]  # Audio tool: Sidon restoration

model-smart-turn = ["audio-cpp-sys/model-smart-turn"]  # Turn detection: Smart Turn

model-mossformer2 = ["audio-cpp-sys/model-mossformer2"]  # Audio separation: MossFormer2 (sep, offline)

model-tf-gridnet = ["audio-cpp-sys/model-tf-gridnet"]  # Audio separation: TF-GridNet (sep, offline)

model-firered-vad = ["audio-cpp-sys/model-firered-vad"]  # VAD: FireRed VAD (offline+streaming)

model-ced = ["audio-cpp-sys/model-ced"]  # Audio classification: CED (cls, offline)

model-ast-audioset = ["audio-cpp-sys/model-ast-audioset"]  # Audio classification: AST AudioSet (cls, offline)

model-micro-wake-word = ["audio-cpp-sys/model-micro-wake-word"]  # Wake word: microWakeWord (offline+streaming)

model-sherpa-kws = ["audio-cpp-sys/model-sherpa-kws"]  # Wake word: sherpa KWS (offline+streaming)

model-hviske-asr-v6 = ["audio-cpp-sys/model-hviske-asr-v6"]  # ASR: Hviske v6 Danish

model-whistle-asr = ["audio-cpp-sys/model-whistle-asr"]  # ASR: Whistle (community, offline)

model-gradium-phonon = ["audio-cpp-sys/model-gradium-phonon"]  # TTS: Gradium Phonon (PocketTTS runtime)

model-latentsync = ["audio-cpp-sys/model-latentsync"]  # Audio generation: LatentSync 1.6 lip sync

model-ming3-audio = ["audio-cpp-sys/model-ming3-audio"]  # ASR/TTS: Ming 3.0 Audio Tiny

model-ming3-tts = ["audio-cpp-sys/model-ming3-tts"]  # TTS: Ming 3.0 TTS 0.5B

model-xtts-v2 = ["audio-cpp-sys/model-xtts-v2"]  # TTS: Coqui XTTS v2 multilingual cloning

model-plapre = ["audio-cpp-sys/model-plapre"]  # TTS: Plapre 3 (Danish)

model-open-wake-word = ["audio-cpp-sys/model-open-wake-word"]  # Wake word: OpenWakeWord

model-earshot-vad = ["audio-cpp-sys/model-earshot-vad"]  # VAD: Earshot VAD (offline+streaming, 16kHz mono)

model-nemotron-transcribe = ["audio-cpp-sys/model-nemotron-transcribe"]  # ASR: Nemotron 3.5 Transcribe 30B-A4B

model-lfm3-audio = ["audio-cpp-sys/model-lfm3-audio"]  # ASR/TTS/S2S: LFM3-Audio-2B

model-magenta-realtime-2 = ["audio-cpp-sys/model-magenta-realtime-2"]  # Music generation: Magenta RealTime 2

model-soulx-flashhead = ["audio-cpp-sys/model-soulx-flashhead"]  # Audio generation: SoulX-FlashHead

model-phonon2-asr = ["audio-cpp-sys/model-phonon2-asr"]  # ASR: Phonon-2(Parakeet 运行时)

model-underdog-bark3 = ["audio-cpp-sys/model-underdog-bark3"]  # ASR: Underdog Bark 3(Parakeet 运行时)

model-haas-asr = ["audio-cpp-sys/model-haas-asr"]  # ASR: Haas-ja-v1.0 日文

model-lfm-d1-omni = ["audio-cpp-sys/model-lfm-d1-omni"]  # 音频分类: d1-Omni-2B audio decisions

model-pocket-tts-small = ["audio-cpp-sys/model-pocket-tts-small"]  # TTS: PocketTTS Small

model-realtime-reuse = ["audio-cpp-sys/model-realtime-reuse"]  # 语音修复: Real-time RE-USE(流式)

cuda = ["audio-cpp-sys/cuda"]     # NVIDIA CUDA(需 CUDA Toolkit)

hip = ["audio-cpp-sys/hip"]       # AMD HIP/ROCm(与 cuda 互斥)

vulkan = ["audio-cpp-sys/vulkan"] # Vulkan 通用后端(需 Vulkan SDK)

metal = ["audio-cpp-sys/metal"]   # Apple Metal(macOS 默认开启;win32 需 AUDIOCPP_FORCE_METAL)

openmp = ["audio-cpp-sys/openmp"] # OpenMP 并行(依赖 OpenMP 运行时)

native = ["audio-cpp-sys/native"] # 针对本机 CPU 优化(不移植)



# 继承工作区 lint 规则(见仓库根 Cargo.toml [workspace.lints])

[lints]

workspace = true