尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

Xinference 内置音频模型全景指南:ASR 语音识别、TTS 语音合成与音乐生成的统一启动与调用

Xinference 内置音频模型全景指南:ASR 语音识别、TTS 语音合成与音乐生成的统一启动与调用 Xinference 内置音频模型全景指南ASR 语音识别、TTS 语音合成与音乐生成的统一启动与调用【免费下载链接】inferenceSwap GPT for any LLM by changing a single line of code. Xinference lets you run open-source, speech, and multimodal models on cloud, on-prem, or your laptop — all through one unified, production-ready inference API.项目地址: https://gitcode.com/GitHub_Trending/in/inferenceXinference 在仓库 doc/source/models/builtin/audio/index.rst 中集中登记了一批开箱即用的内置音频模型覆盖语音识别audio2text、语音合成text2audio、音乐生成text2music与说话人嵌入等能力。本文将以此清单为骨架结合 模型能力文档 的用法说明与 音频模型源码 的实现细节完整讲解内置音频模型的分类、多引擎选择机制、启动命令以及四种 OpenAI 兼容音频 API 的调用方式帮助你直接用一条命令完成 ASR/TTS 模型的上线。内置音频模型总览从 Whisper 到 Qwen3 的一站式模型库Xinference 的音频模型内置清单见 doc/source/models/builtin/audio/index.rst目前收录了约 60 个内置模型规格每个规格对应一个独立的文档页面如 whisper-large-v3.rst、cosyvoice2-0.5b.rst这些页面为统一格式生成包含模型名、模型族、能力Abilities、多语言标记Multilingual、模型 ID 与推荐启动命令。按能力划分内置音频模型可归为四大类分类依据见 model_abilities/audio.rst能力类别代表模型典型用途Audio to Text语音识别/ASRwhisper 全系列tiny/base/small/medium/large-v3/large-v3-turbo、Belle-whisper-large-v3-zh、SenseVoiceSmall、Paraformer 系列、Fun-ASR 系列、Qwen3-ASR把音频转录为文本、翻译为英文Text to AudioTTS 语音合成ChatTTS、CosyVoice 全系列、MeloTTS 全语种、Kokoro-82M、MegaTTS3、F5-TTS、FishSpeech-1.5、IndexTTS2、VoxCPM2、Qwen3-TTS、Breeze-TTS-2、FireRedTTS3 等根据文本合成语音支持零样本、音色克隆、情感控制等音乐生成ACE-Step1.5、MiniMax-Music3仅 NVIDIA CUDA根据歌词与音乐描述生成音乐说话人嵌入speech_campplus_sv_zh-cn_16k-common、speech_campplus_sv_zh_en_16k-common_advanced从音频中提取 192 维说话人向量从源码看这些能力标记直接定义在模型规格文件 xinference/model/audio/model_spec.json 中例如 Whisper 系列的model_ability为[audio2text]CosyVoice2-0.5B 为[text2audio, text2audio_zero_shot, text2audio_voice_cloning]。AudioModelFamilyV2定义于 xinference/model/audio/core.py会将这些规格解析为运行时可查询的描述前端在“启动模型”对话框中即依据该描述展示能力与引擎选项。多引擎架构一个模型名多种运行时Xinference 音频模型的一个重要设计是一模型多引擎同一个模型名可以通过--model-engine参数选择不同的推理后端。规格页中明确标注了可用引擎例如whisper-large-v3transformers默认与MLXQwen3-ASR-1.7Btransformers默认、MLX在 Linux NVIDIA GPU 上还可使用vLLMF5-TTSPyTorch默认与MLXKokoro-82MPyTorch与MLXFun-ASR-Nano-2512PyTorch与MLXQwen3-TTS 系列PyTorch与MLX引擎分发的底层实现位于 xinference/model/audio/engine_family.py。其中AUDIO_ENGINES字典维护模型名 → 引擎名 → 实现类的注册关系check_engine_by_model_name_and_engine负责把用户传入的引擎名映射到具体实现类当用户不指定引擎时core.py 会取注册表中第一个引擎作为默认值。引擎探测还通过is_model_family_supported做精确过滤避免无关引擎出现在启动选项中。值得注意的兼容性设计见 core.py 与 audio.rst 的 Audio engines 一节历史上形如whisper-large-v3-mlx的模型名依然可以作为启动别名使用但会被自动解析为规范名whisper-large-v3加上--model-engine MLX注册、缓存、版本查询和虚拟环境查找都统一使用规范模型名新集成应优先使用--model-engine MLX的写法。启动内置音频模型一条命令完成部署命令行启动内置音频模型的统一启动入口是xinference launch基本形态为xinference launch --model-name 模型名 --model-type audio [--model-engine 引擎]结合各规格页常见示例# Whisper 语音识别默认 transformers 引擎 xinference launch --model-name whisper-large-v3 --model-type audio --model-engine transformers # Apple Silicon 上使用 MLX 引擎 xinference launch --model-name whisper-large-v3 --model-type audio --model-engine MLX # Linux NVIDIA GPU 上使用 vLLM 加速 Qwen3-ASR 转录 xinference launch --model-name Qwen3-ASR-1.7B --model-type audio --model-engine vLLM # TTSKokoro-82MPyTorch 引擎 xinference launch --model-name Kokoro-82M --model-type audio --model-engine PyTorch # TTSCosyVoice2-0.5B单引擎无需指定 xinference launch --model-name CosyVoice2-0.5B --model-type audio # ASRParaformer-zh单引擎 xinference launch --model-name paraformer-zh --model-type audio # 中文 TTSMeloTTS-Chinese xinference launch --model-name MeloTTS-Chinese --model-type audio带特殊参数的启动部分模型在启动时需要额外的模型级参数--key value形式这些参数最终会通过 create_audio_model_instance 的**kwargs通道传给模型实现Kokoro 中文支持先执行pip install misaki[zh]启动时传lang_codez推理时 voice 需以z开头如zf_xiaoyi。SenseVoiceSmall 离线 VAD提前下载fsmn-vad模型后启动时传--vad_model /path/to/fsmn-vad。Paraformer 说话人信息使用paraformer-zh-long或seaco-paraformer-zh时追加--spk_model cam才能输出说话人信息。IndexTTS2 离线小模型将 w2v-bert-2.0、campplus、bigvgan、MaskGCT 四个模型下载到同一目录后启动时传--small_models_dir /path/to/small_models。ACE-Step1.5 启用 LM 规划--lm_model_path acestep-5Hz-lm-1.7Blm_backend可选pt/vllm/mlx。Breeze-TTS-2 加速--fast_all true或单独启用fast_text_encoder、fast_backbone_prefill等 CUDA Graph 选项。四种 OpenAI 兼容音频 API路由注册位于 xinference/api/routers/audio.py四个端点与 OpenAI Audio API 对齐启用认证时均需要models:read权限能力端点转录Transcription/v1/audio/transcriptions翻译Translation转英文/v1/audio/translations语音合成Speech/v1/audio/speech说话人嵌入Speaker Embedding/v1/audio/embeddings语音识别转录与翻译转录把音频转为原文语言翻译则统一转成英文。两者请求体一致均可使用 cURL、OpenAI Python Client 或 Xinference Python Clientcurl -X POST \ http://XINFERENCE_HOST:XINFERENCE_PORT/v1/audio/transcriptions \ -H accept: application/json \ -H Content-Type: application/json \ -d { model: MODEL_UID, file: audio bytes }import openai client openai.Client( api_keycannot be empty, base_urlhttp://XINFERENCE_HOST:XINFERENCE_PORT/v1 ) with open(speech.mp3, rb) as audio_file: client.audio.transcriptions.create(modelMODEL_UID, fileaudio_file)Xinference Python Client 等价写法from xinference.client import Client client Client(http://XINFERENCE_HOST:XINFERENCE_PORT) model client.get_model(MODEL_UID) with open(speech.mp3, rb) as audio_file: model.transcriptions(audioaudio_file.read())响应为包含text字段的 JSON。翻译端点把路径换成/v1/audio/translations客户端方法改为model.translations(...)或client.audio.translations.create(...)即可。语音合成SpeechSpeech 端点接收文本并返回音频二进制默认非流式输出。基本用法curl -X POST \ http://XINFERENCE_HOST:XINFERENCE_PORT/v1/audio/speech \ -H accept: application/json \ -H Content-Type: application/json \ -d { model: MODEL_UID, input: The text to generate audio for, voice: echo, stream: true }import openai client openai.Client( api_keycannot be empty, base_urlhttp://XINFERENCE_HOST:XINFERENCE_PORT/v1 ) client.audio.speech.create(modelMODEL_UID, inputtext, voiceecho)Xinference Python Clientfrom xinference.client import Client client Client(http://XINFERENCE_HOST:XINFERENCE_PORT) model client.get_model(MODEL_UID) speech_bytes model.speech(inputtext, voiceecho)除了通用参数不同 TTS 模型还通过kwargs通道支持扩展能力原文档在 audio.rst 中逐模型说明原始 REST 请求需将kwargs编码为 JSON 字符串CosyVoice 系列CosyVoice-300M-SFT提供预置音色[中文女, 中文男, 日语男, 粤语女, 英文女, 英文男, 韩语女]CosyVoice-300M支持音色克隆需传prompt_speechWAV 格式建议 16 kHz其他采样率会被重采样到 16 kHz与prompt_textCosyVoice-300M-Instruct额外支持instruct_text指令控制CosyVoice2-0.5B集三者于一身并支持streamTrue原生流式。FishSpeech-1.5音色克隆参数对齐 CosyVoice使用prompt_speech与prompt_text。Breeze-TTS-2支持自然语言音色设计只传instruct、音色克隆prompt_speechprompt_text与语音导演三者同传cfg_scale默认 1推荐 4seed默认 42仅支持 Linux NVIDIA CUDA。IndexTTS2支持情感控制——emo_audio_prompt情感参考音频、emo_alpha0.0~1.0默认 1.0、emo_vector8 维情感强度列表顺序为[happy, angry, sad, afraid, disgusted, melancholic, surprised, calm]、use_emo_text/emo_text文本情感引导建议emo_alpha约 0.6以及use_random随机性开关IndexTTS-2.5额外支持ZH/EN/JA/ES/AR语言参数、speed0.5~2.0与词|读音注音记号。ACE-Step1.5音乐生成歌词放input音乐描述放instructduration默认 60 秒可传-1或 10~600seed-1随机、非负整数可复现输出格式支持aac/flac/mp3/ogg/opus/wav/wav32需要 Python 3.11/3.12运行在独立虚拟环境中源码约束见 core.py。MiniMax-Music3音乐生成同样复用 Speech 端点duration范围 0.04~360 秒默认 60作为audio_duration直传 Diffusers输出flac/mp3/ogg/wav仅支持 NVIDIA CUDA源码在 core.py 中显式校验。说话人嵌入Speaker Embedding该端点一次输入一个音频文件返回一个 192 维的说话人向量内置 CAMPPlus 模型设计上无状态适合存储向量后用余弦相似度做说话人验证或 1:N 识别。请求使用multipart/form-datacurl -X POST \ http://XINFERENCE_HOST:XINFERENCE_PORT/v1/audio/embeddings \ -H accept: application/json \ -F modelMODEL_UID \ -F filespeaker.wavfrom xinference.client import Client client Client(http://XINFERENCE_HOST:XINFERENCE_PORT) model client.get_model(MODEL_UID) with open(speaker.wav, rb) as audio_file: result model.create_embedding(audio_file.read()) embedding result[embedding] # 192 维向量响应示例{ object: embedding, model: MODEL_UID, dimensions: 192, embedding: [0.0123, -0.0456, 0.0789] }输入音频会被解码、转单声道并重采样到 16 kHz比较两个向量时使用余弦相似度阈值需结合自身场景数据标定。从模型规格到实例化内置音频模型的分发链路要理解为什么一条启动命令就能拉起任意音频模型可以追踪 create_audio_model_instance 的完整流程解析引擎resolve_audio_model_name_and_engine先把*-mlx旧别名归一化为规范名 MLX 引擎。匹配规格match_audio在BUILTIN_AUDIO_MODELS由model_spec.json注册中按模型名、引擎、量化等级、下载源HuggingFace / ModelScope / OpenMind Hub / CSGHub筛选出AudioModelFamilyV2规格。引擎分发若该模型注册了多引擎则通过check_engine_by_model_name_and_engine找到具体实现类若启用了虚拟环境enable_virtual_env走check_engine_by_model_name_and_engine_with_virtual_env绕过兼容性检查。缓存下载通过CacheManager把权重缓存到本地再实例化。按模型族创建实例未走引擎分发的模型族按model_spec.model_family分支创建对应实现类如whisper族在 MLX 引擎下创建WhisperMLXModel否则WhisperModelfunasr族对应FunASRModel/MLXAudioSTTModelqwen3_tts族对应Qwen3TTSModel/MLXAudioTTSModel等。每个内置模型规格还带有virtualenv依赖声明如 Whisper 依赖transformers、accelerate、系统 torch/numpy见 model_spec.json配合 虚拟环境机制 可实现依赖隔离。若需要接入清单之外的模型可参考 自定义音频模型 与 xinference/model/audio/custom.py 注册自有模型族。结语从 内置音频模型索引 出发Xinference 以一份模型规格 一条启动命令 四类 OpenAI 兼容 API的方式封装了当今主流的开源音频模型。无论是用 Whisper/Qwen3-ASR 做多语种转录、用 CosyVoice/F5-TTS/IndexTTS2 做音色克隆与情感语音、还是用 ACE-Step/MiniMax-Music3 生成音乐核心动作都收敛为一次xinference launch --model-type audio与一次标准 HTTP 调用工程侧则可通过--model-engine在 CPU/GPU/Apple Silicon 之间灵活切换运行时。【免费下载链接】inferenceSwap GPT for any LLM by changing a single line of code. Xinference lets you run open-source, speech, and multimodal models on cloud, on-prem, or your laptop — all through one unified, production-ready inference API.项目地址: https://gitcode.com/GitHub_Trending/in/inference创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表