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()
相关推荐
ShiMetaPi6 小时前
182X 模型转换详解:从 PC 模型到板端 NPU 运行全流程
ai·边缘计算·rk3588·rk1820·rk1828
ShiMetaPi3 天前
182X 模型调用详解:像调云端 API 一样用 OpenAI 接口跑板端模型
边缘计算·rk3588·rk1820
ShiMetaPi6 天前
182X 端云协同方案详解:部署你的本地 AI Agent 主机
边缘计算·rk3588·aiagent·openclaw·rk1828
QMCY_jason7 天前
英飞凌 OK3588C 开发板 成功移植视频转码程序记录
rk3588·视频转码
死磕音视频12 天前
ElevenLabs 文字转语音入门:把稿件变成可下载的旁白音频
tts·文字转语音·elevenlabs·内容创作
O。O蛋黄酥啊12 天前
实时语音 Agent 开发完全指南:从 ASR/TTS 到 WebRTC/VAD 的链路拆解
大模型·webrtc·语音识别·tts·asr
szxinmai主板定制专家14 天前
储能EMS + 协调控制器实战:RK3568/3576/3588+FPGA+AI 故障录波与诊断
人工智能·深度学习·机器学习·fpga开发·rk3588·rk3576·协调控制器
骑着蜗牛撵大象32716 天前
边听边答的底层逻辑:实时语音对话的延迟拆解与流水线设计
ai·对话系统·tts·低延迟·流式asr
云樱梦海18 天前
5 分钟上手 IndexTTS 2.5 便携包:不用装 Python、不挑显卡、本地离线跑语音克隆
开发语言·python·tts·indextts2.5
深度智能Ai23 天前
IndexTTS 2.5 语音合成 API 接口使用文档
ai·语音合成·tts·在线语音合成