Commit 08da69b5 authored by dcuai's avatar dcuai
Browse files

Merge branch 'icon' into 'master'

Add icon and scnet

See merge request !1
parents 496db8f9 c7e4150a
# WeNet-Ort # WeNet-Ort
## 论文 ## 论文
`WeNet: Production Oriented Streaming and Non-streaming End-to-End `WeNet: Production Oriented Streaming and Non-streaming End-to-End Speech Recognition Toolkit`
Speech Recognition Toolkit`
- https://arxiv.org/pdf/2102.01547.pdf - https://arxiv.org/pdf/2102.01547.pdf
## 模型结构 ## 模型结构
WeNet是一种hybird连接主义时间分类(CTC)/注意力架构,以transformer或conformer作为编码器和注意力解码器来重新存储CTC假设。为了在统一的模型中实现流和非流,以及使用了一种基于动态块的注意力策略,该策略允许自注意力以随机长度集中在正确的上下文上。 WeNet是一种hybird连接主义时间分类(CTC)/注意力架构,以transformer或conformer作为编码器和注意力解码器来重新存储CTC假设。为了在统一的模型中实现流和非流,以及使用了一种基于动态块的注意力策略,该策略允许自注意力以随机长度集中在正确的上下文上。
![img](./Doc/images/wenet1.PNG) ![img](./Doc/images/wenet1.PNG)
## 算法原理 ## 算法原理
底层堆栈完全基于PyTorch及其生态系统。中间的堆栈由两部分组成。开发研究模型时,TorchScript用于开发模型,Torchaudio用于动态特征提取,分布式数据并行(DDP)用于分布式训练,torch实时(JIT)用于模型导出,PyTorch量化用于模型量化,LibTorch用于生产运行时。LibTorch产品用于托管生产模型,旨在支持各种硬件和平台,如CPU、GPU(CUDA)Linux、Android和iOS。顶部堆栈显示了对WeNet中生产管道的典型研究 底层堆栈完全基于PyTorch及其生态系统。中间的堆栈由两部分组成。开发研究模型时,TorchScript用于开发模型,Torchaudio用于动态特征提取,分布式数据并行(DDP)用于分布式训练,torch实时(JIT)用于模型导出,PyTorch量化用于模型量化,LibTorch用于生产运行时。LibTorch产品用于托管生产模型,旨在支持各种硬件和平台,如CPU、GPU(CUDA)Linux、Android和iOS。顶部堆栈显示了对WeNet中生产管道的典型研究
![img](./Doc/images/wenet2.PNG) ![img](./Doc/images/wenet2.PNG)
## 环境配置 ## 环境配置
### Docker(方法一) ### Docker(方法一)
拉取镜像: 拉取镜像:
...@@ -34,8 +36,7 @@ docker run --shm-size 16g --network=host --name=wenet_ort --privileged --device= ...@@ -34,8 +36,7 @@ docker run --shm-size 16g --network=host --name=wenet_ort --privileged --device=
``` ```
## 数据集 ## 数据集
下载Aishell数据集:[Aishell](http://113.200.138.88:18080/aidatasets/project-dependency/aishell/)
下载Aishell数据集:[Aishell (openslr.org)](https://www.openslr.org/33/)
``` ```
AISHELL_data/ AISHELL_data/
...@@ -56,10 +57,10 @@ AISHELL_data/ ...@@ -56,10 +57,10 @@ AISHELL_data/
transcript002.txt transcript002.txt
... ...
``` ```
## 推理 ## 推理
### C++版本推理 ### C++版本推理
本次采用经wenet模型完成问题语音识别任务,首先需要下载模型至Resouce/models/,链接:https://pan.baidu.com/s/1aUt6LRcspYLAmmWu0fFTdQ 本次采用经wenet模型完成问题语音识别任务,首先需要下载[模型](http://113.200.138.88:18080/aimodels/findsource-dependency/wenet_onnxruntime)至Resouce/models/,下面介绍如何运行C++代码示例,C++示例的详细说明见Doc目录下的Tutorial_Cpp.md。
提取码:sodg,下面介绍如何运行C++代码示例,C++示例的详细说明见Doc目录下的Tutorial_Cpp.md。
#### 构建工程 #### 构建工程
``` ```
...@@ -69,6 +70,7 @@ mkdir build && cd build ...@@ -69,6 +70,7 @@ mkdir build && cd build
cmake .. cmake ..
make install make install
``` ```
#### 设置推理参数 #### 设置推理参数
``` ```
cd /home/wenet_onnxruntime cd /home/wenet_onnxruntime
...@@ -78,6 +80,7 @@ wav_path=./Resource/BAC009S0764W0344.wav ...@@ -78,6 +80,7 @@ wav_path=./Resource/BAC009S0764W0344.wav
onnx_dir=./Resource/models onnx_dir=./Resource/models
units=./Resource/units.txt units=./Resource/units.txt
``` ```
#### 运行示例 #### 运行示例
``` ```
# 进入wenet onnxruntime工程根目录 # 进入wenet onnxruntime工程根目录
...@@ -85,8 +88,8 @@ cd /home/wenet_onnxruntime ...@@ -85,8 +88,8 @@ cd /home/wenet_onnxruntime
# 执行示例程序 # 执行示例程序
./build/Src/bin/decoder_main --onnx_dir $onnx_dir --wav_path $wav_path --unit_path $units 2>&1 | tee log.txt ./build/Src/bin/decoder_main --onnx_dir $onnx_dir --wav_path $wav_path --unit_path $units 2>&1 | tee log.txt
``` ```
## result ## result
``` ```
test Final result: 脚踝和小腿的能力变弱 test Final result: 脚踝和小腿的能力变弱
...@@ -97,16 +100,17 @@ RTF: 0.1508 ...@@ -97,16 +100,17 @@ RTF: 0.1508
### 精度 ### 精度
## 应用场景 ## 应用场景
### 算法类别 ### 算法类别
`语音识别` 语音识别
### 热点应用行业 ### 热点应用行业
`制造`,`金融`,`交通`,`教育` 制造,金融,交通,教育
## 源码仓库及问题反馈 ## 源码仓库及问题反馈
- https://developer.hpccube.com/codes/modelzoo/wenet_onnxruntime - https://developer.hpccube.com/codes/modelzoo/wenet_onnxruntime
## 参考资料 ## 参考资料
- https://github.com/wenet-e2e/wenet - https://github.com/wenet-e2e/wenet
- https://wenet.org.cn/wenet/ - https://wenet.org.cn/wenet/
icon.png

68.4 KB

Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment