MeloTTS 生成 RKNN 模型

方案概述 🚀

本方案基于RK3588平台,通过RKNN(Rockchip Neural Network)工具链实现高效的语音生成功能。RK3588作为瑞芯微推出的高性能AIoT处理器,内置NPU(神经网络处理单元),配合RKNN工具链可高效完成端侧语音合成(TTS)任务。

MeloTTS.cpp 是meloTTS 的 C++ 实现,MeloTTS是由 MyShell.ai 发布的一个高质量、多语言的文本转语音 (Text To Speech) 库,支持英语、中文以及其他多种语言。本仓库基于OpenVINO,支持在 CPU、GPU 和 NPU 边缘设备上的部署。目前,本仓库支持中文(混合英文)和纯英语

RK3588平台部署 😈
环境准备:

  • RK3588开发板(推荐Rock5B或Firefly RK3588)
  • RKNN Toolkit2工具包(建议版本≥1.4.0)
  • 音频处理工具库(如librosa/pyaudio等)

部署流程:

  1. 将转换完成的RKNN模型传输至开发板
  2. 编写模型加载及推理代码
  3. 实现文本预处理和音频后处理功能

🎯 模型访问地址:MeloTTS-Chinese(点击直达Hugging Face页面)


生成 ONNX 模型 ⚡

shell 复制代码
# 使用支持 ONNX 导出的版本
git clone https://github.com/mmontol/MeloTTS.git

导出 ONNX 脚本 🔥

  • export_onnx.py

    python 复制代码
    # 修改 config_path/ckpt_path
    from melo.api import TTS
    import os
    os.environ["HF_ENDPOINT"] = "https://hf-mirror.com"
    
    # Speed is adjustable
    speed = 1.0
    device = 'cpu' # or cuda:0
    
    model = TTS(language='ZH', device=device, use_hf=False ,config_path = './MeloTTS-Chinese/config.json',
                ckpt_path='./MeloTTS-Chinese/checkpoint.pth')
    speaker_ids = model.hps.data.spk2id
    
    model.export_onnx(speaker_ids['ZH'])
  • Run

    shell 复制代码
    # 在当前目录下生成encoder-ZH_MIX_EN.onnx和decoder-ZH_MIX_EN.onnx文件
    python export_onnx.py

生成RKNN模型 👿

  • to_rknn.py , 不进行量化生成rknn模型

  • 分别生成 decoder/encoder rknn 模型

    shell 复制代码
    from rknn.api import RKNN
    
    ONNX_MODEL = './weights/decoder-ZH_MIX_EN.onnx'
    RKNN_MODEL = './weights/decoder-ZH_MIX_EN_rk3588.rknn'
    
    PLATFORM = "RK3588"
    QUANTIZE_ON = False
    
    if __name__ == '__main__':
    
        # Create RKNN object
        rknn = RKNN(verbose=False)
        # Pre-process config
        print('--> Config model')
        rknn.config(target_platform=PLATFORM)
        print('done')
    
        # Load model
        print('--> Loading model')
        ret = rknn.load_onnx(model=ONNX_MODEL)
        if ret != 0:
            print('Load model failed!')
            exit(ret)
        print('done')
    
        # Build model
        print('--> Building model')
        ret = rknn.build(do_quantization=QUANTIZE_ON)
        if ret != 0:
            print('Build model failed!')
            exit(ret)
        print('done')
    
        # Export rknn model
        print('--> Export rknn model')
        ret = rknn.export_rknn(RKNN_MODEL)
        if ret != 0:
            print('Export rknn model failed!')
            exit(ret)
        print('done')
    
        # Release
        rknn.release()
相关推荐
云蝠呼叫大模型联络中心4 天前
深度解析|云蝠智能大模型呼叫系统架构:神鹤双擎 + 暴风引擎,低延迟高并发解锁呼叫中心降本增效新路径
系统架构·tts·asr·外呼系统·ai外呼·大模型呼叫·voiceagent
深圳英康仕8 天前
面向高速ETC系统的嵌入式工控设备技术选型探讨
嵌入式硬件·rk3588·工控机·高速etc
用什么都重名10 天前
【RK芯片学习笔记】RK3588开发板上大语言模型转换教程
rk3588·模型转换·rkllm-toolkit
山顶夕景13 天前
【MLLM】Qwen3-TTS语音生成模型
大模型·语音合成·tts·tokenizer
张成AI14 天前
Qwen3-TTS:2026年开源语音克隆与AI语音生成完全指南
tts
农夫山泉2号16 天前
【rk】——rk3588推理获得logits
人工智能·rk3588·ppl
~光~~16 天前
【嵌入式linux学习】04_Pinctrl 和 GPIO子系统
linux·rk3588·嵌入式linux
Industio_触觉智能17 天前
瑞芯微RK3588核心板规格书,详细参数配置,定位ARM高端AIOT智能模组,板对板连接器320Pin 间距0.5 B to B连接器
arm开发·rk3588·开发板·开源鸿蒙·核心板·瑞芯微·rk3588j
信工 180223 天前
RK3588系统烧录后扩容
linux·rk3588