编译Wenet runtime

编译Wenet runtime

需要有cmake、g++

在wenet/runtime/server/x86 进行:mkdir build && cd build && cmake .. && cmake –build .

调试wenet

需要有gdb(安装的gdb 9.2,./configure –prefix=… && make -j all && make install)(安装gdb需要有texinfo(安装的texinfo 6.6,./configure –prefix=… && make -j all && make install))

编译、调试成功

10.22.24.2(yelong port=51720 password=123)

调试decoder_main

用的cgdb调试

首先之前编译cmake时,没有加可选debug的选项,因此不可调试,在CMakeLists.txt加入

1
2
3
SET(CMAKE_BUILD_TYPE "Debug") 
SET(CMAKE_CXX_FLAGS_DEBUG "$ENV{CXXFLAGS} -O0 -Wall -g -ggdb")
SET(CMAKE_CXX_FLAGS_RELEASE "$ENV{CXXFLAGS} -O3 -Wall")

重新编译:在build里:

1
2
3
4
#cmake clean ..
cmake -DCMAKE_BUILD_TYPE=Debug ..
cmake -DCMAKE_BUILD_TYPE=Debug --build .
make # 记得还要一步 make

然后在Libtorch下调试:

1
2
3
4
5
6
7
8
9
10
11
12
13
cgdb build/bin/decoder_main
# 然后在界面中打断点:比如
b asr_decoder.cc:194
# 无tlg
run --chunk_size -1 --wav_scp /home/yelong/data/wenet/examples/aishell/s0/data/xueyuan/wav.scp.1 --model_path /home/yelong/data/wenet/examples/aishell/s0/exp/aban-c009/final.zip --unit_path /home/yelong/data/wenet/examples/aishell/s0/exp/aban-c009/lang.char.txt

# 不调试运行就是:
./build/bin/decoder_main --chunk_size -1 --wav_scp /home/yelong/data/wenet/examples/aishell/s0/data/xueyuan/wav.scp.1 --model_path /home/yelong/data/wenet/examples/aishell/s0/exp/aban-c009/final.zip --unit_path /home/yelong/data/wenet/examples/aishell/s0/exp/aban-c009/lang.char.txt

# 要打印n_best:加 --output_nbest true

# tlg
run --acoustic_scale 5 --beam 5.0 --lattice_beam 7.5 --max_active 7000 --ctc_weight 1 --rescoring_weight 0 --chunk_size -1 --fst_path /data_local/yelong/wenet/examples/aishell/s0/exp/aban-c009/lang_test_aban-c009_lin/TLG.fst --wav_scp home/yelong/data/wenet/examples/aishell/s0/data/xueyuan/wav.scp.1 --model_path /home/yelong/data/wenet/examples/aishell/s0/exp/aban-c009/final.zip --dict_path /home/yelong/data/wenet/examples/aishell/s0/exp/aban-c009/lang_test_aban-c009_lin/words.txt --unit_path /home/yelong/data/wenet/examples/aishell/s0/exp/aban-c009/lang.char.txt

gdb调试报错warning: Error disabling address space randomization: Operation not permitted

https://gitee.com/openeuler/community/issues/I1KPAQ

启动docker时加参数

启动容器时加上–cap-add=SYS_PTRACE –security-opt seccomp=unconfined选项可以解决该问题

docker run -it –cap-add=SYS_PTRACE –security-opt seccomp=unconfined mobvoiwenet/wenet:latest bash

在172.17.84.128的docker里编译,不加debug,是可以编译成功的,

但是加debug后