0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

EASY EAl Orin Nano(RK3576) whisper语音识别训练部署教程

EASY EAI灵眸科技 ? 来源:EASY EAI灵眸科技 ? 2025-07-17 14:55 ? 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

1Whisper简介

Whisper是OpenAI开源的,识别语音识别能力已达到人类水准自动语音识别系统。Whisper作为一个通用的语音识别模型,它使用了大量的多语言和多任务的监督数据来训练,能够在英语语音识别上达到接近人类水平的鲁棒性和准确性。Whisper还可以进行多语言语音识别、语音翻译和语言识别等任务。Whisper的架构是一个简单的端到端方法,采用了编码器-解码器的Transformer模型,将输入的音频转换为对应的文本序列,并根据特殊的标记来指定不同的任务。

bae535ba-6054-11f0-baa5-92fbcf53809c.png

教程针对语音识别Whisper的训练和部署到EASY-EAI-Orin-nano(RK3576)进行说明。

bb028c00-6054-11f0-baa5-92fbcf53809c.png

接下来对算法流程进行说明,whisper算法系统流程如下图所示:

bb0f756e-6054-11f0-baa5-92fbcf53809c.png

处理器流程:

bb206766-6054-11f0-baa5-92fbcf53809c.png

编码器流程:

bb29f556-6054-11f0-baa5-92fbcf53809c.png

解码器流程:

bb41dc5c-6054-11f0-baa5-92fbcf53809c.png

2Whisper模型训练

Whisper工程下载百度网盘下载链接:

https://pan.baidu.com/s/1rX422_7AUMNB_MvZRKL9CQ?pwd=1234(提取码: 1234)

数据集准备

在本例中,whisper-finetuning工程为whisper模型微调训练工程,该工程提供whisper数据转换,模型微调训练代码。本章节将以AiShell数据集演示whisper模型微调训练过程。

其中AiShell下载链接:

https://openslr.magicdatatech.com/resources/33/

AiShell数据转SRT

在本例中我们提供了AiShell数据集转成SRT的python脚本,请根据示例修改脚本内容,其中:

1. aishell_extract.py 解压AiShell数据集,解压后:

data_aishell

├── transcript

│ └── aishell_transcript_v0.8.txt

└── wav

├── dev

├── test

└── train

2. aishell2srt.py 将解压后的AiShell数据集转成SRT格式,其格式如下:

datas/data_aishell/wav/test/S0907/BAC009S0907W0352.wav 作为 此次 赛事 上 唯一 一 场 纯泰 式 规则 的 超级 战

datas/data_aishell/wav/test/S0907/BAC009S0907W0269.wav 苹果 正在 全力 以 赴 出售 尽 可能 多 的 智能 手机

datas/data_aishell/wav/test/S0907/BAC009S0907W0147.wav 从业 人员 五万 人

datas/data_aishell/wav/test/S0907/BAC009S0907W0495.wav 港媒 称 内地 人 不 穷 了 为 何 仍 爱 抢 学者 抢 习惯 了

3. 在本例中我们提供了create_data.py,将SRT数据转成训练数据,执行命令:

python create_data.py --data-file --language --output train.json

#suchas:

python create_data.py --data-file datas/data_aishell/train.txt --language zh --output train.json

转换后数据格式如下:

{"audio_path": "datas/data_aishell/wav/test/S0907/BAC009S0907W0352.wav", "text":"作为 此次 赛事 上 唯一 一 场 纯泰 式 规则 的 超级 战", "language": "zh", "prompt":""}

{"audio_path": "datas/data_aishell/wav/test/S0907/BAC009S0907W0269.wav", "text": "苹果 正在 全力 以 赴 出售 尽 可能 多 的 智能 手机", "language": "zh", "prompt":""}

{"audio_path": "datas/data_aishell/wav/test/S0907/BAC009S0907W0147.wav", "text": "从业 人员 五万 人", "language": "zh", "prompt":""}

{"audio_path": "datas/data_aishell/wav/test/S0907/BAC009S0907W0495.wav", "text": "港媒 称 内地 人 不 穷 了 为 何 仍 爱 抢 学者 抢 习惯 了", "language": "zh", "prompt":""}

模型训练

在本例中我们提供了run_finetuning.py用于模型训练,执行命令如下:

python run_finetuning.py --train-json --dev-json --model --save-dir

注:其中model可以为tiny, base, small, medium等值,程序会自动下载对应的模型;如果,model的值为本地模型文件,则程序会直接加载本地模型进行微调训练。训练好的模型将保存在save-dir目录下。

PT模型转ONNX

convert工程为whisper模型转换工程,提供了将pt模型转rknn过程的所有脚本。在本例中我们提供了export_onnx.py脚本将pt模型转成onnx,转换命令:

pip install openai-whisper==20231117

