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

资讯详情

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

Xorbits Inference 部署指南:Qwen3-TTS-12Hz-1.7B-VoiceDesign 语音设计与多引擎实战

Xorbits Inference 部署指南:Qwen3-TTS-12Hz-1.7B-VoiceDesign 语音设计与多引擎实战 Xorbits Inference 部署指南Qwen3-TTS-12Hz-1.7B-VoiceDesign 语音设计与多引擎实战【免费下载链接】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/inferenceXorbits Inferencexinference内置了 Qwen3-TTS-12Hz-1.7B-VoiceDesign 语音合成模型它支持 text2audio 与 text2audio_voice_design 双能力可在不提供任何参考音频的情况下通过自然语言指令设计全新音色。本文以该模型的官方文档 qwen3-tts-12hz-1.7b-voicedesign.rst 为核心结合仓库源码说明模型规格、PyTorch/MLX 双引擎差异、启动方式与推理调用细节帮助你快速在本地或生产环境跑通零样本音色设计 文本转语音完整链路。模型概述从零创造音色的 VoiceDesign 模型根据官方模型文档该模型的基本信息如下模型名称Model NameQwen3-TTS-12Hz-1.7B-VoiceDesign模型家族Model Familyqwen3_tts能力Abilitiestext2audio、text2audio_voice_design多语言MultilingualTrue它隶属于 Qwen3-TTS 系列。与系列中另外两个成员——面向基础合成的Qwen3-TTS-12Hz-1.7B-Base能力为text2audio、text2audio_voice_cloning和面向给定说话人克隆的Qwen3-TTS-12Hz-1.7B-CustomVoice——不同VoiceDesign 变体的核心差异在于新增了text2audio_voice_design能力你不需要提供参考语音只需要用一段自然语言描述想要的音色风格模型即可从零设计并合成出符合描述的语音适合角色配音、有声内容定制、游戏/影视试音等凭空造音场景。仓库内置模型注册表 model_spec.json 中对该模型的完整定义进一步印证了这一点模型 ID 为Qwen/Qwen3-TTS-12Hz-1.7B-VoiceDesignHugging Face 分支main同时提供 ModelScope 镜像Qwen/Qwen3-TTS-12Hz-1.7B-VoiceDesign分支master国内网络环境可自动走 ModelScope 源官方声明支持 11 种语言自动检测auto以及中文、英文、法文、德文、意大利文、日文、韩文、葡萄牙文、俄文、西班牙文依赖隔离PyTorch 引擎的虚拟环境依赖为qwen-tts以及系统级torch、numpy、pandas意味着运行前需确保qwen-tts包可用。模型规格与双引擎PyTorch / MLX官方文档给出的引擎与模型 ID 如下引擎模型 ID仓库配置PyTorchQwen/Qwen3-TTS-12Hz-1.7B-VoiceDesignMLXmlx-community/Qwen3-TTS-12Hz-1.7B-VoiceDesign-8bit其中 PyTorch 引擎面向 CUDA GPU 环境默认加载到cuda:0使用 bfloat16 精度MLX 引擎是面向 Apple Silicon 的 8-bit 量化版本由 model_spec.json 中的独立条目Qwen3-TTS-12Hz-1.7B-VoiceDesign-MLX定义依赖mlx-audio[tts]0.4.6与soundfile模型来源为 Hugging Face 的mlx-community/Qwen3-TTS-12Hz-1.7B-VoiceDesign-8bit并固定了具体 revisioncommitf90d6177。在源码层面两个引擎的分发逻辑位于 engine.pyMLXAudioTTSEngineModelMLX 引擎通过platform.system() Darwin与platform.processor() arm两个条件判断平台仅当运行在 Apple SiliconM 系列芯片macOS 上时才会匹配PyTorchQwen3TTSAudioModelPyTorch 引擎是 qwen3_tts 家族在PyTorch/ 未指定引擎时的默认选择模型名Qwen3-TTS-12Hz-1.7B-VoiceDesign同时出现在 engine.py 的MLX_AUDIO_TTS_MODEL_NAMES集合中说明它是双引擎共用的内置模型名。注意两个引擎的注册顺序决定了默认引擎。register_builtin_audio_engines()中PyTorch引擎先注册因此在未显式指定--model-engine时PyTorch 会成为默认引擎。启动模型xinference launch 命令官方文档给出了标准启动命令xinference launch --model-name Qwen3-TTS-12Hz-1.7B-VoiceDesign --model-type audio --model-engine PyTorch参数拆解--model-name指定内置模型名必须是Qwen3-TTS-12Hz-1.7B-VoiceDesign区分大小写--model-type固定为audio声明这是一类音频模型--model-engine指定推理引擎。PyTorch 环境写PyTorchApple Silicon 环境可写MLX使用 8-bit 量化版。如需在 Apple Silicon 上启用 MLX 引擎执行xinference launch --model-name Qwen3-TTS-12Hz-1.7B-VoiceDesign --model-type audio --model-engine MLX关于依赖的前置条件从 qwen3_tts.py 的load()实现可以看出PyTorch 引擎在加载时会尝试import qwen_tts与torch若缺少会抛出ImportError并提示pip install qwen-ttsMLX 引擎则在 mlx_audio.py 中要求安装mlx-audio[tts]。xinference 的内置模型虚拟环境机制会自动为模型准备这些依赖也可以提前在目标环境中确认qwen-ttsPyTorch或mlx-audio[tts]MLX已就绪。引擎分发与加载原理模型加载后xinference 会根据模型家族qwen3_tts与平台/引擎选择实现类。PyTorch 路径的加载逻辑在 qwen3_tts.pyself._model Qwen3TTSModel.from_pretrained( self._model_path, device_mapself._device if self._device else cuda:0, dtypetorch.bfloat16, attn_implementationflash_attention_2, # 仅当检测到 flash-attn 时 )关键细节默认设备为cuda:0dtype 固定为torch.bfloat16当环境中可用 flash-attention 时通过 utils.py 的is_flash_attn_available()判断会自动采用flash_attention_2注意力实现加速否则退回默认实现保证兼容性MLX 路径则通过 mlx_audio.py 调用mlx_audio.tts.utils.load加载并配合MLXModelThreadMixin将 load 与推理固定到单一持久线程执行规避 MLX 在跨线程场景下的 GPU stream 绑定问题。能力分派VoiceDesign / CustomVoice / 声音克隆如何抉择模型加载后能力分派的入口位于 qwen3_tts.py 的speech()方法。其逻辑会根据model_family.model_name的后缀做分支模型名以VoiceDesign结尾调用self._model.generate_voice_design(textinput, languagelanguage, instructinstruct, **kwargs)——这正是本文档对应模型的核心路径。instruct参数承载自然语言音色描述例如一位沉稳的中年男性旁白模型名以CustomVoice结尾调用generate_custom_voice此时voice参数必须是模型支持的说话人Base 模型两者都不是不提供上述两种生成能力必须同时提供prompt_speech与prompt_text走generate_voice_clone声音克隆路径。语言参数方面qwen3_tts.py默认languagechinese且会先通过self._model.get_supported_languages()校验传入不支持的语种会抛出带支持列表的ValueError因此language需从模型支持的语言中选择如chinese、english等或使用auto。另外无论哪个引擎都会通过apply_audio_seed(kwargs)/apply_mlx_audio_seed(kwargs)消费可选的seed参数见 utils.py用于同时对 Python、NumPy、Torch以及 MLX随机数种子做设置从而实现多次生成结果的可复现。推理调用OpenAI 兼容语音接口与 Python 客户端xinference 将语音合成暴露为 OpenAI 兼容的 REST 接口/v1/audio/speech路由注册位于 audio.py。若开启鉴权该接口受models:readscope 保护。REST API 调用curlcurl -X POST http://localhost:9997/v1/audio/speech \ -H Content-Type: application/json \ -d { model: model_uid, input: 你好我是由 VoiceDesign 模型合成的语音。, voice: , response_format: mp3, speed: 1.0, stream: false, kwargs: { language: chinese, instruct: 亲切温和的女性嗓音语速平缓 } } --output output.mp3字段说明model启动模型后生成的模型 UID可在xinference list中查看input待合成的文本Python 客户端文档标注最大长度 4096 字符voiceVoiceDesign 路径下可留空音色由kwargs.instruct控制response_format默认mp3底层经 soundfile 编码亦可尝试wav等格式speed语速系数默认1.0stream流式输出标记。注意从 qwen3_tts.py 与 mlx_audio.py 看两个引擎目前都不支持流式生成streamtrue会直接抛异常kwargs透传给底层模型生成函数的附加参数VoiceDesign 场景下关键的是language默认chinese与instruct音色指令。Python 客户端调用使用仓库自带的同步客户端restful_client.pyfrom xinference.client import Client client Client(http://localhost:9997) model_uid client.launch_model( model_nameQwen3-TTS-12Hz-1.7B-VoiceDesign, model_typeaudio, model_enginePyTorch, ) audio client.speech( modelmodel_uid, input欢迎使用 Xinference 零样本音色设计语音合成。, voice, response_formatmp3, speed1.0, streamFalse, languagechinese, instruct低沉而富有磁性的男声适合纪录片旁白, ) with open(output.mp3, wb) as f: f.write(audio)说明client.speech的参数中input、voice、response_format、speed、stream为显式形参其余**kwargs如language、instruct、seed会被序列化为kwargsJSON 字段提交给后端如需可复现结果可在kwargs中传入seed整数结果返回音频二进制bytes直接写文件即可若本机环境允许也可安装 soundfile 后在内存中解码。常见问题与排查提示Failed to import module qwen-ttsPyTorch 引擎依赖缺失按提示pip install qwen-tts后重启模型qwen3_tts.py提示Language xx is not supportedlanguage传入了模型不支持的语言改用chinese/english等文档所列语言或auto流式请求报错当前实现不支持流式输出将stream设为falseMLX 引擎在非 Apple Silicon 上不可用MLX 引擎仅匹配 Darwin arm 平台x86/Linux 请使用 PyTorch 引擎音色不达预期尝试更具体、更结构化的instruct描述如性别、年龄段、情绪、语速、风格并可配合seed固定随机性做对比实验。小结Qwen3-TTS-12Hz-1.7B-VoiceDesign 是 xinference 内置语音模型家族中主打自然语言定义音色的变体一条xinference launch命令即可启动PyTorch 引擎面向 CUDA 环境、MLX 引擎面向 Apple Silicon 的 8-bit 量化部署推理侧通过 OpenAI 兼容的/v1/audio/speech接口或Client.speech调用在kwargs中透传language与instruct即可实现零样本、无参考音频的音色设计与语音合成适合快速搭建个性化 TTS 应用。如需查看该模型的相邻变体Base / CustomVoice与完整内置音频模型清单可继续阅读 doc/source/models/builtin/audio 目录下的对应文档。【免费下载链接】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),仅供参考
返回列表