Yabin Li
2023-08-21 e0fa63765bfb4a36bde7047c2a6066ca5a80e90f
funasr/runtime/websocket/funasr-wss-server.cpp
@@ -173,13 +173,25 @@
        if(model_dir.isSet() && !s_asr_path.empty()){
            std::string python_cmd_asr;
            std::string down_asr_path;
            std::string down_asr_model;
            std::string down_asr_model;
            if (access(s_asr_path.c_str(), F_OK) == 0){
                // local
                python_cmd_asr = python_cmd + " --model-name " + s_asr_path + " --export-dir ./ " + " --model_revision " + model_path["model-revision"];
                down_asr_path  = s_asr_path;
            }else{
                size_t found = s_asr_path.find("speech_paraformer-large-vad-punc_asr_nat-zh-cn-16k-common-vocab8404");
                if (found != std::string::npos) {
                    model_path["model-revision"]="v1.2.4";
                }else{
                    found = s_asr_path.find("speech_paraformer-large-contextual_asr_nat-zh-cn-16k-common-vocab8404");
                    if (found != std::string::npos) {
                        model_path["model-revision"]="v1.0.3";
                        model_path[QUANTIZE]=false;
                        s_asr_quant = false;
                    }
                }
                // modelscope
                LOG(INFO) << "Download model: " <<  s_asr_path << " from modelscope: ";
                python_cmd_asr = python_cmd + " --model-name " + s_asr_path + " --export-dir " + s_download_model_dir + " --model_revision " + model_path["model-revision"];
@@ -196,7 +208,7 @@
            }
            if (access(down_asr_model.c_str(), F_OK) != 0){
                LOG(ERROR) << down_asr_model << " do not exists.";
                LOG(ERROR) << down_asr_model << " do not exists.";
                exit(-1);
            }else{
                model_path[MODEL_DIR]=down_asr_path;
@@ -278,6 +290,7 @@
    server server_;  // server for websocket
    wss_server wss_server_;
    if (is_ssl) {
      LOG(INFO)<< "SSL is opened!";
      wss_server_.init_asio(&io_server);  // init asio
      wss_server_.set_reuse_addr(
          true);  // reuse address as we create multiple threads
@@ -290,6 +303,7 @@
      websocket_srv.initAsr(model_path, s_model_thread_num);  // init asr model
    } else {
      LOG(INFO)<< "SSL is closed!";
      server_.init_asio(&io_server);  // init asio
      server_.set_reuse_addr(
          true);  // reuse address as we create multiple threads