python export_onnx.py --model_type

注:

model_type可以为tiny, base, small, medium等值,程序会自动下载对应的模型。如果model的值为本地模型文件,则程序会直接加载本地模型进行转换。同时,onnx模型保存地址需要修改export_onnx.py代码。

3rknn-toolkit模型转换

rknn-toolkit模型转换环境搭建

onnx模型需要转换为rknn模型才能在EASY-EAI-Orin-nano运行,所以需要先搭建rknn-toolkit模型转换工具的环境。当然tensorflow、tensroflow lite、caffe、darknet等也是通过类似的方法进行模型转换,只是本教程onnx为例。

概 述

模型转换环境搭建流程如下所示:

bb4bea9e-6054-11f0-baa5-92fbcf53809c.png ? ? ?

下载模型转换工具

为了保证模型转换工具顺利运行,请下载网盘里“06.AI算法开发/01.rknn-toolkit2模型转换工具/rknn-toolkit2-v2.3.0/docker/rknn-toolkit2-v2.3.0-cp38-docker.tar.gz”。

网盘下载链接:

https://pan.baidu.com/s/1J86chdq1klKFnpCO1RCcEA?pwd=1234(提取码:1234)

把工具移到ubuntu20.04

把下载完成的docker镜像移到我司的虚拟机ubuntu20.04的rknn-toolkit2目录,如下图所示:

bb5b491c-6054-11f0-baa5-92fbcf53809c.png

运行模型转换工具环境

在该目录打开终端

bb6d47ca-6054-11f0-baa5-92fbcf53809c.png

执行以下指令加载模型转换工具docker镜像:

docker load --input rknn-toolkit2-v2.3.0-cp38-docker.tar.gz

执行以下指令进入镜像bash环境:

docker run -t -i --privileged -v /dev/bus/usb:/dev/bus/usb rknn-toolkit2:2.3.0-cp38 /bin/bash

现象如下图所示:

bb79f1a0-6054-11f0-baa5-92fbcf53809c.png

输入“python”加载python相关库,尝试加载rknn库,如下图环境测试成功:

bb81729a-6054-11f0-baa5-92fbcf53809c.png

至此,模型转换工具环境搭建完成。

模型转换为RKNN

EASY EAI Orin-nano支持.rknn后缀的模型的评估及运行,对于常见的tensorflow、tensroflow lite、caffe、darknet、onnx和Pytorch模型都可以通过我们提供的 toolkit 工具将其转换至 rknn 模型,而对于其他框架训练出来的模型,也可以先将其转至 onnx 模型再转换为 rknn 模型。模型转换操作流程入下图所示:

bb92e87c-6054-11f0-baa5-92fbcf53809c.png ? ? ?

模型转换Demo下载

下载百度网盘链接:

https://pan.baidu.com/s/1C1lQN1U9YhKwpi6PwuyxxA?pwd=1234(提取码: 1234)

把whisper_convert_rk3576.tar.bz2解压到虚拟机,如下图所示:

bb9fbdc2-6054-11f0-baa5-92fbcf53809c.png

进入模型转换工具docker环境

执行以下指令把工作区域映射进docker镜像,其中,/home/developer/rknn-toolkit2/model_convert_test为工作区域,/test为映射到docker镜像,/dev/bus/usb:/dev/bus/usb为映射usb到docker镜像

docker run -t -i --privileged -v /dev/bus/usb:/dev/bus/usb -v /home/developer/rknn-toolkit2/model_convert_test:/test rknn-toolkit2:2.3.0-cp38 /bin/bash

执行成功如下图所示:

bbb16e14-6054-11f0-baa5-92fbcf53809c.png

模型转换操作说明

1、模型转换Demo目录结构

bbbdbfca-6054-11f0-baa5-92fbcf53809c.png

2、 onnx模型转换为rknn模型

在本例中我们提供了rknn_convert.py脚本将onnx模型转成rknn,脚本代码清单如下所示:

import os

importurllib

importtraceback

importtime

importsys

importnumpy as np

importcv2

from rknn.apiimportRKNN

ONNX_MODEL ='./whisper_decoder_base_20s.onnx'

RKNN_MODEL ='./whisper_decoder_base_20s.rknn'

DATASET ='./pic_path.txt'

QUANTIZE_ON = False

if__name__ =='__main__':

# Create RKNN object

rknn =RKNN(verbose=True)

ifnot os.path.exists(ONNX_MODEL):

print('model not exist')

exit(-1)

#pre-process config

print('--> Config model')

rknn.config(target_platform ='rk3576')

print('done')

# Load ONNX model

print('--> Loading model')

ret = rknn.load_onnx(model=ONNX_MODEL)

ifret !=0:

print('Load model failed!')

exit(ret)

print('done')

# Build model

print('--> Building model')

