1、FunASR介绍

FunASR提供可便捷本地或者云端服务器部署的离线文件转写服务,内核为FunASR已开源runtime-SDK。 集成了达摩院语音实验室在Modelscope社区开源的语音端点检测(VAD)、Paraformer-large语音识别(ASR)、标点恢复(PUNC) 等相关能力,拥有完整的语音识别链路,可以将几十个小时的音频或视频识别成带标点的文字,而且支持上百路请求同时进行转写。

2、系统环境安装

2.1 环境要求

以win10专业版计算机环境为例(家庭版本不可使用此方法),可通过命令查询。
在系统“开始”处输入 winver,检查版本信息。(要求os版本不低于19044)
在这里插入图片描述

2.2 环境设置

打开【控制面板】,点击【程序】
在这里插入图片描述

点击【启动或关闭Windows功能】
在这里插入图片描述

开启【Hyper-V】、【虚拟机平台】和【适用于Linux的Windows子系统】
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

开启完毕后,【立即重新启动】
在这里插入图片描述

2.3 软件环境安装

2.3.1 Ubuntu安装

将【Ubuntu_1804.2019.522.0_x64.zip】解压至Ubuntu_1804.2019.522.0_x64
在这里插入图片描述

进入【Ubuntu_1804.2019.522.0_x64】文件夹,右键点击【ubuntu1804.exe】文件,选择【以管理员身份运行】
在这里插入图片描述

根据提示输入创建用户名和密码,完成Ubuntu的创建

2.3.2 WSL安装

双击安装【wsl_update_x64 (1).msi】
在这里插入图片描述
点击【Next】
在这里插入图片描述
等待安装完成后点击【Finish】
在这里插入图片描述

2.3.3 docker部署

双击安装【Docker Desktop Installer.exe】
在这里插入图片描述

等待加载完成后,勾选【Install required Windows components for WSL 2
Add shortcut to desktop】,点击【ok】
在这里插入图片描述

等待安装完成
在这里插入图片描述
在这里插入图片描述

在桌面上打开【Docker Desktop】,首次打开需要同意用户协议,勾选用户协议,点击【accept】
在这里插入图片描述

点击【设置】,确保每个选项都处于勾选状态

3、服务部署

将【test】文件解压至磁盘根目录,在该文件夹中使用以下命令加载镜像
【docker load -i funasr.tar】
在这里插入图片描述

3.1 docker镜像下载与启动

通过下述命令拉取并启动FunASR软件包docker镜像:
【docker run -p 10096:10095 -it --privileged=true -v D:\test\damo:/workspace/models registry.cn-hangzhou.aliyuncs.com/funasr_repo/funasr:funasr-runtime-sdk-online-cpu-0.1.5】
在这里插入图片描述

3.2 配置文件调整

docker启动之后,进入runtime路径

cd FunASR/runtime

在这里插入图片描述

修改run_server_2pass.sh服务文件(插入 i)(保存 wq)

vim run_server_2pass.sh

原始文件
在这里插入图片描述

修改

model_dir="damo/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-onnx"

model_dir=" damo/speech_paraformer-large-vad-punc_asr_nat-zh-cn-16k-common-vocab8404-onnx"

修改

certfile="../../../ssl_key/server.crt"
keyfile="../../../ssl_key/server.key"

certfile=0
keyfile=0

3.3 启动funasr服务

bash run_server_2pass.sh

在这里插入图片描述

启动成功,端口号为【10095】

4 客户端连接

funasr_samples文件夹中包含多种客户端连接方式,此处以html和python为例

4.1 html连接

打开funasr_samples\samples\html\static文件夹,使用网页运行index.html
在这里插入图片描述

将asr服务器地址更改为 【ws://127.0.0.1:10095】,点击连接进行测试,如连接失败更改端口为【10096】。

4.2 python连接

4.2.1 客户端文件修改

打开funasr_samples\samples\python文件夹,原始的funasr_wss_client.py需要进行修改:

320行

 async with websockets.connect(uri, subprotocols=["binary"], ping_interval=None, ssl=ssl_context) as websocket:
        if args.audio_in is not None:
            task = asyncio.create_task(record_from_scp(i, 1))  /******
        else:
            task = asyncio.create_task(record_microphone())  /******
        task3 = asyncio.create_task(message(str(id)+"_"+str(i))) #processid+fileid   /******
        await asyncio.gather(task, task3)

上述三处有注释的地方,asyncio.create_task方法在python3.6中无法使用,更改为asyncio.ensure_future 方法

289行

text_print = text_print[-args.words_max_print:]
                os.system('clear')
                print("\rpid" + str(id) + ": " + text_print)

在该处修改输出,

print(text)
text_print = text_print[-args.words_max_print:]

4.4.3 客户端运行

输入命令 【python3 funasr_wss_client.py --host “127.0.0.1” --port 10095 --mode 2pass --ssl 0】

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