WeNet的Runtime编译与应用

一、下载visual studio

下载:百度输入 visual studio 官网,下载 visual studio并安装,安装完要配置环境变量,即把cmake路径配置进去

WeNet的Runtime编译与应用_第1张图片

环境配置:将C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin配置到环境变量

WeNet的Runtime编译与应用_第2张图片

 配置完打开终端,输入cmake

WeNet的Runtime编译与应用_第3张图片

二、本地编译(不推荐,失败概率很大)

编译后的可执行文件为decoder_main.exe

(1)拉取源码(设置参数)

​
git clone -c core.symLinks=true  https://github.com/wenet-e2e/wenet.git

(2)进入wenet\runtime\libtorch目录

进入目录

cd .\wenet\runtime\libtorch\

创建build目录

cmake -B build

指定build目录,开始编译

cmake --build build

二、借助github的action进行编译,再下载下来

编译后的可执行文件为decoder_main.exe

(1)先fork项目到自己的仓库(才有编译权限)

(2)在自己仓库的项目下,Action—> Build Windows Runtime—>Run workflow即可开始编译,再点击右侧的Build Windows Runtime可查看编译日志

WeNet的Runtime编译与应用_第4张图片

WeNet的Runtime编译与应用_第5张图片

WeNet的Runtime编译与应用_第6张图片

 WeNet的Runtime编译与应用_第7张图片

WeNet的Runtime编译与应用_第8张图片

 WeNet的Runtime编译与应用_第9张图片

 WeNet的Runtime编译与应用_第10张图片

三、Docker容器中编译

前提是已经装好了window上docker desktop等环境,参考另一篇博客地址

 window安装docker Desktop和wsl2_流音寻帆_jonesky的博客-CSDN博客

WeNet的Runtime编译与应用_第11张图片

拉取镜像

docker pull wenetorg/wenet

实例化容器(进入容器)

docker run --rm -it wenetorg/wenet bash

cd /home

ls

cd wenet

git log # 查看代码版本,按q退出

WeNet的Runtime编译与应用_第12张图片

由于代码较旧,需要重新拉取代码

git pull

若报错fatal: unable to access 'https://github.com/wenet-e2e/wenet.git/': gnutls_handshake() failed: The TLS connection was non-properly terminated.

代理开起来,重新拉取代码

备注:若不小心退出容器,重新进入

docker ps  # 查看容器ID

docker exec -it 容器ID  /bin/bash

开始编译

cd  /home/wenet/runtime/libtorch/

创建build目录

cmake -B build  # 先看是否有build文件夹,正常是有了,没有再执行这个步骤

指定build目录,开始编译

cmake --build build

出现如下,表示编译完成

WeNet的Runtime编译与应用_第13张图片

将更新过代码和编译过的容器打包成新的镜像

开一个新的命令行窗口,执行如下命令:

docker ps # 查看本容器的ID,假定为06530454a22f,根据实际情况修改

 docker commit -m 'has pull latest wenet code' -a 'qiong' 06530454a22f wenet_modify:v1.0 

下载预训练模型

wenet 预训练模型 下载地址 https://wenet-1256283475.cos.ap-shanghai.myqcloud.com/models/wenetspeech/wenetspeech_u2pp_conformer_libtorch.tar.gz

假定下载到本地F盘,解压后的地址为:F:\wenetspeech_u2pp_conformer_libtorch (改地址用于映射)

WeNet的Runtime编译与应用_第14张图片

启动新的容器(此时要做一个文件映射)

docker run --rm -v F:\wenetspeech_u2pp_conformer_libtorch:/home/wenet/runtime/libtorch/docker_resource -it wenet_modify:v1.0 bash

将测试音频也拷贝到F:\wenetspeech_u2pp_conformer_libtorch下

WeNet的Runtime编译与应用_第15张图片

 在新的容器中运行

cd /home/wenet/runtime/libtorch
wav_path=docker_resource/16k-0e7ef8f8-7efc-41a2-b704-ff0b16673ede.wav
model_dir=docker_resource/20220506_u2pp_conformer_libtorch

./build/bin/decoder_main --chunk_size -1 --wav_path $wav_path  --model_path $model_dir/final.zip  --unit_path $model_dir/units.txt 2>&1 | tee log.txt

 推理成功如下

四、流式识别web网页版体验

提前下载好模型

WeNet的Runtime编译与应用_第16张图片

拉取docker

docker pull wenetorg/wenet-mini:latest

启动docker 

docker run --rm -it -p 10086:10086 -v F:\wenetspeech_u2pp_conformer_libtorch\20220506_u2pp_conformer_libtorch:/home/wenet/model wenetorg/wenet-mini:latest bash /home/run.sh

其中F:\wenetspeech_u2pp_conformer_libtorch\20220506_u2pp_conformer_libtorch是本地的模型地址

下载源码到F下,到F:\wenet\runtime\libtorch\web\templates路径下打开index.html

(切记关闭安全软件,才能正常识别)

WeNet的Runtime编译与应用_第17张图片

也可以用github上编译好的文件,测试websocket客户端

编译好的文件下载冰解压到该路径E:\DownLoad\release-wenet-binary

然后运行

.\websocket_client_main.exe  --hostname 127.0.0.1 --port 10086 --wav_path F:\wenetspeech_u2pp_conformer_libtorch\16k-0e7ef8f8-7efc-41a2-b704-ff0b16673ede.wav

其中F:\wenetspeech_u2pp_conformer_libtorch\16k-0e7ef8f8-7efc-41a2-b704-ff0b16673ede.wav表示具体的测试文件,路径可根据实际情况修改,测试结果会发现乱码

WeNet的Runtime编译与应用_第18张图片

 乱码解决如下:

WeNet的Runtime编译与应用_第19张图片

 WeNet的Runtime编译与应用_第20张图片

 WeNet的Runtime编译与应用_第21张图片

 

目录

一、下载visual studio

二、本地编译(不推荐,失败概率很大)

二、借助github的action进行编译,再下载下来

​编辑

​编辑

​编辑

三、Docker容器中编译

四、流式识别web网页版体验


 

你可能感兴趣的:(c#,ide)