From 580b11b57ac4b62f7e2acda73813a4e10e8e4cd3 Mon Sep 17 00:00:00 2001
From: 游雁 <zhifu.gzf@alibaba-inc.com>
Date: 星期二, 10 十月 2023 17:17:29 +0800
Subject: [PATCH] v0.8.0

---
 funasr/runtime/deploy_tools/funasr-runtime-deploy-online-cpu-zh.sh |  112 +++++++++++++++++++++++++++++++++++++++----------------
 1 files changed, 79 insertions(+), 33 deletions(-)

diff --git a/funasr/runtime/deploy_tools/funasr-runtime-deploy-online-cpu-zh.sh b/funasr/runtime/deploy_tools/funasr-runtime-deploy-online-cpu-zh.sh
index e5a043c..423b2a0 100644
--- a/funasr/runtime/deploy_tools/funasr-runtime-deploy-online-cpu-zh.sh
+++ b/funasr/runtime/deploy_tools/funasr-runtime-deploy-online-cpu-zh.sh
@@ -1,7 +1,7 @@
 #!/usr/bin/env bash
 
-scriptVersion="0.0.6"
-scriptDate="20230705"
+scriptVersion="0.0.2"
+scriptDate="20230914"
 
 
 # Set color
@@ -26,9 +26,9 @@
 SUDO_CMD="sudo"
 
 
-DEFAULT_DOCKER_OFFLINE_CPU_ZH_LISTS_OSS="https://isv-data.oss-cn-hangzhou.aliyuncs.com/ics/MaaS/ASR/docker_lists/docker_online_cpu_zh_lists"
-DEFAULT_DOCKER_OFFLINE_CPU_ZH_LISTS_GIT="https://raw.githubusercontent.com/alibaba-damo-academy/FunASR/main/funasr/runtime/docs/docker_online_cpu_zh_lists"
-DEFAULT_DOCKER_IMAGE_LISTS=$DEFAULT_DOCKER_OFFLINE_CPU_ZH_LISTS_OSS
+DEFAULT_DOCKER_ONLINE_CPU_ZH_LISTS_OSS="https://isv-data.oss-cn-hangzhou.aliyuncs.com/ics/MaaS/ASR/docker_lists/docker_online_cpu_zh_lists"
+DEFAULT_DOCKER_ONLINE_CPU_ZH_LISTS_GIT="https://raw.githubusercontent.com/alibaba-damo-academy/FunASR/main/funasr/runtime/docs/docker_online_cpu_zh_lists"
+DEFAULT_DOCKER_IMAGE_LISTS=$DEFAULT_DOCKER_ONLINE_CPU_ZH_LISTS_OSS
 DEFAULT_FUNASR_DOCKER_URL="registry.cn-hangzhou.aliyuncs.com/funasr_repo/funasr"
 DEFAULT_FUNASR_RUNTIME_RESOURCES="funasr-runtime-resources"
 DEFAULT_FUNASR_LOCAL_WORKSPACE=${CUR_DIR}/${DEFAULT_FUNASR_RUNTIME_RESOURCES}
@@ -41,7 +41,7 @@
 DEFAULT_FUNASR_WORKSPACE_DIR="/workspace/models"
 DEFAULT_DOCKER_PORT="10095"
 DEFAULT_PROGRESS_FILENAME="progress.txt"
-DEFAULT_SERVER_EXEC_NAME="funasr-wss-server"
+DEFAULT_SERVER_EXEC_NAME="funasr-wss-server-2pass"
 DEFAULT_DOCKER_EXEC_DIR="/workspace/FunASR/funasr/runtime/websocket/build/bin"
 DEFAULT_DOCKER_EXEC_PATH=${DEFAULT_DOCKER_EXEC_DIR}/${DEFAULT_SERVER_EXEC_NAME}
 DEFAULT_SAMPLES_NAME="funasr_samples"
@@ -53,6 +53,9 @@
 "Linux_Cpp" \
 )
 DOCKER_IMAGES=()
+ASR_MODELS=()
+VAD_MODELS=()
+PUNC_MODELS=()
 
 # Handles the download progress bar
 asr_percent_int=0
@@ -320,7 +323,7 @@
                 $DEFAULT_FUNASR_CONFIG_DIR=$DEFAULT_FUNASR_CONFIG_DIR_BAK
             fi
         fi
-        DEFAULT_FUNASR_CONFIG_DIR=${DEFAULT_FUNASR_CONFIG_DIR}/.funasr
+        DEFAULT_FUNASR_CONFIG_DIR=${DEFAULT_FUNASR_CONFIG_DIR}/.funasr_online
     fi
 
     if [ ! -z "$DEFAULT_FUNASR_CONFIG_DIR" ]; then
@@ -387,38 +390,35 @@
             echo -e "    ${RED}Unable to get docker image list due to network issues, try again.${PLAIN}"
 
             # switch sources of docker image lists
-            if [ "$list_url" = "$DEFAULT_DOCKER_OFFLINE_CPU_ZH_LISTS_OSS" ]; then
-                DEFAULT_DOCKER_IMAGE_LISTS=$DEFAULT_DOCKER_OFFLINE_CPU_ZH_LISTS_GIT
+            if [ "$list_url" = "$DEFAULT_DOCKER_ONLINE_CPU_ZH_LISTS_OSS" ]; then
+                DEFAULT_DOCKER_IMAGE_LISTS=$DEFAULT_DOCKER_ONLINE_CPU_ZH_LISTS_GIT
             else
-                DEFAULT_DOCKER_IMAGE_LISTS=$DEFAULT_DOCKER_OFFLINE_CPU_ZH_LISTS_OSS
+                DEFAULT_DOCKER_IMAGE_LISTS=$DEFAULT_DOCKER_ONLINE_CPU_ZH_LISTS_OSS
             fi
         fi
     done
     array=($(echo "$content"))
     len=${#array[@]}
 
-    stage=0
-    docker_flag="DOCKER:"
-    judge_flag=":"
     for i in ${array[@]}
     do
         findTypeOfDockerInfo $i
         if [ "$docker_info_cur_key" = "DOCKER:" ]; then
             if [ ! -z "$docker_info_cur_val" ]; then
                 docker_name=${DEFAULT_FUNASR_DOCKER_URL}:${docker_info_cur_val}
-                DOCKER_IMAGES[${#DOCKER_IMAGES[*]}]=$docker_name 
+                DOCKER_IMAGES[${#DOCKER_IMAGES[*]}]=$docker_name
             fi
         elif [ "$docker_info_cur_key" = "DEFAULT_ASR_MODEL:" ]; then
             if [ ! -z "$docker_info_cur_val" ]; then
-                PARAMS_ASR_ID=$docker_info_cur_val
+                ASR_MODELS[${#ASR_MODELS[*]}]=$docker_info_cur_val
             fi
         elif [ "$docker_info_cur_key" = "DEFAULT_VAD_MODEL:" ]; then
             if [ ! -z "$docker_info_cur_val" ]; then
-                PARAMS_VAD_ID=$docker_info_cur_val
+                VAD_MODELS[${#VAD_MODELS[*]}]=$docker_info_cur_val
             fi
         elif [ "$docker_info_cur_key" = "DEFAULT_PUNC_MODEL:" ]; then
             if [ ! -z "$docker_info_cur_val" ]; then
-                PARAMS_PUNC_ID=$docker_info_cur_val
+                PUNC_MODELS[${#PUNC_MODELS[*]}]=$docker_info_cur_val
             fi
         fi
     done
@@ -427,7 +427,7 @@
 
 # Make sure root user.
 rootNess(){
-    echo -e "${UNDERLINE}${BOLD}[0/5]${PLAIN}"
+    echo -e "${UNDERLINE}${BOLD}[0/6]${PLAIN}"
     echo -e "  ${YELLOW}Please check root access.${PLAIN}"
 
     echo -e "    ${WARNING} MUST RUN AS ${RED}ROOT${PLAIN} USER!"
@@ -446,7 +446,7 @@
 
 # Get a list of docker images and select them.
 selectDockerImages(){
-    echo -e "${UNDERLINE}${BOLD}[1/5]${PLAIN}"
+    echo -e "${UNDERLINE}${BOLD}[1/6]${PLAIN}"
     echo -e "  ${YELLOW}Getting the list of docker images, please wait a few seconds.${PLAIN}"
     readDockerInfoFromUrl
     echo
@@ -476,22 +476,67 @@
             result=0
         elif [ $result -eq 61 ]; then
             echo
-            echo -e "  ${RED}Please run (${PLAIN}${GREEN}${SUDO_CMD} bash funasr-runtime-deploy-offline-cpu-zh.sh install${PLAIN}${RED}) to install Docker first.${PLAIN}"
+            echo -e "  ${RED}Please run (${PLAIN}${GREEN}${SUDO_CMD} bash funasr-runtime-deploy-online-cpu-zh.sh install${PLAIN}${RED}) to install Docker first.${PLAIN}"
         elif [ $result -eq 62 ]; then
             echo
-            echo -e "  ${RED}Docker: ${PARAMS_DOCKER_IMAGE} ${PARAMS_FUNASR_DOCKER_ID} has been launched, please run (${PLAIN}${GREEN}${SUDO_CMD} bash funasr-runtime-deploy-offline-cpu-zh.sh remove${PLAIN}${RED}) to remove Docker first ant then install.${PLAIN}"
+            echo -e "  ${RED}Docker: ${PARAMS_DOCKER_IMAGE} ${PARAMS_FUNASR_DOCKER_ID} has been launched, please run (${PLAIN}${GREEN}${SUDO_CMD} bash funasr-runtime-deploy-online-cpu-zh.sh remove${PLAIN}${RED}) to remove Docker first ant then install.${PLAIN}"
         elif [ $result -eq 63 ]; then
             result=0
         fi
     fi
 
     echo
-    return $result
+}
+
+# Get a list of models and select them.
+selectModels(){
+    echo -e "${UNDERLINE}${BOLD}[2/6]${PLAIN}"
+    echo -e "  ${YELLOW}Get a list of selectable models.${PLAIN}"
+    echo
+
+    selectAsrModels
+    selectVadModels
+    selectPuncModels
+
+    echo
+}
+
+selectAsrModels(){
+    echo -e "  ${YELLOW}Please choose the ASR model.${PLAIN}"
+    menuSelection ${ASR_MODELS[*]}
+    result=$?
+    index=`expr ${result} - 1`
+
+    PARAMS_ASR_ID=${ASR_MODELS[${index}]}
+    echo -e "  ${UNDERLINE}You have chosen the ASR model:${PLAIN} ${GREEN}${PARAMS_ASR_ID}${PLAIN}"
+    echo
+}
+
+selectVadModels(){
+    echo -e "  ${YELLOW}Please choose the VAD model.${PLAIN}"
+    menuSelection ${VAD_MODELS[*]}
+    result=$?
+    index=`expr ${result} - 1`
+
+    PARAMS_VAD_ID=${VAD_MODELS[${index}]}
+    echo -e "  ${UNDERLINE}You have chosen the VAD model:${PLAIN} ${GREEN}${PARAMS_VAD_ID}${PLAIN}"
+    echo
+}
+
+selectPuncModels(){
+    echo -e "  ${YELLOW}Please choose the PUNC model.${PLAIN}"
+    menuSelection ${PUNC_MODELS[*]}
+    result=$?
+    index=`expr ${result} - 1`
+
+    PARAMS_PUNC_ID=${PUNC_MODELS[${index}]}
+    echo -e "  ${UNDERLINE}You have chosen the PUNC model:${PLAIN} ${GREEN}${PARAMS_PUNC_ID}${PLAIN}"
+    echo
 }
 
 # Configure FunASR server host port setting.
 setupHostPort(){
-    echo -e "${UNDERLINE}${BOLD}[2/5]${PLAIN}"
+    echo -e "${UNDERLINE}${BOLD}[3/6]${PLAIN}"
 
     params_host_port=`sed '/^PARAMS_HOST_PORT=/!d;s/.*=//' ${DEFAULT_FUNASR_CONFIG_FILE}`
     if [ -z "$params_host_port" ]; then
@@ -715,7 +760,7 @@
 }
 
 showAllParams(){
-    echo -e "${UNDERLINE}${BOLD}[3/5]${PLAIN}"
+    echo -e "${UNDERLINE}${BOLD}[4/6]${PLAIN}"
     echo -e "  ${YELLOW}Show parameters of FunASR server setting and confirm to run ...${PLAIN}"
     echo
 
@@ -818,7 +863,7 @@
 
 # Install docker
 installFunasrDocker(){
-    echo -e "${UNDERLINE}${BOLD}[4/5]${PLAIN}"
+    echo -e "${UNDERLINE}${BOLD}[5/6]${PLAIN}"
 
     if [ $DOCKERINFOLEN -gt 30 ]; then
         echo -e "  ${YELLOW}Docker has installed.${PLAIN}"
@@ -886,7 +931,7 @@
 }
 
 dockerRun(){
-    echo -e "${UNDERLINE}${BOLD}[5/5]${PLAIN}"
+    echo -e "${UNDERLINE}${BOLD}[6/6]${PLAIN}"
     echo -e "  ${YELLOW}Construct command and run docker ...${PLAIN}"
 
     start_flag=$1
@@ -911,15 +956,15 @@
         result=`expr ${result} + 0`
         if [ $result -eq 60 ]; then
             echo
-            echo -e "  ${RED}Please run (${PLAIN}${GREEN}${SUDO_CMD} bash funasr-runtime-deploy-offline-cpu-zh.sh install${PLAIN}${RED}) to install Docker first.${PLAIN}"
+            echo -e "  ${RED}Please run (${PLAIN}${GREEN}${SUDO_CMD} bash funasr-runtime-deploy-online-cpu-zh.sh install${PLAIN}${RED}) to install Docker first.${PLAIN}"
             return $result
         elif [ $result -eq 61 ]; then
             echo
-            echo -e "  ${RED}Please run (${PLAIN}${GREEN}${SUDO_CMD} bash funasr-runtime-deploy-offline-cpu-zh.sh install${PLAIN}${RED}) to install Docker first.${PLAIN}"
+            echo -e "  ${RED}Please run (${PLAIN}${GREEN}${SUDO_CMD} bash funasr-runtime-deploy-online-cpu-zh.sh install${PLAIN}${RED}) to install Docker first.${PLAIN}"
             return $result
         elif [ $result -eq 62 ]; then
             echo
-            echo -e "  ${RED}Docker: ${PARAMS_DOCKER_IMAGE} ${PARAMS_FUNASR_DOCKER_ID} has been launched, please run (${PLAIN}${GREEN}${SUDO_CMD} bash funasr-runtime-deploy-offline-cpu-zh.sh stop${PLAIN}${RED}) to stop Docker first.${PLAIN}"
+            echo -e "  ${RED}Docker: ${PARAMS_DOCKER_IMAGE} ${PARAMS_FUNASR_DOCKER_ID} has been launched, please run (${PLAIN}${GREEN}${SUDO_CMD} bash funasr-runtime-deploy-online-cpu-zh.sh stop${PLAIN}${RED}) to stop Docker first.${PLAIN}"
             return $result
         fi
 
@@ -970,7 +1015,7 @@
 
     deploySamples
     echo -e "  ${BOLD}The sample code is already stored in the ${PLAIN}(${GREEN}${PARAMS_FUNASR_SAMPLES_LOCAL_DIR}${PLAIN}) ."
-    echo -e "  ${BOLD}If you want to see an example of how to use the client, you can run ${PLAIN}${GREEN}${SUDO_CMD} bash funasr-runtime-deploy-offline-cpu-zh.sh client${PLAIN} ."
+    echo -e "  ${BOLD}If you want to see an example of how to use the client, you can run ${PLAIN}${GREEN}${SUDO_CMD} bash funasr-runtime-deploy-online-cpu-zh.sh client${PLAIN} ."
     echo
 }
 
@@ -1336,7 +1381,7 @@
                 ;;
             Python)
                 client_exec="${PARAMS_FUNASR_SAMPLES_LOCAL_DIR}/python/wss_client_asr.py"
-                run_cmd="python3 ${client_exec} --host ${server_ip} --port ${host_port} --mode offline --audio_in ${wav_path} --send_without_sleep --output_dir ${PARAMS_FUNASR_SAMPLES_LOCAL_DIR}/python"
+                run_cmd="python3 ${client_exec} --host ${server_ip} --port ${host_port} --mode 2pass --audio_in ${wav_path} --send_without_sleep --output_dir ${PARAMS_FUNASR_SAMPLES_LOCAL_DIR}/python"
                 pre_cmd="pip3 install click>=8.0.4"
                 echo -e "  Run ${BLUE}${pre_cmd}${PLAIN}"
                 $pre_cmd
@@ -1363,6 +1408,7 @@
     initConfiguration
     initParameters
     selectDockerImages
+    selectModels
     result=$?
     result=`expr ${result} + 0`
     if [ $result -ne 0 ]; then
@@ -1379,7 +1425,7 @@
     echo -e "${UNDERLINE}Usage${PLAIN}:"
     echo -e "  $0 [OPTIONAL FLAGS]"
     echo
-    echo -e "funasr-runtime-deploy-offline-cpu-zh.sh - a Bash script to install&run FunASR docker."
+    echo -e "funasr-runtime-deploy-online-cpu-zh.sh - a Bash script to install&run FunASR docker."
     echo
     echo -e "${UNDERLINE}Options${PLAIN}:"
     echo -e "   ${BOLD}-i, install, --install${PLAIN}    Install and run FunASR docker."
@@ -1471,7 +1517,7 @@
 #  The path of punc model in docker
 PARAMS_DOCKER_PUNC_PATH=""
 #  The punc model ID in ModelScope
-PARAMS_PUNC_ID="damo/punc_ct-transformer_zh-cn-common-vocab272727-onnx"
+PARAMS_PUNC_ID="damo/punc_ct-transformer_zh-cn-common-vad_realtime-vocab272727-onnx"
 
 #  The dir stored vad model in local
 PARAMS_LOCAL_VAD_DIR=""

--
Gitblit v1.9.1