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()
相关推荐
道川贤林1 天前
EMMC开发环境的搭建与备份
linux·嵌入式·rk3588·orangepi
MageGojo3 天前
基于 API Zero 平台集成 TTS 语音合成服务的技术实践
python·语音合成·tts·restful api·api集成
楼兰公子4 天前
/sys/kernel/debug/目录解读
rk3588·debugfs·linux7.03
Industio_触觉智能5 天前
瑞芯微RK3588工控整机、边缘计算盒子规格书,参数配置性能说明,触觉智能IPC8801
人工智能·ai·边缘计算·rk3588·工控·rk3588j·arm整机
Soari7 天前
GitHub 开源项目解析:OpenBMB/VoxCPM —— Tokenizer-Free 多语言语音合成与声音克隆模型
开源·github·语音合成·tts·多语言语音生成
chenying99817910 天前
语音克隆模型的难点之一:音素对齐及交叉注意力早期失效问题 (兼论旋转位置编码)——F5-TTS、SupertonicTTS、VoxFlash-TTS 对比
人工智能·实时音视频·语音合成·tts·语音克隆
北海有座岛11 天前
VibeVoice Pro声音矩阵:25种音色一键切换体验
语音合成·tts·音频生成·星图gpu
chenying99817912 天前
本地部署 TTS 方案横向对比:Fish Speech、CosyVoice 2、GPT-SoVITS 与 VoxFlash-TTS
人工智能·实时音视频·语音合成·tts
时光飞逝的日子13 天前
嵌入式大模型部署:从 LLaMA-3 到 Qwen-1.5,在 RK3588 上实现本地 AI 推理(含模型量化教程)
rk3588·模型量化·llama-3·端侧大模型·qwen-1.5
siv7714 天前
一站式 AI 视频翻译的技术架构:ASR → NMT → TTS → 字幕压制的全链路设计
whisper·tts·asr·nmt·ai视频翻译·视频翻译架构·字幕压制