ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

如何用 MNN qwen3_tts_demo 运行 Qwen3-TTS 文本转语音?

如何用 MNN qwen3_tts_demo 运行 Qwen3-TTS 文本转语音? 如何用 MNN qwen3_tts_demo 运行 Qwen3-TTS 文本转语音【免费下载链接】MNNMNN: A blazing-fast, lightweight inference engine battle-tested by Alibaba, powering high-performance on-device LLMs and Edge AI.项目地址: https://gitcode.com/GitHub_Trending/mn/MNN本文的任务是用 MNN 自带的qwen3_tts_demo命令行工具把一段文本合成为语音文件。qwen3_tts_demo是 MNN 针对 Qwen3-TTS 的端到端文本转语音TTS示例基于 LLM 引擎的 Omni/Talker 路径实现见 demo 源码。跑通后你会得到一个 24 kHz 的 wav 文件以及 prefill / decode / 音频处理耗时和 RTF 统计。前置条件有两个一是引擎编译时必须开启音频支持二是需要准备 Qwen3-TTS 的 MNN 模型目录和一段参考音色音频。下面按顺序说明。编译开启 MNN_BUILD_LLM 和 MNN_BUILD_AUDIOqwen3_tts_demo的可执行文件只在MNN_BUILD_AUDIO开启时才构建engine/CMakeLists.txt 中qwen3_tts_demo的定义被if (MNN_BUILD_AUDIO)包住而 TTS 路径又属于 LLM 功能因此编译时两个选项都要打开mkdir build cd build cmake .. -DMNN_BUILD_LLMON -DMNN_BUILD_AUDIOON make -j16-DMNN_BUILD_LLMON的说明见 docs/transformers/llm.md 的第二步引擎编译其中还提到需要图像/音频输入的 Omni 模型可再加-DMNN_BUILD_LLM_OMNION以及按平台追加-DMNN_AVX512ONx86等选项。MNN_BUILD_AUDIO是根目录 CMakeLists 中的选项默认 OFF源码中对缺少LLM_SUPPORT_AUDIO宏的运行会直接报Qwen3-TTS ref_audio requires LLM_SUPPORT_AUDIO。编译完成后build目录下会生成qwen3_tts_demo。准备模型目录与参考音频模型侧需要准备 Qwen3-TTS 的 MNN 模型目录下称model_dir。demo 启动时会自动读取model_dir/config.json源码中为Llm::createLLM(joinPath(modelDir, config.json))所以该目录内必须包含导出的config.json及相应模型文件导出流程可参考 docs/transformers/llm.md 中llmexport.py的用法。音色侧必须提供一段参考音频 wav。--ref_audio wav是必填项它提供 speaker-embedding-only 音色克隆所需的参考音色加载时会用 soxr-like 高质量重采样器重采样到 24 kHz。文档明确说明不带--ref_audio的零 speaker embedding 路径不受支持因为该路径不能产生可靠的语音。文档给出的评测参考音频下载地址为https://modelscope.cn/datasets/huangzhengxiang/qwen3-tts-ref/resolve/master/qwen3_tts_ref.wav建议下载到仓库内的transformers/llm/resource/audio/qwen3_tts_ref.wav运行 demo 时用该路径作为--ref_audio的值。运行命令与参数qwen3_tts_demo的参数格式为./qwen3_tts_demo model_dir --text text [max_frames] [dump_dir] [language] --ref_audio wav [--normalize [target_peak]]一个按此格式拼出的完整示例model_dir换成你的 Qwen3-TTS MNN 模型目录./qwen3_tts_demo /path/to/qwen3_tts_model --text 你好我是 MNN。 512 /tmp/tts_out chinese \ --ref_audio transformers/llm/resource/audio/qwen3_tts_ref.wav --normalize各参数含义依据 transformers/README.md 与 docs/transformers/llm.mdmodel_dirQwen3-TTS MNN 模型目录必须包含config.json--text text要合成的文本max_frames最多生成的 codec 帧数默认 128每帧约 80 ms。长文本要调大否则会被截断遇到 EOS 会提前停止所以它只是一个上限dump_dir调试输出目录指定后保存 wav 和 bin 文件demo 会自动mkdir该目录失败会报错退出language语言默认auto支持auto/chinese/english/german/italian/portuguese/spanish/japanese/korean/french/russian--ref_audio wav必填参考音色音频--normalize [target_peak]可选只对保存的 wav 做峰值归一化不填值时目标峰值为 1取值必须在 (0, 1] 区间否则报错normalize target_peak must be in (0, 1]。三个位置参数max_frames、dump_dir、language按顺序出现在--text text之后--ref_audio、--normalize等选项放在其后。出现拼写不符的选项会报unknown option并退出。结果验证运行成功时demo 依次输出以下格式来自 qwen3_tts_demo.cpp 中的实际打印语句frames等数值随输入而变波形摘要waveform shape[1,采样点数] size采样点数及前 16 个采样值指定了--normalize时额外输出waveform_normalized摘要以及normalize target_peak... original_peak... scale...指定了dump_dir时输出saved wav: dump_dir/qwen3_tts_text.wavQwen3-TTS text C chain finished. frames生成帧数耗时统计prefill time、decode time、audio process time、waveform duration和audio RTF。dump_dir中会生成这些文件见 demo 源码文件内容qwen3_tts_text.wav最终语音24000 Hz 保存应用了--normalize时为归一化后的波形mnn_text_waveform.bin原始 float 波形mnn_text_waveform_normalized.bin仅在指定--normalize时保存mnn_text_codes.bin生成的 codec token 序列int 数组失败的判断依据是 demo 会打印明确的错误信息并返回非零退出码Qwen3-TTS load failed模型加载失败常见于model_dir下缺少config.json、Qwen3-TTS generation failed、Qwen3-TTS generated empty waveform加载成功但没有产生波形以及--ref_audio is required for Qwen3-TTS speaker-embedding-only voice cloning漏写必填的参考音频参数。限制与说明参考音色必须提供音色克隆只走 speaker-embedding 路径参考音频会被重采样到 24 kHz与输出采样率一致max_frames设得过小会截断语音长句需要调大但生成遇到 EOS 会自然提前结束--normalize只影响落盘的 wav不改变打印的波形摘要中waveform那一项它始终打印原始波形引擎侧未定义LLM_SUPPORT_AUDIO即编译时未开MNN_BUILD_AUDIO时--ref_audio路径不可用运行会报Qwen3-TTS ref_audio requires LLM_SUPPORT_AUDIO。如果 wav 内容与预期不符可结合dump_dir中的mnn_text_codes.bincodec token和mnn_text_waveform.bin原始波形做进一步比对。相关参数与命令的完整说明见 docs/transformers/llm.md 和 transformers/README.md。【免费下载链接】MNNMNN: A blazing-fast, lightweight inference engine battle-tested by Alibaba, powering high-performance on-device LLMs and Edge AI.项目地址: https://gitcode.com/GitHub_Trending/mn/MNN创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表