一、研究背景
电话客服中语音识别出对话内容,并且识别出客服的静默时间。在做回访时,做声纹识别区分客服和客户,并且对客户声音进行声纹识别,判定是否是初次打电话的人。
二、相关资料
1. 模型微调
三、安装过程
1. 安装Anaconda
首先推荐先执行下面命令更新系统依赖
yum install update
yum upgrade
安装Anaconda
chmod +x Anaconda3-2023.09-0-Linux-x86_64.sh
bash Anaconda3-2023.09-0-Linux-x86_64.sh
2. 安装FFmpeg
安装GCC
yum install gcc
gcc --version
注意:如果是无网络的情况下安装,可以先在有网的电脑上把下面的几个文件下载,然后上传到无网络的机器上。
需要注意安装顺序。
mpfr-3.1.1-4.el7.x86_64.rpm
libmpc-1.0.1-3.el7.x86_64.rpm
cpp-4.8.5-44.el7.x86_64.rpm
kernel-headers-3.10.0-1160.108.1.el7.x86_64.rpm
glibc-headers-2.17-326.el7_9.x86_64.rpm
glibc-devel-2.17-326.el7_9.x86_64.rpm
gcc-4.8.5-44.el7.x86_64.rpm
如果安装rpm
安装包
rpm -ivh package.rpm
安装yasm
# 下载
wget -c http://www.tortall.net/projects/yasm/releases/yasm-1.3.0.tar.gz
# 解压
tar -zxvf yasm-1.3.0.tar.gz
# 切换目录
cd yasm-1.3.0
# 执行配置
./configure
# 编译并安装
make && make install
安装ffmpeg
# 下载源码
git clone https://git.ffmpeg.org/ffmpeg.git ffmpeg
# 切花目录
cd ffmpeg
# 执行配置
./configure
# 编译并安装
make && make install
3. 编译安装FunASR
下载FunASR
代码
git clone https://gitcode.com/alibaba-damo-academy/FunASR.git
切换目录
cd FunASR/runtime/websocket
编译之前需要先安装下面系统依赖
yum install -y openblas-devel // 如果提示没找到这个安装包,那么可以从 EPEL 中下载安装
yum install -y openssl-devel
BLAS
是基本的矩阵库,OpenBLAS
是高性能多核BLAS
库
安装的前提是GCC
和G++
版本大于4.8
如果还没安装这两个软件,请安装。
yum install -y gcc
yum install -y gcc-c++
开始安装openblas
yum install epel-release
yum install openblas
yum install openblas-devel
手动安装可以参考这篇文章
3.1 下载onnxruntime
wget https://isv-data.oss-cn-hangzhou.aliyuncs.com/ics/MaaS/ASR/dep_libs/onnxruntime-linux-x64-1.14.0.tgz
tar -zxvf onnxruntime-linux-x64-1.14.0.tgz
3.2 编译安装
mkdir build && cd build
安装cmake
注意不要直接使用yum
命令安装,使用下面的命令安装的版本过低,需要cmake
版本大于等于3.16
从官网中下载编译好的二进制文件,执行下面的脚本回自动下载,然后配置到系统中
chmod +x cmake-3.28.2-linux-x86_64.sh
bash cmake-3.28.2-linux-x86_64.sh
cd cmake-3.28.2-linux-x86_64/bin
ln -s /usr/local/software/cmake/cmake-3.28.2-linux-x86_64/bin/cmake /usr/bin/cmake
使用下面的命令编译安装
cmake -DCMAKE_BUILD_TYPE=release .. -DONNXRUNTIME_DIR=/path/to/onnxruntime-linux-x64-1.14.0 -DFFMPEG_DIR=/path/to/ffmpeg-master-latest-linux64-gpl-shared
make -j 4
四、docker方式运行FunASR
如果还没安装docker
,可以先安装docker
curl -sSL https://get.docker.com/ | sh
service docker start
systemctl enable docker
安装完docker
后,拉取最新的FunASR
镜像
docker pull registry.cn-hangzhou.aliyuncs.com/funasr_repo/funasr:funasr-runtime-sdk-cpu-0.4.2
mkdir -p ./funasr-runtime-resources/models
docker run -p 10095:10095 -it --privileged=true -v $PWD/funasr-runtime-resources/models:/workspace/models registry.cn-hangzhou.aliyuncs.com/funasr_repo/funasr:funasr-runtime-sdk-cpu-0.4.2
运行FunASR
cd FunASR/runtime
nohup bash run_server.sh \
--download-model-dir /workspace/models \
--vad-dir damo/speech_fsmn_vad_zh-cn-16k-common-onnx \
--model-dir damo/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-onnx \
--punc-dir damo/punc_ct-transformer_cn-en-common-vocab471067-large-onnx \
--lm-dir damo/speech_ngram_lm_zh-cn-ai-wesp-fst \
--itn-dir thuduj12/fst_itn_zh \
--hotword /workspace/models/hotwords.txt > log.out 2>&1 &
# 如果您想关闭ssl,增加参数:--certfile 0
# 如果您想使用时间戳或者nn热词模型进行部署,请设置--model-dir为对应模型:
# damo/speech_paraformer-large-vad-punc_asr_nat-zh-cn-16k-common-vocab8404-onnx(时间戳)
# damo/speech_paraformer-large-contextual_asr_nat-zh-cn-16k-common-vocab8404-onnx(nn热词)
# 如果您想在服务端加载热词,请在宿主机文件./funasr-runtime-resources/models/hotwords.txt配置热词(docker映射地址为/workspace/models/hotwords.txt):
# 每行一个热词,格式(热词 权重):阿里巴巴 20(注:热词理论上无限制,但为了兼顾性能和效果,建议热词长度不超过10,个数不超过1k,权重1~100)
五、部署客户端
安装nginx
yum install -y epel-release
yum -y update
yum install -y nginx
nginx
目录
默认的网站目录为:/usr/share/nginx/html
默认的配置文件为:/etc/nginx/nginx.conf
自定义配置文件目录为:/etc/nginx/conf.d/
nignx
命令
systemctl start nginx
systemctl stop nginx
systemctl restart nginx
systemctl status nginx
systemctl enable nginx
systemctl disable nginx
六、参考文档
[1] 实时语音识别并发数
[2] FunASR接口调用文档
评论区