--- library_name: axengine pipeline_tag: text-to-speech tags: - axera - ax650 - moss-tts license: apache-2.0 --- # MOSS-TTS-Nano.AXERA MOSS-TTS-Nano 的 AX650 板端推理包,包含量化 AXModel、默认质量路径 ONNX、Python 推理 脚本和已经编译好的 C++ 程序。 源码和模型转换工程: ## 1. 文件说明 ```text models/axmodels_650/ AX650 量化模型 models/onnxmodels/ 默认 static320 FP32 decode ONNX bin/moss_tts_ax650/ C++ 可执行文件和 ONNX Runtime 库 config/ tokenizer 和推理元数据 python/ Python 推理入口 scripts/ Python 运行时辅助模块 configuration.json 模型运行配置 config.json Hugging Face 发布规范配置,内容为 {} ``` 默认推理链路使用 `models/onnxmodels/moss_tts_decode_step.onnx`。 ## 2. 安装 Python 依赖 板端需要匹配 AX650 的 `axengine/pyaxengine`,并安装: ```bash python3 -m pip install -r requirements.txt python3 -c "import axengine, onnxruntime, numpy, sentencepiece; print('runtime OK')" ``` 如果只使用 C++ 程序,Python 仅用于准备文本输入;安装同一个依赖文件即可。 ## 3. Python 推理 在本目录执行: ```bash python3 python/infer_moss_tts.py \ --config-dir config \ --axmodel-dir models/axmodels_650 \ --onnx-dir models/onnxmodels \ --text "你好,今天是美好的一天。" \ --voice Junhao \ --sample-mode fixed \ --prefill-backend axmodel \ --local-fixed-backend axmodel \ --decode-backend onnx \ --output-audio-path outputs/python.wav ``` 支持内置音色,例如 `Junhao`、`Zhiming`、`Weiguo`、`Xiaoyu`、`Yuewen`、`Lingyu`、 `Ava`、`Bella`、`Adam`、`Nathan`、`Soyo`、`Saki`、`Mortis`、`Umiri`、`Mei`、`Anon`、 `Arisa` 和 `Trump`。 ## 4. C++ AX650 推理(推荐) 程序已经编译好,不需要在板端编译: ```bash bash run_ax650.sh \ --text "你好,今天是美好的一天。" \ --voice Junhao \ --output-wav outputs/moss_tts.wav \ --output-log outputs/moss_tts.log ``` 脚本默认使用以下链路: ```text tts_prefill.axmodel → tts_local_fixed_sampled_frame.axmodel → models/onnxmodels/moss_tts_decode_step.onnx(static320 FP32,CPU) → codec_decode.axmodel ``` 默认参数为 `max_new_frames=110`、decode warmup 32 帧。static320 模型要求: ```text 实际 prefill 长度 + max_new_frames <= 320 ``` 长文本请按标点分段或降低 `--max-new-frames`。默认质量路径已在多句测试中与原始 512-KV FP32 路径产生一致的 Token/WAV,稳态 RTF 约 `1.10–1.13`。 程序加载时间不计入 RTF。板端同时运行其他 NPU/CPU 任务时,RTF 会升高。 全 AXModel 的 `tts_decode_step.axmodel` 仅用于诊断;长句可能提前停止或出现尾部噪音, 默认不推荐。