FreeSWITCH中文网,电话机器人开发网 ,微信订阅号:

FreeSWITCH及VOIP,Openser,电话机器人等产品中文技术资讯、交流、沟通、培训、咨询、服务一体化网络。QQ群:293697898

nway_dsr20231127二进制包免费试用中


tags:实时质检 座席助手中间件 免费 创建时间:2023-11-27 16:00:57

  注意,本次应用的能力为半实时,即不是每个语音包流都要送往识别,而是VAD后才送,识别后通过ESL发送消息后进行处理,用于座席辅助或半实时质检均可。部署方式为:云主机、物理机、测试型的内部虚拟机均可。识别特性:座席助手,或当检测到有异常,实时挂机。可使用开源ASR模型降低识别成本。

  以前我们做项目过程中,面向座席助手和实时质检(当然大部分知识库都是甲方的,所以我们以前是不做知识库的)时,做了面向讯飞sdk、阿里sdk、百度sdk、大部分的restful api的。然后因为业务需求各不一样,有一些同样的asr,还做了不同的业务适配。

  最近整理出一个版本,使用宁卫的交互协议,funasr以及modelscope开源产品的ASR,通过宁卫mod_dsr实现通话过程中内容断句后,再送去识别,并实时展现出来,如果遇到对应的禁忌词汇需要挂机,那么配置好是挂机,就会把通话给挂断。

同样为了批量处理相关的词汇,我们实现了一个后端的命令,叫auto_add_words.

在keywords.ini中将相关的禁忌词配置好,以“,”为分隔符,那么就能批量去重导入。然后手工在web管理中将哪些禁忌词设为挂机,不挂机则不用改,这样就配置好了禁忌词,这些词汇支持RE2正则表达式。

具体操作如下:

操作系统的安装为 CentOS 7.9

这里可能需要注意一下,我们的funasr是在ubuntu20.04或debian 11上,不确定centos 7.9能满足其必须运行环境。

如果是不能安装docker和python3.10及以上,有可能您得备两台机,一台是CentOS7.9,另一台为Debian 11

  1. 预安装的软件及包

    yum -y install epel-release yum install -y https://files.freeswitch.org/repo/yum/centos-release/freeswitch-release-repo-0-1.noarch.rpm epel-release

    yum install -y yum-plugin-ovl centos-release-scl rpmdevtools yum-utils git yum install -y devtoolset-4-gcc*

    yum install -y git subversion autoconf automake libtool gcc-c++ ncurses-devel make wget centos-release-scl-rh

    yum -y install expat-devel openssl-devel libtiff-devel libX11-devel unixODBC-devel libssl-devel python-devel

    yum -y install zlib-devel libzrtpcpp-devel alsa-lib-devel libogg-devel libvorbis-devel perl-libs gdbm-devel

    yum -y install libdb-devel uuid-devel @development-tools patch

    yum -y install ldns-devel libidn-devel unbound-devel

    yum -y install libjpeg-devel sqlite-devel libcurl-devel

    yum -y install pcre-devel libuuid-devel bison-devel bison

    yum -y install speex-devel libtheora-devel yasm nasm libedit-devel libicu

    yum install libsndfile-devel.x86_64 cmake -y

    yum install opus-devel.x86_64 opusfile-devel.x86_64 -y

    yum install lame-devel.x86_64 lame-libs.x86_64 lame.x86_64 lame-mp3x.x86_64 -y

    yum install mariadb-devel.x86_64 mariadb-libs.x86_64 lynx libxslt.x86_64 -y

    yum install lua.x86_64 tolua++-devel.x86_64 lua-expat.x86_64 -y

    yum install redis jemalloc -y 3. 安装PostgreSQL 12

    yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm

    yum install -y postgresql12-server postgresql-client postgresql-contrib postgresql-devel

    /usr/pgsql-12/bin/postgresql-12-setup initdb

    systemctl enable postgresql-12

    systemctl start postgresql-12

  2. 上传 freeswitch.tgz /usr/local后 ,/usr/local# tar zxvf freeswitch,注意:如果/usr/local下没有freeswitch目录,则有可能是需要 /usr/local# mv usr/local/freeswitch .

  3. 上传 nwaydsr.tgz 到/opt后, /opt#tar zxvf nwaydsr.tgz后/opt# ll nway_dsr

需要看到 nway_dsr nway_asr 等

  1. 上传 nway_funasr_service.tag 到/opt后,同上。

  2. 导入数据库

    /sbin/chkconfig postgresql on

    su - postgres -c "psql -c \"create database nwaydsr;\""

    su - postgres -c "pg_restore -d nwaydsr -v '/opt/nway_dsr/database/nwaydsr.sql'"

    sed -i '82 s/ident/md5/g' /db/data/pg_hba.conf

    su - postgres -c "psql -U postgres -d postgres -c \"alter user postgres with password 'Nway2017';\""

    service postgresql restart

