From 39b6701ba96b6e0b890f1fcdd5f3397a3a6f491f Mon Sep 17 00:00:00 2001
From: 雾聪 <wucong.lyb@alibaba-inc.com>
Date: 星期四, 14 三月 2024 09:59:11 +0800
Subject: [PATCH] add SwitchArg for wss-server

---
 runtime/websocket/bin/funasr-wss-server.cpp |    5 ++++-
 runtime/websocket/bin/websocket-server.cpp  |    4 ++--
 runtime/websocket/bin/websocket-server.h    |    2 +-
 3 files changed, 7 insertions(+), 4 deletions(-)

diff --git a/runtime/websocket/bin/funasr-wss-server.cpp b/runtime/websocket/bin/funasr-wss-server.cpp
index bff4f66..48ef454 100644
--- a/runtime/websocket/bin/funasr-wss-server.cpp
+++ b/runtime/websocket/bin/funasr-wss-server.cpp
@@ -121,6 +121,7 @@
         false, "/workspace/resources/hotwords.txt", "string");
     TCLAP::ValueArg<std::int32_t> fst_inc_wts("", FST_INC_WTS, 
         "the fst hotwords incremental bias", false, 20, "int32_t");
+    TCLAP::SwitchArg use_gpu("", USE_GPU, "Whether to use GPU, default is false", false);
 
     // add file
     cmd.add(hotword);
@@ -151,6 +152,7 @@
     cmd.add(io_thread_num);
     cmd.add(decoder_thread_num);
     cmd.add(model_thread_num);
+    cmd.add(use_gpu);
     cmd.parse(argc, argv);
 
     std::map<std::string, std::string> model_path;
@@ -173,6 +175,7 @@
     global_beam_ = global_beam.getValue();
     lattice_beam_ = lattice_beam.getValue();
     am_scale_ = am_scale.getValue();
+    bool use_gpu_ = use_gpu.getValue();
 
     // Download model form Modelscope
     try{
@@ -468,7 +471,7 @@
     WebSocketServer websocket_srv(
         io_decoder, is_ssl, server, wss_server, s_certfile,
         s_keyfile);  // websocket server for asr engine
-    websocket_srv.initAsr(model_path, s_model_thread_num);  // init asr model
+    websocket_srv.initAsr(model_path, s_model_thread_num, use_gpu_);  // init asr model
 
     LOG(INFO) << "decoder-thread-num: " << s_decoder_thread_num;
     LOG(INFO) << "io-thread-num: " << s_io_thread_num;
diff --git a/runtime/websocket/bin/websocket-server.cpp b/runtime/websocket/bin/websocket-server.cpp
index ed25c95..20c5625 100644
--- a/runtime/websocket/bin/websocket-server.cpp
+++ b/runtime/websocket/bin/websocket-server.cpp
@@ -402,11 +402,11 @@
 
 // init asr model
 void WebSocketServer::initAsr(std::map<std::string, std::string>& model_path,
-                              int thread_num) {
+                              int thread_num, bool use_gpu) {
   try {
     // init model with api
 
-    asr_handle = FunOfflineInit(model_path, thread_num);
+    asr_handle = FunOfflineInit(model_path, thread_num, use_gpu);
     LOG(INFO) << "model successfully inited";
     
     LOG(INFO) << "initAsr run check_and_clean_connection";
diff --git a/runtime/websocket/bin/websocket-server.h b/runtime/websocket/bin/websocket-server.h
index d18bcab..f2f244e 100644
--- a/runtime/websocket/bin/websocket-server.h
+++ b/runtime/websocket/bin/websocket-server.h
@@ -124,7 +124,7 @@
                   std::string wav_format,
                   FUNASR_DEC_HANDLE& decoder_handle);
 
-  void initAsr(std::map<std::string, std::string>& model_path, int thread_num);
+  void initAsr(std::map<std::string, std::string>& model_path, int thread_num, bool use_gpu=false);
   void on_message(websocketpp::connection_hdl hdl, message_ptr msg);
   void on_open(websocketpp::connection_hdl hdl);
   void on_close(websocketpp::connection_hdl hdl);

--
Gitblit v1.9.1