FunASR/funasr/runtime/grpc
2023-04-27 19:39:05 +08:00
..
CMakeLists.txt fix paraformer server for new apis 2023-04-27 15:17:24 +08:00
common.cmake grpc onnx cpp first commit 2023-03-06 22:50:44 +08:00
paraformer-server.cc fix paraformer server for new apis 2023-04-27 15:17:24 +08:00
paraformer-server.h fix paraformer server for new apis 2023-04-27 15:17:24 +08:00
Readme.md docs 2023-04-27 19:39:05 +08:00
rebuild.sh fix c++ grpc onnx server 2023-03-16 17:06:19 +08:00

Service with grpc-cpp

For the Server

Build onnxruntime as it's document

Compile and install grpc v1.52.0 in case of grpc bugs

export GRPC_INSTALL_DIR=/data/soft/grpc
export PKG_CONFIG_PATH=$GRPC_INSTALL_DIR/lib/pkgconfig

git clone -b v1.52.0 --depth=1  https://github.com/grpc/grpc.git
cd grpc
git submodule update --init --recursive

mkdir -p cmake/build
pushd cmake/build
cmake -DgRPC_INSTALL=ON \
      -DgRPC_BUILD_TESTS=OFF \
      -DCMAKE_INSTALL_PREFIX=$GRPC_INSTALL_DIR \
      ../..
make
make install
popd

echo "export GRPC_INSTALL_DIR=/data/soft/grpc" >> ~/.bashrc
echo "export PKG_CONFIG_PATH=\$GRPC_INSTALL_DIR/lib/pkgconfig" >> ~/.bashrc
echo "export PATH=\$GRPC_INSTALL_DIR/bin/:\$PKG_CONFIG_PATH:\$PATH" >> ~/.bashrc
source ~/.bashrc

Compile and start grpc onnx paraformer server

# set -DONNXRUNTIME_DIR=/path/to/asrmodel/onnxruntime-linux-x64-1.14.0
./rebuild.sh

Start grpc paraformer server

./cmake/build/paraformer-server     --port-id <string> [--punc-config
                                    <string>] [--punc-model <string>]
                                    --am-config <string> --am-cmvn <string>
                                    --am-model <string> [--vad-config
                                    <string>] [--vad-cmvn <string>]
                                    [--vad-model <string>] [--] [--version]
                                    [-h]
Where:
   --port-id <string>
     (required)  port id

   --am-config <string>
     (required)  am config path
   --am-cmvn <string>
     (required)  am cmvn path
   --am-model <string>
     (required)  am model path

   --punc-config <string>
     punc config path
   --punc-model <string>
     punc model path

   --vad-config <string>
     vad config path
   --vad-cmvn <string>
     vad cmvn path
   --vad-model <string>
     vad model path

   Required: --port-id <string> --am-config <string> --am-cmvn <string> --am-model <string> 
   If use vad, please add: [--vad-config <string>] [--vad-cmvn <string>] [--vad-model <string>]
   If use punc, please add: [--punc-config <string>] [--punc-model <string>] 

For the client

Install the requirements as in grpc-python

git clone https://github.com/alibaba/FunASR.git && cd FunASR
cd funasr/runtime/python/grpc
pip install -r requirements_client.txt

Generate protobuf file

Run on server, the two generated pb files are both used for server and client

# paraformer_pb2.py and paraformer_pb2_grpc.py are already generated, 
# regenerate it only when you make changes to ./proto/paraformer.proto file.
python -m grpc_tools.protoc  --proto_path=./proto -I ./proto    --python_out=. --grpc_python_out=./ ./proto/paraformer.proto

Start grpc client

# Start client.
python grpc_main_client_mic.py --host 127.0.0.1 --port 10095

Acknowledge

  1. This project is maintained by FunASR community.
  2. We acknowledge DeepScience for contributing the grpc service.