这里要注意下,不同版本的postgresql,服务的名称可能不一样,如postgresql-12 postgresql_12等,请自行查阅它的服务名。不同的postgresql安装的路径不同,以上的pg_hba.conf请通过find查询文件所在位置。当配置好了后应是可以看到

psql -U postgres -h 127.0.0.1

进入了psql命令行后 \l 能看到nwaydsr数据库且\c nwaydsr 后\dt 能看到相关表。

  1. 安装funasr

    curl -O https://raw.githubusercontent.com/alibaba-damo-academy/FunASR/main/funasr/runtime/deploy_tools/funasr-runtime-deploy-offline-cpu-zh.sh;

    如遇到网络问题,中国大陆用户,可以使用下面的命令:

    curl -O https://isv-data.oss-cn-hangzhou.aliyuncs.com/ics/MaaS/ASR/shell/funasr-runtime-deploy-offline-cpu-zh.sh;

注:如果需要部署时间戳模型或者热词模型,在安装部署步骤2时选择对应模型,其中1为paraformer-large模型,2为paraformer-large 时间戳模型,3为paraformer-large 热词模型

客户端测试与使用

运行上面安装指令后,会在/root/funasr-runtime-resources(默认安装目录)中下载客户端测试工具目录samples(手动下载,点击此处), 我们以Python语言客户端为例,进行说明,支持多种音频格式输入(.wav, .pcm, .mp3等),也支持视频输入(.mp4等),以及多文件列表wav.scp输入,其

./funasr-wss-client --server-ip 127.0.0.1 --port 10095 --wav-path ../audio/asr_example.wav
  1. 配置freeswitch和nwaydsr

a. ln -sf /usr/local/freeswitch/bin/freeswitch /usr/bin/.

b. ln -sf /usr/local/freeswitch/bin/fs_cli /usr/bin/.

c. 如果数据库不本机或密码修改过就改动/usr/local/freeswitch/conf/autoload_configs/cdr_pg_csv.conf.xml和/opt/nway_dsr/Nway.conf及/opt/nway_dsr/web/conf/app.conf

d. 如果funasr不在本机,需vim /opt/nway_dsr/nway.com.cn.conf中的ip和端口,然后 ./nway_asr "" filename

e. 配置路由,如

<extension>
      <condition field="destination_number" expression="^(85733505)$">
         <action application="export" data="exten_record_file=$${recordings_dir}/${strftime(%Y-%m-%d)}/${caller_id_number}.$1.${strftime(%H-%M-%S)}.${uuid}.wav"></action>
         <!-- <action application="set" data="execute_on_answer='dsr ${exten_record_file}'"></action> -->
          <action application="set" data="record_file=${exten_record_file}"></action>
          <action application="log" data="CRIT ${exten_record_file}"></action>
          <action application="set" data="hangup_after_bridge=true"></action>
          <action application="export" data="sip_auto_answer=true"></action>
          <action application="bridge" data="{execute_on_answer='dsr ${record_file}'}user/1000"></action>
      </condition>
    </extension>

如需配外线,则自行处理下sip_profiles/internal.xml和external.xml中的ext-sip-ip和ext-rtp-ip

f. freeswitch -nc启动 freeswitch

g. cd /opt/nway_dsr && nohup ./nway_dsr &

h. cd /opt/nway_dsr/web && nohup ./dsr_web &

那么理论上,我们在进行通话时,在对应主机的8098端口上就可以看到实时通话的内容了。

访问方式:http://ip:8098 , admin 123456

dsr模块授权位置于/opt/dsr/license.txt

funasr服务授权位置于 nway_funasr_server所在位置下的 asr_lic.txt

如有问题,需要查看的服务 postmaster监听 5432 ;freeswitch 监听 8021; nway_dsr 连接 5432和 8021;dsr_web 监听8098

**以上服务,含funasr(如果因为funasr直接限制使用,那么我们配合大家使用其它的asr方式,或直接大家用自己的阿里asr一句话识别,由宁卫提供对应的客户端)即日起至2023.12.10日,且通过/opt/nway_dsr/nway_machine_id获取的机器码于2024年1月1日前通过发邮件至 lihao@nway.com.cn 或加微信 18621575908 记录一下,前30名免费使用本系统两年。

此处服务仅限授权使用并能正常运行,不包含日常运维,请谅解!

此处服务限本次版本,不配合使用方改进相关功能性的问题,但可以配合修正现有版本的bug!

此处服务不限登记者的使用方式,但不为相关使用负责。

如有其它未尽事宜,以我们的解释为准。**



上海老李,QQ:1354608370,FreeSWITCH QQ群: