| | |
| | | #!/usr/bin/env bash |
| | | |
| | | scriptVersion="0.0.6" |
| | | scriptDate="20230705" |
| | | scriptVersion="0.0.2" |
| | | scriptDate="20230914" |
| | | |
| | | |
| | | # Set color |
| | |
| | | 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} |
| | |
| | | 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" |
| | |
| | | "Linux_Cpp" \ |
| | | ) |
| | | DOCKER_IMAGES=() |
| | | ASR_MODELS=() |
| | | VAD_MODELS=() |
| | | PUNC_MODELS=() |
| | | |
| | | # Handles the download progress bar |
| | | asr_percent_int=0 |
| | |
| | | $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 |
| | |
| | | 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 |
| | |
| | | |
| | | # 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!" |
| | |
| | | |
| | | # 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 |
| | |
| | | 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 |
| | |
| | | } |
| | | |
| | | 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 |
| | | |
| | |
| | | |
| | | # 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}" |
| | |
| | | } |
| | | |
| | | 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 |
| | |
| | | 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 |
| | | |
| | |
| | | |
| | | 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 |
| | | } |
| | | |
| | |
| | | ;; |
| | | 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 |
| | |
| | | initConfiguration |
| | | initParameters |
| | | selectDockerImages |
| | | selectModels |
| | | result=$? |
| | | result=`expr ${result} + 0` |
| | | if [ $result -ne 0 ]; then |
| | |
| | | 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." |
| | |
| | | # 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="" |