ret = rknn.build(do_quantization=QUANTIZE_ON)

ifret !=0:

print('Build model failed!')

exit(ret)

print('done')

# Export RKNN model

print('--> Export RKNN model')

ret = rknn.export_rknn(RKNN_MODEL)

ifret !=0:

print('Export model failed!')

exit(ret)

print('done')

切换目录到模型转换工作目录:

cd /test/whisper_convert_rk3576

bbda7f48-6054-11f0-baa5-92fbcf53809c.png

执行模型转换脚本,转换解码模型:

python rknn_convert.py

注:whisper是编码器-解码器的Transformer模型,所以encoder和decoder模型均需转换。生成模型如下图所示,模型将保存至output_path 路径,此模型可以在rknn环境和EASY EAI Orin-nano环境运行:

bbe376d4-6054-11f0-baa5-92fbcf53809c.png

修改rknn_convert.py脚本的ONNX_MODEL和RKNN_MODEL,改为编码模型的信息。

bbf25af0-6054-11f0-baa5-92fbcf53809c.png

执行模型转换脚本,转换编码模型:

bbfcb590-6054-11f0-baa5-92fbcf53809c.png

至此,模型转换流程已完成。

4

模型部署示例

本小节展示Whisper模型的在EASY EAI Orin-nano的部署过程,本章章节使用解码模型whisper_decoder_base_20s.rknn和编码模型whisper_encoder_base_20s.rknn。

源码下载及说明

下载whisper C Demo示例文件

百度网盘链接:

https://pan.baidu.com/s/1ID5s2LAs_EdgHYcLds3Tvw?pwd=1234(提取码:1234)。

下载程序包移至ubuntu环境后,执行以下指令解压:

tar xvf whisper_C_demo.tar.bz2

下载解压后如下图所示:

bc0de4aa-6054-11f0-baa5-92fbcf53809c.png

例程编译

通过adb接口连接EASY-EAI-Orin-nano,,连接方式如下图所示:

bc155bae-6054-11f0-baa5-92fbcf53809c.png

接下来需要通过adb把源码传输到板卡上,先切换目录然后执行以下指令:

adb push whisper_C_demo /userdata

bc352d80-6054-11f0-baa5-92fbcf53809c.png

登录到板子切换到例程目录执行编译操作

adb shell

cd /userdata/whisper_C_demo

chmod777build.sh

./build.sh

bc3ea78e-6054-11f0-baa5-92fbcf53809c.png ? ?

运行结果

编译成功后会得到whisper_demo可执行程序,切换到whisper_C_demo_release/目录:

cd whisper_C_demo_release/

进行中文语音识别测试:

./whisper_demo whisper_encoder_base_20s.rknn whisper_decoder_base_20s.rknn mel_80_filters.txt vocab_zh.txt zh12345678910_CN.wav

执行成功识别出中文语音内容,RTF值约为0.046:

bc4dcb7e-6054-11f0-baa5-92fbcf53809c.png

进行英文语音识别测试,RTF值为0.055:

bc5b93da-6054-11f0-baa5-92fbcf53809c.png

至此,whisper语音识别例程已成功在板卡运行。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 编码器
    +关注

    关注

    45

    文章

    3822

    浏览量

    138382
  • 语音识别
    +关注

    关注

    39

    文章

    1785

    浏览量

    114340
  • 开源
    +关注

    关注

    3

    文章

    3754

    浏览量

    43968
  • 模型
    +关注

    关注

    1

    文章

    3531

    浏览量

    50565
  • OpenAI
    +关注

    关注

    9

    文章

    1211

    浏览量

    8987

原文标题:EASY EAl Orin Nano(RK3576) whisper语音识别训练部署教程

