mirror of
https://github.com/modelscope/FunASR
synced 2025-09-15 14:48:36 +08:00
funasr streaming sdk
This commit is contained in:
parent
a2a874b403
commit
a71aa43992
1693
funasr/runtime/deploy_tools/funasr-runtime-deploy-online-cpu-zh.sh
Normal file
1693
funasr/runtime/deploy_tools/funasr-runtime-deploy-online-cpu-zh.sh
Normal file
File diff suppressed because it is too large
Load Diff
225
funasr/runtime/docs/SDK_tutorial_online_zh.md
Normal file
225
funasr/runtime/docs/SDK_tutorial_online_zh.md
Normal file
@ -0,0 +1,225 @@
|
||||
(简体中文|[English](./SDK_tutorial_online.md))
|
||||
|
||||
# FunASR实时语音转写便捷部署教程
|
||||
|
||||
FunASR提供可便捷本地或者云端服务器部署的实时语音转写服务,内核为FunASR已开源runtime-SDK。
|
||||
集成了达摩院语音实验室在Modelscope社区开源的语音端点检测(VAD)、Paraformer-large非流式语音识别(ASR)、Paraformer-large流式语音识别(ASR)、标点恢复(PUNC) 等相关能力。软件包既可以实时地进行语音转文字,而且能够在说话句尾用高精度的转写文字修正输出,输出文字带有标点,支持高并发多路请求
|
||||
|
||||
## 服务器配置
|
||||
|
||||
用户可以根据自己的业务需求,选择合适的服务器配置,推荐配置为:
|
||||
- 配置1: (X86,计算型),4核vCPU,内存8G,单机可以支持大约16路的请求
|
||||
- 配置2: (X86,计算型),16核vCPU,内存32G,单机可以支持大约32路的请求
|
||||
- 配置3: (X86,计算型),64核vCPU,内存128G,单机可以支持大约100路的请求
|
||||
|
||||
详细性能测试报告([点击此处](./benchmark_onnx_cpp.md))
|
||||
|
||||
云服务厂商,针对新用户,有3个月免费试用活动,申请教程([点击此处](https://github.com/alibaba-damo-academy/FunASR/blob/main/funasr/runtime/docs/aliyun_server_tutorial.md))
|
||||
|
||||
## 快速上手
|
||||
|
||||
### 服务端启动
|
||||
|
||||
`注意`:一键部署工具,过程分为:安装docker、下载docker镜像、启动服务。如果用户希望直接从FunASR docker镜像启动,可以参考开发指南([点击此处](./SDK_advanced_guide_online_zh.md))
|
||||
|
||||
下载部署工具`funasr-runtime-deploy-online-cpu-zh.sh`
|
||||
|
||||
```shell
|
||||
curl -O https://raw.githubusercontent.com/alibaba-damo-academy/FunASR/main/funasr/runtime/deploy_tools/funasr-runtime-deploy-online-cpu-zh.sh;
|
||||
# 如遇到网络问题,中国大陆用户,可以使用下面的命令:
|
||||
# curl -O https://isv-data.oss-cn-hangzhou.aliyuncs.com/ics/MaaS/ASR/shell/funasr-runtime-deploy-online-cpu-zh.sh;
|
||||
```
|
||||
|
||||
执行部署工具,在提示处输入回车键即可完成服务端安装与部署。目前便捷部署工具暂时仅支持Linux环境,其他环境部署参考开发指南([点击此处](./SDK_advanced_guide_online_zh.md))
|
||||
```shell
|
||||
sudo bash funasr-runtime-deploy-online-cpu-zh.sh install --workspace ./funasr-runtime-resources
|
||||
```
|
||||
|
||||
### 客户端测试与使用
|
||||
|
||||
运行上面安装指令后,会在./funasr-runtime-resources(默认安装目录)中下载客户端测试工具目录samples(手动下载,[点击此处](https://isv-data.oss-cn-hangzhou.aliyuncs.com/ics/MaaS/ASR/sample/funasr_samples.tar.gz)),
|
||||
我们以Python语言客户端为例,支持麦克风输入,其他版本客户端请参考文档([点击此处](#客户端用法详解))
|
||||
|
||||
```shell
|
||||
python3 funasr_wss_client.py --host "127.0.0.1" --port 10095 --mode 2pass
|
||||
```
|
||||
|
||||
## 客户端用法详解
|
||||
|
||||
在服务器上完成FunASR服务部署以后,可以通过如下的步骤来测试和使用实时语音转写服务。
|
||||
目前分别支持以下几种编程语言客户端
|
||||
|
||||
- [Python](#python-client)
|
||||
- [CPP](#cpp-client)
|
||||
- [html](#html-client)
|
||||
- [java](#java-client)
|
||||
- [c#](#c#)
|
||||
|
||||
更多版本客户端支持请参考[开发指南](./SDK_advanced_guide_offline_zh.md)
|
||||
|
||||
### python-client
|
||||
若想直接运行client进行测试,可参考如下简易说明,以python版本为例:
|
||||
|
||||
```shell
|
||||
python3 funasr_wss_client.py --host "127.0.0.1" --port 10095 --mode 2pass
|
||||
```
|
||||
|
||||
命令参数说明:
|
||||
```text
|
||||
--host 为FunASR runtime-SDK服务部署机器ip,默认为本机ip(127.0.0.1),如果client与服务不在同一台服务器,需要改为部署机器ip
|
||||
--port 10095 部署端口号
|
||||
--mode:`offline`,表示推理模式为一句话识别;`online`,表示推理模式为实时语音识别;`2pass`:表示为实时语音识别,并且说话句尾采用离线模型进行纠错。
|
||||
--chunk_size:表示流式模型latency配置,`[5,10,5]`,表示当前音频为600ms,并且回看300ms,又看300ms。
|
||||
--audio_in 需要进行转写的音频文件,支持文件路径,文件列表wav.scp
|
||||
--thread_num 设置并发发送线程数,默认为1
|
||||
--ssl 设置是否开启ssl证书校验,默认1开启,设置为0关闭
|
||||
```
|
||||
|
||||
### cpp-client
|
||||
进入samples/cpp目录后,可以用cpp进行测试,指令如下:
|
||||
```shell
|
||||
./funasr-wss-client --server-ip 127.0.0.1 --port 10095 --mode 2pass
|
||||
```
|
||||
|
||||
命令参数说明:
|
||||
|
||||
```text
|
||||
--server-ip 为FunASR runtime-SDK服务部署机器ip,默认为本机ip(127.0.0.1),如果client与服务不在同一台服务器,需要改为部署机器ip
|
||||
--port 10095 部署端口号
|
||||
--mode:`offline`,表示推理模式为一句话识别;`online`,表示推理模式为实时语音识别;`2pass`:表示为实时语音识别,并且说话句尾采用离线模型进行纠错。
|
||||
--chunk_size:表示流式模型latency配置,`[5,10,5]`,表示当前音频为600ms,并且回看300ms,又看300ms。
|
||||
--wav-path 需要进行转写的音频文件,支持文件路径
|
||||
--thread_num 设置并发发送线程数,默认为1
|
||||
--ssl 设置是否开启ssl证书校验,默认1开启,设置为0关闭
|
||||
```
|
||||
|
||||
### html-client
|
||||
|
||||
在浏览器中打开 html/static/index.html,即可出现如下页面,支持麦克风输入与文件上传,直接进行体验
|
||||
|
||||
<img src="images/html.png" width="900"/>
|
||||
|
||||
### java-client
|
||||
|
||||
```shell
|
||||
FunasrWsClient --host localhost --port 10095 --mode 2pass
|
||||
```
|
||||
详细可以参考文档([点击此处](../java/readme.md))
|
||||
|
||||
## 服务端用法详解
|
||||
|
||||
### 启动已经部署过的FunASR服务
|
||||
一键部署后若出现重启电脑等关闭Docker的动作,可通过如下命令直接启动FunASR服务,启动配置为上次一键部署的设置。
|
||||
|
||||
```shell
|
||||
sudo bash funasr-runtime-deploy-offline-cpu-zh.sh start
|
||||
```
|
||||
|
||||
### 关闭FunASR服务
|
||||
|
||||
```shell
|
||||
sudo bash funasr-runtime-deploy-offline-cpu-zh.sh stop
|
||||
```
|
||||
|
||||
### 释放FunASR服务
|
||||
|
||||
释放已经部署的FunASR服务。
|
||||
```shell
|
||||
sudo bash funasr-runtime-deploy-offline-cpu-zh.sh remove
|
||||
```
|
||||
|
||||
### 重启FunASR服务
|
||||
|
||||
根据上次一键部署的设置重启启动FunASR服务。
|
||||
```shell
|
||||
sudo bash funasr-runtime-deploy-offline-cpu-zh.sh restart
|
||||
```
|
||||
|
||||
### 替换模型并重启FunASR服务
|
||||
|
||||
替换正在使用的模型,并重新启动FunASR服务。模型需为ModelScope中的ASR/VAD/PUNC模型,或者从ModelScope中模型finetune后的模型。
|
||||
|
||||
```shell
|
||||
sudo bash funasr-runtime-deploy-offline-cpu-zh.sh update [--asr_model | --vad_model | --punc_model] <model_id or local model path>
|
||||
|
||||
e.g
|
||||
sudo bash funasr-runtime-deploy-offline-cpu-zh.sh update --asr_model damo/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-pytorch
|
||||
```
|
||||
|
||||
### 更新参数并重启FunASR服务
|
||||
|
||||
更新已配置参数,并重新启动FunASR服务生效。可更新参数包括宿主机和Docker的端口号,以及推理和IO的线程数量。
|
||||
|
||||
```shell
|
||||
sudo bash funasr-runtime-deploy-offline-cpu-zh.sh update [--host_port | --docker_port] <port number>
|
||||
sudo bash funasr-runtime-deploy-offline-cpu-zh.sh update [--decode_thread_num | --io_thread_num] <the number of threads>
|
||||
sudo bash funasr-runtime-deploy-offline-cpu-zh.sh update [--workspace] <workspace in local>
|
||||
sudo bash funasr-runtime-deploy-offline-cpu-zh.sh update [--ssl] <0: close SSL; 1: open SSL, default:1>
|
||||
|
||||
e.g
|
||||
sudo bash funasr-runtime-deploy-offline-cpu-zh.sh update --decode_thread_num 32
|
||||
sudo bash funasr-runtime-deploy-offline-cpu-zh.sh update --workspace /root/funasr-runtime-resources
|
||||
```
|
||||
|
||||
|
||||
## 服务端启动过程配置详解
|
||||
|
||||
### 选择FunASR Docker镜像
|
||||
推荐选择1)使用我们的最新发布版镜像,也可选择历史版本。
|
||||
```text
|
||||
[1/5]
|
||||
Getting the list of docker images, please wait a few seconds.
|
||||
[DONE]
|
||||
|
||||
Please choose the Docker image.
|
||||
1) registry.cn-hangzhou.aliyuncs.com/funasr_repo/funasr:funasr-runtime-sdk-cpu-0.1.0
|
||||
Enter your choice, default(1):
|
||||
You have chosen the Docker image: registry.cn-hangzhou.aliyuncs.com/funasr_repo/funasr:funasr-runtime-sdk-cpu-0.1.0
|
||||
```
|
||||
|
||||
|
||||
### 设置宿主机提供给FunASR的端口
|
||||
设置提供给Docker的宿主机端口,默认为10095。请保证此端口可用。
|
||||
```text
|
||||
[2/5]
|
||||
Please input the opened port in the host used for FunASR server.
|
||||
Setting the opened host port [1-65535], default(10095):
|
||||
The port of the host is 10095
|
||||
The port in Docker for FunASR server is 10095
|
||||
```
|
||||
|
||||
### 设置SSL
|
||||
|
||||
默认开启SSL校验,如果需要关闭,可以在启动时设置
|
||||
```shell
|
||||
sudo bash funasr-runtime-deploy-offline-cpu-zh.sh --ssl 0
|
||||
```
|
||||
|
||||
## 联系我们
|
||||
|
||||
在您使用过程中,如果遇到问题,欢迎加入用户群进行反馈
|
||||
|
||||
|
||||
| 钉钉用户群 | 微信 |
|
||||
|:----------------------------------------------------------------------------:|:-----------------------------------------------------:|
|
||||
| <div align="left"><img src="../../../docs/images/dingding.jpg" width="250"/> | <img src="../../../docs/images/wechat.png" width="232"/></div> |
|
||||
|
||||
|
||||
## 视频demo
|
||||
|
||||
[点击此处]()
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@ -32,7 +32,7 @@ curl -O https://raw.githubusercontent.com/alibaba-damo-academy/FunASR/main/funas
|
||||
|
||||
执行部署工具,在提示处输入回车键即可完成服务端安装与部署。目前便捷部署工具暂时仅支持Linux环境,其他环境部署参考开发指南([点击此处](./SDK_advanced_guide_offline_zh.md))
|
||||
```shell
|
||||
sudo bash funasr-runtime-deploy-offline-cpu-zh.sh install --workspace /root/funasr-runtime-resources
|
||||
sudo bash funasr-runtime-deploy-offline-cpu-zh.sh install --workspace ./funasr-runtime-resources
|
||||
```
|
||||
|
||||
### 客户端测试与使用
|
||||
@ -54,7 +54,7 @@ python3 funasr_wss_client.py --host "127.0.0.1" --port 10095 --mode offline --au
|
||||
- [html](#html-client)
|
||||
- [java](#java-client)
|
||||
|
||||
更多版本客户端支持请参考[开发指南](./SDK_advanced_guide_offline_zh.md)
|
||||
更多版本客户端支持请参考[websocket/grpc协议](./websocket_protocol_zh.md)
|
||||
|
||||
### python-client
|
||||
若想直接运行client进行测试,可参考如下简易说明,以python版本为例:
|
||||
|
||||
8
funasr/runtime/docs/docker_online_cpu_zh_lists
Normal file
8
funasr/runtime/docs/docker_online_cpu_zh_lists
Normal file
@ -0,0 +1,8 @@
|
||||
DOCKER:
|
||||
funasr-runtime-sdk-online-cpu-0.1.0
|
||||
DEFAULT_ASR_MODEL:
|
||||
damo/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-onnx
|
||||
DEFAULT_VAD_MODEL:
|
||||
damo/speech_fsmn_vad_zh-cn-16k-common-onnx
|
||||
DEFAULT_PUNC_MODEL:
|
||||
damo/punc_ct-transformer_zh-cn-common-vocab272727-onnx
|
||||
BIN
funasr/runtime/docs/images/2pass.jpg
Normal file
BIN
funasr/runtime/docs/images/2pass.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 144 KiB |
85
funasr/runtime/docs/websocket_protocol_zh.md
Normal file
85
funasr/runtime/docs/websocket_protocol_zh.md
Normal file
@ -0,0 +1,85 @@
|
||||
# websocket/grpc通信协议
|
||||
## 离线文件转写
|
||||
### 从客户端往服务端发送数据
|
||||
#### 消息格式
|
||||
配置参数与meta信息用json,音频数据采用bytes
|
||||
#### 首次通信
|
||||
message为(需要用json序列化):
|
||||
```text
|
||||
{"mode": "offline", "wav_name": "wav_name", "is_speaking": True,"wav_format":"pcm"}
|
||||
```
|
||||
参数介绍:
|
||||
```text
|
||||
`mode`:`offline`,表示推理模式为离线文件转写
|
||||
`wav_name`:表示需要推理音频文件名
|
||||
`wav_format`:表示音视频文件后缀名,可选pcm、mp3、mp4等
|
||||
`is_speaking`:False 表示断句尾点,例如,vad切割点,或者一条wav结束
|
||||
`audio_fs`:当输入音频为pcm数据是,需要加上音频采样率参数
|
||||
```
|
||||
|
||||
#### 发送音频数据
|
||||
pcm直接将音频数据,其他格式音频数据,连同头部信息与音视频bytes数据发送,支持多种采样率与音视频格式
|
||||
|
||||
#### 发送音频结束标志
|
||||
音频数据发送结束后,需要发送结束标志(需要用json序列化):
|
||||
```text
|
||||
{"is_speaking": False}
|
||||
```
|
||||
|
||||
### 从服务端往客户端发数据
|
||||
#### 发送识别结果
|
||||
message为(采用json序列化)
|
||||
```text
|
||||
{"mode": "offline", "wav_name": "wav_name", "text": "asr ouputs", "is_final": True}
|
||||
```
|
||||
参数介绍:
|
||||
```text
|
||||
`mode`:`offline`,表示推理模式为离线文件转写
|
||||
`wav_name`:表示需要推理音频文件名
|
||||
`text`:表示语音识别输出文本
|
||||
`is_final`:表示识别结束
|
||||
```
|
||||
|
||||
## 实时语音识别
|
||||
### 系统架构图
|
||||
|
||||
<div align="left"><img src="images/2pass.jpg" width="400"/></div>
|
||||
|
||||
### 从客户端往服务端发送数据
|
||||
#### 消息格式
|
||||
配置参数与meta信息用json,音频数据采用bytes
|
||||
|
||||
#### 首次通信
|
||||
message为(需要用json序列化):
|
||||
```text
|
||||
{"mode": "offline", "wav_name": "wav_name", "is_speaking": True, "wav_format":"pcm", "chunk_size":[5,10,5]
|
||||
```
|
||||
参数介绍:
|
||||
```text
|
||||
`mode`:`offline`,表示推理模式为一句话识别;`online`,表示推理模式为实时语音识别;`2pass`:表示为实时语音识别,并且说话句尾采用离线模型进行纠错。
|
||||
`wav_name`:表示需要推理音频文件名
|
||||
`wav_format`:表示音视频文件后缀名,可选pcm、mp3、mp4等(备注,1.0版本只支持pcm音频流)
|
||||
`is_speaking`:表示断句尾点,例如,vad切割点,或者一条wav结束
|
||||
`chunk_size`:表示流式模型latency配置,`[5,10,5]`,表示当前音频为600ms,并且回看300ms,又看300ms。
|
||||
`audio_fs`:当输入音频为pcm数据是,需要加上音频采样率参数
|
||||
```
|
||||
#### 发送音频数据
|
||||
直接将音频数据,移除头部信息后的bytes数据发送,支持音频采样率为80000,16000
|
||||
#### 发送结束标志
|
||||
音频数据发送结束后,需要发送结束标志(需要用json序列化):
|
||||
```text
|
||||
{"is_speaking": False}
|
||||
```
|
||||
### 从服务端往客户端发数据
|
||||
#### 发送识别结果
|
||||
message为(采用json序列化)
|
||||
```text
|
||||
{"mode": "2pass-online", "wav_name": "wav_name", "text": "asr ouputs", "is_final": True}
|
||||
```
|
||||
参数介绍:
|
||||
```text
|
||||
`mode`:表示推理模式,分为`2pass-online`,表示实时识别结果;`2pass-offline`,表示2遍修正识别结果
|
||||
`wav_name`:表示需要推理音频文件名
|
||||
`text`:表示语音识别输出文本
|
||||
`is_final`:表示识别结束
|
||||
```
|
||||
@ -6,9 +6,9 @@ FunASR是由达摩院语音实验室开源的一款语音识别基础框架,
|
||||
SDK 支持以下几种服务部署:
|
||||
|
||||
- 中文离线文件转写服务(CPU版本),已完成
|
||||
- 中文流式语音识别服务(CPU版本),已完成
|
||||
- 中文离线文件转写服务(GPU版本),进行中
|
||||
- 英文离线转写服务,进行中
|
||||
- 流式语音识别服务,进行中
|
||||
- 更多支持中
|
||||
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user