1. libtorch下的main脚本
提供了一种调用libtorch模型的识别过程脚本。
路径:wenet/runtime/libtorch/core/bin/decoder_main.cc
编译:
首先之前编译cmake时,没有加可选debug的选项,因此不可调试,在CMakeLists.txt加入
1 | cd wenet/runtime/libtorch |
重新编译:在build里:
1 | cd wenet/runtime/libtorch/build |
编译出的可执行文件叫 decoder_main
,路径在build/bin/decoder_main
,是通过cmake编译整个工程得到的,运行于x86
平台。
调试:
1 | # cd wenet/runtime/libtorch |
2. WebSocket、gRPC、http、docker进行识别
https://github.com/wenet-e2e/wenet/blob/main/runtime/libtorch/README.md
就是在CmakeLists.txt
里打开一些参数,除了这些客户端服务端,还支持不同模型,也是打开CmakeLists.txt
参数。
具体的参考libtorch下的readme。
然后main函数在core/bin下不同文件。
[TODO]
3. binding/python下的main脚本
提供了一种python绑定C++的方法。
main路径在:core/api/wenet_api.cc
编译的路径在:wenet/runtime/binding/python
也能调试C++,因此修改CMakeLists.txt和setup.py
在CMakeLists.txt里添加:
1 | SET(CMAKE_BUILD_TYPE "Debug") |
在setup.py里修改-DCMAKE_BUILD_TYPE=Release
为 -DCMAKE_BUILD_TYPE=Debug
然后在命令行里敲 python3 setup.py build_ext --debug install
进行编译。
每次修改一点代码,要重新python setup ,这个过程非常久。不是增量编译?建议直接用cmake的方法(比如第一种),会更快速,代码都没问题了,如果目标是用python调用C++,那么这会儿再尝试python掉C++的方法也来得及。