文章出处:【微信号:easy-eai-AIoT,微信公众号:EASY EAI灵眸科技】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    基于RK3576开发板的人脸识别算法

    RK3576开发板展示人脸识别算法例程和API说明
    的头像 发表于 05-07 16:48 ?2024次阅读
    基于<b class='flag-5'>RK3576</b>开发板的人脸<b class='flag-5'>识别</b>算法

    RK3576 vs RK3588:为何越来越多的开发者转向RK3576

    瑞芯微(Rockchip)最新发布的 RK3576 一经推出,就吸引了大量原本关注 RK3588 的开发者。RK3588 作为旗舰级芯片,性能固然强大,但 RK3576 凭借其超高的能
    发表于 05-30 08:46

    Mpp支持RK3576

    想问下,https://github.com/rockchip-linux/mpp这里面支持RK3576么,看介绍没有提到说支持RK3576 目前是买了个rk3576的机顶盒,搭载了安卓14,想做安卓视频硬解。
    发表于 06-13 15:35

    EASY EAI Orin Nano开发板试用体验】01-开箱报告及开发环境准备

    28nm提升到了8nm;而与旗舰RK3588对比来讲,性能虽然降低了一些,但是RK3576的价格不是降低了一点点,就目前来讲如果购买开发板的话,就像EASY EAI Orin
    发表于 06-24 19:04

    EASY EAI Orin Nano开发板试用体验】--开发板开箱了解

    感谢灵眸科技与论坛提供的开发板与平台。EASY EAI Orin-Nano开发板实物如下: EASY EAI Orin Nano开发板基于瑞
    发表于 06-25 23:32

    EASY EAI Orin Nano开发板试用体验】人脸识别体验

    /nfs -o nolock 【注】此处需要插上网线连上网,要不提示连接服务器出错。 3、进入人脸识别目录,并执行./build.sh编译: root@EASY-EAI-ORIN-NANO:/home
    发表于 06-26 06:54

    EASY EAI Orin Nano开发板试用体验】开箱和固件烧录更新体验

    首先感谢灵眸科技和发烧友组织的开发板大赛! 一、硬件介绍 灵眸科技EASY EAI Orin-Nano基于瑞芯微的RK3576处理器设计,集成了4个Cortex-A72和4个Cortex-A53
    发表于 06-26 23:41

    EASY EAI Orin Nano开发板试用体验】EASY-EAI-Toolkit初体验

    的工作,开发者可以直接进行AI业务部署,加快了AI应用开发速度。 二、环境搭建 (一)源码下载 考虑到RK3576强大的计算能力,所以就之际在EASY EAI Orin
    发表于 06-28 21:21

    EASY EAI Orin Nano开发板试用体验】人脸识别提升

    【前言】【新提醒】【EASY EAI Orin Nano开发板试用体验】人脸识别体验 - EASY EAI灵眸科技 - 电子技术论坛 - 广
    发表于 07-05 15:21

    RK3576单板发布倒计时:RK3399与RK3576对比

    好多人说RK3576RK3399的升级版,某种程度上也可以这么说,RK3576在强大的多媒体功能的基础上,性能和接口都进行了升级 一、工艺 性能 rk3576采用 Rockchip
    的头像 发表于 12-03 16:59 ?1371次阅读
    <b class='flag-5'>RK3576</b>单板发布倒计时:<b class='flag-5'>RK</b>3399与<b class='flag-5'>RK3576</b>对比

    RK3576 yolov8训练部署教程

    本章展示yolov8模型的在EASY EAI Orin nano部署过程。
    的头像 发表于 04-02 16:04 ?546次阅读
    <b class='flag-5'>RK3576</b> yolov8<b class='flag-5'>训练</b><b class='flag-5'>部署</b>教程

    RK3576 yolov11-seg训练部署教程

    级的精确目标检测与分割,适用于自动驾驶、医学影像、工业检测等对精度和速度要求苛刻的场景。 ? ? ? ?本教程针对目标分割算法yolov11 seg的训练部署EASY-EAI-Orin-nano(
    的头像 发表于 04-16 09:43 ?892次阅读
    <b class='flag-5'>RK3576</b> yolov11-seg<b class='flag-5'>训练</b><b class='flag-5'>部署</b>教程

    基于RK3576处理器,EASY EAI Orin Nano开发板免费试用

    EASY EAI Orin Nano是广州灵眸科技有限公司的旗舰级硬件产品。基于瑞芯微的RK3576处理器设计,集成了4个Cortex-A72和4个Cortex-A53及支持NEON指
    的头像 发表于 06-09 15:01 ?557次阅读
    基于<b class='flag-5'>RK3576</b>处理器,<b class='flag-5'>EASY</b> EAI <b class='flag-5'>Orin</b> <b class='flag-5'>Nano</b>开发板免费试用

    EASY EAl Orin Nano(RK3576) whisper语音识别训练部署教程

    1Whisper简介Whisper是OpenAI开源的,识别语音识别能力已达到人类水准自动语音
    的头像 发表于 07-25 15:21 ?101次阅读
    <b class='flag-5'>EASY</b> <b class='flag-5'>EAl</b> <b class='flag-5'>Orin</b> <b class='flag-5'>Nano</b>(<b class='flag-5'>RK3576</b>) <b class='flag-5'>whisper</b><b class='flag-5'>语音</b><b class='flag-5'>识别</b><b class='flag-5'>训练</b><b class='flag-5'>部署</b>教程

    RK3576 Yolov11训练部署教程

    、使用最广泛的YOLO变体。YOLO11将延续YOLO系列的传奇。本教程针对目标检测算法yolo11的训练部署EASY-EAI-Orin-nano(RK3576)进
    的头像 发表于 07-25 15:22 ?109次阅读
    <b class='flag-5'>RK3576</b> Yolov11<b class='flag-5'>训练</b><b class='flag-5'>部署</b>教程