Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
PaddlePaddle
DeepSpeech
提交
c5fe1814
D
DeepSpeech
项目概览
PaddlePaddle
/
DeepSpeech
大约 1 年 前同步成功
通知
206
Star
8425
Fork
1598
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
245
列表
看板
标记
里程碑
合并请求
3
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
DeepSpeech
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
245
Issue
245
列表
看板
标记
里程碑
合并请求
3
合并请求
3
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
c5fe1814
编写于
4月 27, 2022
作者:
X
xiongxinlei
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
update the paddlespeech_client asr_online cli, test=doc
上级
4c56e4d4
变更
5
隐藏空白更改
内联
并排
Showing
5 changed file
with
295 addition
and
10 deletion
+295
-10
demos/streaming_asr_server/README.md
demos/streaming_asr_server/README.md
+7
-1
demos/streaming_asr_server/README_cn.md
demos/streaming_asr_server/README_cn.md
+197
-5
examples/voxceleb/sv0/README.md
examples/voxceleb/sv0/README.md
+1
-1
examples/voxceleb/sv0/local/test.sh
examples/voxceleb/sv0/local/test.sh
+17
-1
paddlespeech/server/bin/paddlespeech_client.py
paddlespeech/server/bin/paddlespeech_client.py
+73
-2
未找到文件。
demos/streaming_asr_server/README.md
浏览文件 @
c5fe1814
...
...
@@ -186,16 +186,19 @@ wget -c https://paddlespeech.bj.bcebos.com/PaddleAudio/zh.wav
### 4. ASR Client Usage
#### 4.2 使用 `paddlespeech_client asr_online`
**Note:**
The response time will be slightly longer when using the client for the first time
-
Command Line (Recommended)
```
# if we use paddlespeech_client asr, we must specify the protocol to websocket
paddlespeech_client asr --server_ip 127.0.0.1 --port 8090 --input ./zh.wav --protocol websocket
```
Usage:
```
bash
paddlespeech_client asr
_online
--
help
paddlespeech_client asr
help
```
Arguments:
-
`server_ip`
: server ip. Default: 127.0.0.1
...
...
@@ -204,6 +207,9 @@ wget -c https://paddlespeech.bj.bcebos.com/PaddleAudio/zh.wav
-
`sample_rate`
: Audio ampling rate, default: 16000.
-
`lang`
: Language. Default: "zh_cn".
-
`audio_format`
: Audio format. Default: "wav".
-
`protocol`
: protocol between client and server. Streaming asr must be websocket.
-
`punc.server_ip`
: punctuation server ip. Default: None.
-
`punc.server_port`
: punctuation server port. Default: None.
Output:
```
bash
...
...
demos/streaming_asr_server/README_cn.md
浏览文件 @
c5fe1814
...
...
@@ -5,18 +5,27 @@
## 介绍
这个demo是一个启动流式语音服务和访问服务的实现。 它可以通过使用
`paddlespeech_server`
和
`paddlespeech_client`
的单个命令或 python 的几行代码来实现。
流式语音识别服务只支持
`weboscket`
协议,不支持
`http`
协议。
**流式语音识别服务只支持 `weboscket` 协议,不支持 `http` 协议。**
## 使用方法
### 1. 安装
请看
[
安装文档
](
https://github.com/PaddlePaddle/PaddleSpeech/blob/develop/docs/source/install.md
)
.
安装 PaddleSpeech 的详细过程请看
[
安装文档
](
https://github.com/PaddlePaddle/PaddleSpeech/blob/develop/docs/source/install.md
)
。
推荐使用
**paddlepaddle 2.2.1**
或以上版本。
你可以从medium,hard
二
中方式中选择一种方式安装 PaddleSpeech。
你可以从medium,hard
两
中方式中选择一种方式安装 PaddleSpeech。
### 2. 准备配置文件
配置文件可参见
`conf/ws_application.yaml`
和
`conf/ws_conformer_application.yaml`
。
流式ASR的服务启动脚本和服务测试脚本存放在
`PaddleSpeech/demos/streaming_asr_server`
目录。
下载好
`PaddleSpeech`
之后,进入到
`PaddleSpeech/demos/streaming_asr_server`
目录。
配置文件可参见该目录下
`conf/ws_application.yaml`
和
`conf/ws_conformer_application.yaml`
。
目前服务集成的模型有: DeepSpeech2和 conformer模型,对应的配置文件如下:
*
DeepSpeech:
`conf/ws_application.yaml`
*
conformer:
`conf/ws_conformer_application.yaml`
目前服务集成的模型有: DeepSpeech2和conformer模型。
...
...
@@ -185,17 +194,197 @@ wget -c https://paddlespeech.bj.bcebos.com/PaddleAudio/zh.wav
```
### 4. ASR 客户端使用方法
#### 4.1 使用`paddlespeech_client asr `
**注意:**
初次使用客户端时响应时间会略长
-
命令行 (推荐使用)
```
# 使用 paddlespecch_asr 需要指定传入协议为 websocket
paddlespeech_client asr --server_ip 127.0.0.1 --port 8090 --input ./zh.wav --protocol websocket
```
使用帮助:
```
bash
paddlespeech_client asr
help
```
参数:
- `server_ip`: 服务端ip地址,默认: 127.0.0.1。
- `port`: 服务端口,默认: 8090。
- `input`(必须输入): 用于识别的音频文件。
- `sample_rate`: 音频采样率,默认值:16000。
- `lang`: 模型语言,默认值:zh_cn。
- `audio_format`: 音频格式,默认值:wav。
- `protocol` 指定客户端和服务端之间服务的协议。在流式识别中必须指定 websocket。
- `punc.server_ip` 标点预测服务的ip。默认是None。
- `punc.server_port` 标点预测服务的端口port。默认是None。
输出:
```bash
[2022-04-21 15:59:03,904] [ INFO] - receive msg={"status": "ok", "signal": "server_ready"}
[2022-04-21 15:59:03,960] [ INFO] - receive msg={'asr_results': ''}
[2022-04-21 15:59:03,973] [ INFO] - receive msg={'asr_results': ''}
[2022-04-21 15:59:03,987] [ INFO] - receive msg={'asr_results': ''}
[2022-04-21 15:59:04,000] [ INFO] - receive msg={'asr_results': ''}
[2022-04-21 15:59:04,012] [ INFO] - receive msg={'asr_results': ''}
[2022-04-21 15:59:04,024] [ INFO] - receive msg={'asr_results': ''}
[2022-04-21 15:59:04,036] [ INFO] - receive msg={'asr_results': ''}
[2022-04-21 15:59:04,047] [ INFO] - receive msg={'asr_results': ''}
[2022-04-21 15:59:04,607] [ INFO] - receive msg={'asr_results': ''}
[2022-04-21 15:59:04,620] [ INFO] - receive msg={'asr_results': ''}
[2022-04-21 15:59:04,633] [ INFO] - receive msg={'asr_results': ''}
[2022-04-21 15:59:04,645] [ INFO] - receive msg={'asr_results': ''}
[2022-04-21 15:59:04,657] [ INFO] - receive msg={'asr_results': ''}
[2022-04-21 15:59:04,669] [ INFO] - receive msg={'asr_results': ''}
[2022-04-21 15:59:04,680] [ INFO] - receive msg={'asr_results': ''}
[2022-04-21 15:59:05,176] [ INFO] - receive msg={'asr_results': '我认为跑'}
[2022-04-21 15:59:05,185] [ INFO] - receive msg={'asr_results': '我认为跑'}
[2022-04-21 15:59:05,192] [ INFO] - receive msg={'asr_results': '我认为跑'}
[2022-04-21 15:59:05,200] [ INFO] - receive msg={'asr_results': '我认为跑'}
[2022-04-21 15:59:05,208] [ INFO] - receive msg={'asr_results': '我认为跑'}
[2022-04-21 15:59:05,216] [ INFO] - receive msg={'asr_results': '我认为跑'}
[2022-04-21 15:59:05,224] [ INFO] - receive msg={'asr_results': '我认为跑'}
[2022-04-21 15:59:05,232] [ INFO] - receive msg={'asr_results': '我认为跑'}
[2022-04-21 15:59:05,724] [ INFO] - receive msg={'asr_results': '我认为跑步最重要的'}
[2022-04-21 15:59:05,732] [ INFO] - receive msg={'asr_results': '我认为跑步最重要的'}
[2022-04-21 15:59:05,740] [ INFO] - receive msg={'asr_results': '我认为跑步最重要的'}
[2022-04-21 15:59:05,747] [ INFO] - receive msg={'asr_results': '我认为跑步最重要的'}
[2022-04-21 15:59:05,755] [ INFO] - receive msg={'asr_results': '我认为跑步最重要的'}
[2022-04-21 15:59:05,763] [ INFO] - receive msg={'asr_results': '我认为跑步最重要的'}
[2022-04-21 15:59:05,770] [ INFO] - receive msg={'asr_results': '我认为跑步最重要的'}
[2022-04-21 15:59:06,271] [ INFO] - receive msg={'asr_results': '我认为跑步最重要的就是'}
[2022-04-21 15:59:06,279] [ INFO] - receive msg={'asr_results': '我认为跑步最重要的就是'}
[2022-04-21 15:59:06,287] [ INFO] - receive msg={'asr_results': '我认为跑步最重要的就是'}
[2022-04-21 15:59:06,294] [ INFO] - receive msg={'asr_results': '我认为跑步最重要的就是'}
[2022-04-21 15:59:06,302] [ INFO] - receive msg={'asr_results': '我认为跑步最重要的就是'}
[2022-04-21 15:59:06,310] [ INFO] - receive msg={'asr_results': '我认为跑步最重要的就是'}
[2022-04-21 15:59:06,318] [ INFO] - receive msg={'asr_results': '我认为跑步最重要的就是'}
[2022-04-21 15:59:06,326] [ INFO] - receive msg={'asr_results': '我认为跑步最重要的就是'}
[2022-04-21 15:59:06,833] [ INFO] - receive msg={'asr_results': '我认为跑步最重要的就是给'}
[2022-04-21 15:59:06,842] [ INFO] - receive msg={'asr_results': '我认为跑步最重要的就是给'}
[2022-04-21 15:59:06,850] [ INFO] - receive msg={'asr_results': '我认为跑步最重要的就是给'}
[2022-04-21 15:59:06,858] [ INFO] - receive msg={'asr_results': '我认为跑步最重要的就是给'}
[2022-04-21 15:59:06,866] [ INFO] - receive msg={'asr_results': '我认为跑步最重要的就是给'}
[2022-04-21 15:59:06,874] [ INFO] - receive msg={'asr_results': '我认为跑步最重要的就是给'}
[2022-04-21 15:59:06,882] [ INFO] - receive msg={'asr_results': '我认为跑步最重要的就是给'}
[2022-04-21 15:59:07,400] [ INFO] - receive msg={'asr_results': '我认为跑步最重要的就是给我带来了'}
[2022-04-21 15:59:07,408] [ INFO] - receive msg={'asr_results': '我认为跑步最重要的就是给我带来了'}
[2022-04-21 15:59:07,416] [ INFO] - receive msg={'asr_results': '我认为跑步最重要的就是给我带来了'}
[2022-04-21 15:59:07,424] [ INFO] - receive msg={'asr_results': '我认为跑步最重要的就是给我带来了'}
[2022-04-21 15:59:07,432] [ INFO] - receive msg={'asr_results': '我认为跑步最重要的就是给我带来了'}
[2022-04-21 15:59:07,440] [ INFO] - receive msg={'asr_results': '我认为跑步最重要的就是给我带来了'}
[2022-04-21 15:59:07,447] [ INFO] - receive msg={'asr_results': '我认为跑步最重要的就是给我带来了'}
[2022-04-21 15:59:07,455] [ INFO] - receive msg={'asr_results': '我认为跑步最重要的就是给我带来了'}
[2022-04-21 15:59:07,984] [ INFO] - receive msg={'asr_results': '我认为跑步最重要的就是给我带来了身体健康'}
[2022-04-21 15:59:07,992] [ INFO] - receive msg={'asr_results': '我认为跑步最重要的就是给我带来了身体健康'}
[2022-04-21 15:59:08,001] [ INFO] - receive msg={'asr_results': '我认为跑步最重要的就是给我带来了身体健康'}
[2022-04-21 15:59:08,008] [ INFO] - receive msg={'asr_results': '我认为跑步最重要的就是给我带来了身体健康'}
[2022-04-21 15:59:08,016] [ INFO] - receive msg={'asr_results': '我认为跑步最重要的就是给我带来了身体健康'}
[2022-04-21 15:59:08,024] [ INFO] - receive msg={'asr_results': '我认为跑步最重要的就是给我带来了身体健康'}
[2022-04-21 15:59:12,883] [ INFO] - final receive msg={'status': 'ok', 'signal': 'finished', 'asr_results': '我认为跑步最重要的就是给我带来了身体健康'}
[2022-04-21 15:59:12,884] [ INFO] - 我认为跑步最重要的就是给我带来了身体健康
[2022-04-21 15:59:12,884] [ INFO] - Response time 9.051567 s.
```
-
Python API
```
python
from
paddlespeech.server.bin.paddlespeech_client
import
ASRClientExecutor
import
json
asrclient_executor
=
ASRClientExecutor
()
res
=
asrclient_executor
(
input
=
"./zh.wav"
,
server_ip
=
"127.0.0.1"
,
port
=
8090
,
sample_rate
=
16000
,
lang
=
"zh_cn"
,
audio_format
=
"wav"
,
protocol
=
"websocket"
)
print
(
res
)
```
输出:
```
bash
[
2022-04-21 15:59:03,904]
[
INFO] - receive
msg
={
"status"
:
"ok"
,
"signal"
:
"server_ready"
}
[
2022-04-21 15:59:03,960]
[
INFO] - receive
msg
={
'asr_results'
:
''
}
[
2022-04-21 15:59:03,973]
[
INFO] - receive
msg
={
'asr_results'
:
''
}
[
2022-04-21 15:59:03,987]
[
INFO] - receive
msg
={
'asr_results'
:
''
}
[
2022-04-21 15:59:04,000]
[
INFO] - receive
msg
={
'asr_results'
:
''
}
[
2022-04-21 15:59:04,012]
[
INFO] - receive
msg
={
'asr_results'
:
''
}
[
2022-04-21 15:59:04,024]
[
INFO] - receive
msg
={
'asr_results'
:
''
}
[
2022-04-21 15:59:04,036]
[
INFO] - receive
msg
={
'asr_results'
:
''
}
[
2022-04-21 15:59:04,047]
[
INFO] - receive
msg
={
'asr_results'
:
''
}
[
2022-04-21 15:59:04,607]
[
INFO] - receive
msg
={
'asr_results'
:
''
}
[
2022-04-21 15:59:04,620]
[
INFO] - receive
msg
={
'asr_results'
:
''
}
[
2022-04-21 15:59:04,633]
[
INFO] - receive
msg
={
'asr_results'
:
''
}
[
2022-04-21 15:59:04,645]
[
INFO] - receive
msg
={
'asr_results'
:
''
}
[
2022-04-21 15:59:04,657]
[
INFO] - receive
msg
={
'asr_results'
:
''
}
[
2022-04-21 15:59:04,669]
[
INFO] - receive
msg
={
'asr_results'
:
''
}
[
2022-04-21 15:59:04,680]
[
INFO] - receive
msg
={
'asr_results'
:
''
}
[
2022-04-21 15:59:05,176]
[
INFO] - receive
msg
={
'asr_results'
:
'我认为跑'
}
[
2022-04-21 15:59:05,185]
[
INFO] - receive
msg
={
'asr_results'
:
'我认为跑'
}
[
2022-04-21 15:59:05,192]
[
INFO] - receive
msg
={
'asr_results'
:
'我认为跑'
}
[
2022-04-21 15:59:05,200]
[
INFO] - receive
msg
={
'asr_results'
:
'我认为跑'
}
[
2022-04-21 15:59:05,208]
[
INFO] - receive
msg
={
'asr_results'
:
'我认为跑'
}
[
2022-04-21 15:59:05,216]
[
INFO] - receive
msg
={
'asr_results'
:
'我认为跑'
}
[
2022-04-21 15:59:05,224]
[
INFO] - receive
msg
={
'asr_results'
:
'我认为跑'
}
[
2022-04-21 15:59:05,232]
[
INFO] - receive
msg
={
'asr_results'
:
'我认为跑'
}
[
2022-04-21 15:59:05,724]
[
INFO] - receive
msg
={
'asr_results'
:
'我认为跑步最重要的'
}
[
2022-04-21 15:59:05,732]
[
INFO] - receive
msg
={
'asr_results'
:
'我认为跑步最重要的'
}
[
2022-04-21 15:59:05,740]
[
INFO] - receive
msg
={
'asr_results'
:
'我认为跑步最重要的'
}
[
2022-04-21 15:59:05,747]
[
INFO] - receive
msg
={
'asr_results'
:
'我认为跑步最重要的'
}
[
2022-04-21 15:59:05,755]
[
INFO] - receive
msg
={
'asr_results'
:
'我认为跑步最重要的'
}
[
2022-04-21 15:59:05,763]
[
INFO] - receive
msg
={
'asr_results'
:
'我认为跑步最重要的'
}
[
2022-04-21 15:59:05,770]
[
INFO] - receive
msg
={
'asr_results'
:
'我认为跑步最重要的'
}
[
2022-04-21 15:59:06,271]
[
INFO] - receive
msg
={
'asr_results'
:
'我认为跑步最重要的就是'
}
[
2022-04-21 15:59:06,279]
[
INFO] - receive
msg
={
'asr_results'
:
'我认为跑步最重要的就是'
}
[
2022-04-21 15:59:06,287]
[
INFO] - receive
msg
={
'asr_results'
:
'我认为跑步最重要的就是'
}
[
2022-04-21 15:59:06,294]
[
INFO] - receive
msg
={
'asr_results'
:
'我认为跑步最重要的就是'
}
[
2022-04-21 15:59:06,302]
[
INFO] - receive
msg
={
'asr_results'
:
'我认为跑步最重要的就是'
}
[
2022-04-21 15:59:06,310]
[
INFO] - receive
msg
={
'asr_results'
:
'我认为跑步最重要的就是'
}
[
2022-04-21 15:59:06,318]
[
INFO] - receive
msg
={
'asr_results'
:
'我认为跑步最重要的就是'
}
[
2022-04-21 15:59:06,326]
[
INFO] - receive
msg
={
'asr_results'
:
'我认为跑步最重要的就是'
}
[
2022-04-21 15:59:06,833]
[
INFO] - receive
msg
={
'asr_results'
:
'我认为跑步最重要的就是给'
}
[
2022-04-21 15:59:06,842]
[
INFO] - receive
msg
={
'asr_results'
:
'我认为跑步最重要的就是给'
}
[
2022-04-21 15:59:06,850]
[
INFO] - receive
msg
={
'asr_results'
:
'我认为跑步最重要的就是给'
}
[
2022-04-21 15:59:06,858]
[
INFO] - receive
msg
={
'asr_results'
:
'我认为跑步最重要的就是给'
}
[
2022-04-21 15:59:06,866]
[
INFO] - receive
msg
={
'asr_results'
:
'我认为跑步最重要的就是给'
}
[
2022-04-21 15:59:06,874]
[
INFO] - receive
msg
={
'asr_results'
:
'我认为跑步最重要的就是给'
}
[
2022-04-21 15:59:06,882]
[
INFO] - receive
msg
={
'asr_results'
:
'我认为跑步最重要的就是给'
}
[
2022-04-21 15:59:07,400]
[
INFO] - receive
msg
={
'asr_results'
:
'我认为跑步最重要的就是给我带来了'
}
[
2022-04-21 15:59:07,408]
[
INFO] - receive
msg
={
'asr_results'
:
'我认为跑步最重要的就是给我带来了'
}
[
2022-04-21 15:59:07,416]
[
INFO] - receive
msg
={
'asr_results'
:
'我认为跑步最重要的就是给我带来了'
}
[
2022-04-21 15:59:07,424]
[
INFO] - receive
msg
={
'asr_results'
:
'我认为跑步最重要的就是给我带来了'
}
[
2022-04-21 15:59:07,432]
[
INFO] - receive
msg
={
'asr_results'
:
'我认为跑步最重要的就是给我带来了'
}
[
2022-04-21 15:59:07,440]
[
INFO] - receive
msg
={
'asr_results'
:
'我认为跑步最重要的就是给我带来了'
}
[
2022-04-21 15:59:07,447]
[
INFO] - receive
msg
={
'asr_results'
:
'我认为跑步最重要的就是给我带来了'
}
[
2022-04-21 15:59:07,455]
[
INFO] - receive
msg
={
'asr_results'
:
'我认为跑步最重要的就是给我带来了'
}
[
2022-04-21 15:59:07,984]
[
INFO] - receive
msg
={
'asr_results'
:
'我认为跑步最重要的就是给我带来了身体健康'
}
[
2022-04-21 15:59:07,992]
[
INFO] - receive
msg
={
'asr_results'
:
'我认为跑步最重要的就是给我带来了身体健康'
}
[
2022-04-21 15:59:08,001]
[
INFO] - receive
msg
={
'asr_results'
:
'我认为跑步最重要的就是给我带来了身体健康'
}
[
2022-04-21 15:59:08,008]
[
INFO] - receive
msg
={
'asr_results'
:
'我认为跑步最重要的就是给我带来了身体健康'
}
[
2022-04-21 15:59:08,016]
[
INFO] - receive
msg
={
'asr_results'
:
'我认为跑步最重要的就是给我带来了身体健康'
}
[
2022-04-21 15:59:08,024]
[
INFO] - receive
msg
={
'asr_results'
:
'我认为跑步最重要的就是给我带来了身体健康'
}
[
2022-04-21 15:59:12,883]
[
INFO] - final receive
msg
={
'status'
:
'ok'
,
'signal'
:
'finished'
,
'asr_results'
:
'我认为跑步最重要的就是给我带来了身体健康'
}
[
2022-04-21 15:59:12,884]
[
INFO] - 我认为跑步最重要的就是给我带来了身体健康
```
#### 4.2 使用 `paddlespeech_client asr_online`
**注意:**
初次使用客户端时响应时间会略长
-
命令行 (推荐使用)
```
# 使用 paddlespecch_asr 需要指定传入协议为 websocket
paddlespeech_client asr_online --server_ip 127.0.0.1 --port 8090 --input ./zh.wav
```
使用帮助:
```
bash
paddlespeech_client asr
_online
--
help
paddlespeech_client asr
help
```
参数:
...
...
@@ -205,6 +394,9 @@ wget -c https://paddlespeech.bj.bcebos.com/PaddleAudio/zh.wav
- `sample_rate`: 音频采样率,默认值:16000。
- `lang`: 模型语言,默认值:zh_cn。
- `audio_format`: 音频格式,默认值:wav。
- `protocol` 指定客户端和服务端之间服务的协议。在流式识别中必须指定 websocket。
- `punc.server_ip` 标点预测服务的ip。默认是None。
- `punc.server_port` 标点预测服务的端口port。默认是None。
输出:
...
...
examples/voxceleb/sv0/README.md
浏览文件 @
c5fe1814
...
...
@@ -146,6 +146,6 @@ tar -xvf sv0_ecapa_tdnn_voxceleb12_ckpt_0_2_0.tar.gz
source path.sh
# If you have processed the data and get the manifest file, you can skip the following 2 steps
CUDA_VISIBLE_DEVICES=
./local/test.sh ./data sv0_ecapa_tdnn_voxceleb12_ckpt_0_1_2
conf/ecapa_tdnn.yaml
CUDA_VISIBLE_DEVICES=
bash ./local/test.sh ./data sv0_ecapa_tdnn_voxceleb12_ckpt_0_1_2/model/
conf/ecapa_tdnn.yaml
```
The performance of the released models are shown in
[
this
](
./RESULTS.md
)
examples/voxceleb/sv0/local/test.sh
浏览文件 @
c5fe1814
...
...
@@ -33,10 +33,26 @@ dir=$1
exp_dir
=
$2
conf_path
=
$3
# get the gpu nums for training
ngpu
=
$(
echo
$CUDA_VISIBLE_DEVICES
|
awk
-F
","
'{print NF}'
)
echo
"using
$ngpu
gpus..."
# setting training device
device
=
"cpu"
if
${
use_gpu
}
;
then
device
=
"gpu"
fi
if
[
$ngpu
-le
0
]
;
then
echo
"no gpu, training in cpu mode"
device
=
'cpu'
use_gpu
=
false
fi
if
[
${
stage
}
-le
1
]
&&
[
${
stop_stage
}
-ge
1
]
;
then
# test the model and compute the eer metrics
python3
${
BIN_DIR
}
/test.py
\
--data-dir
${
dir
}
\
--load-checkpoint
${
exp_dir
}
\
--config
${
conf_path
}
--config
${
conf_path
}
\
--device
${
device
}
fi
paddlespeech/server/bin/paddlespeech_client.py
浏览文件 @
c5fe1814
...
...
@@ -35,7 +35,7 @@ from paddlespeech.server.utils.util import wav2base64
__all__
=
[
'TTSClientExecutor'
,
'TTSOnlineClientExecutor'
,
'ASRClientExecutor'
,
'CLSClientExecutor'
'
ASROnlineClientExecutor'
,
'
CLSClientExecutor'
]
...
...
@@ -397,6 +397,77 @@ class ASRClientExecutor(BaseExecutor):
return
res
@
cli_client_register
(
name
=
'paddlespeech_client.asr_online'
,
description
=
'visit asr online service'
)
class
ASROnlineClientExecutor
(
BaseExecutor
):
def
__init__
(
self
):
super
(
ASROnlineClientExecutor
,
self
).
__init__
()
self
.
parser
=
argparse
.
ArgumentParser
(
prog
=
'paddlespeech_client.asr_online'
,
add_help
=
True
)
self
.
parser
.
add_argument
(
'--server_ip'
,
type
=
str
,
default
=
'127.0.0.1'
,
help
=
'server ip'
)
self
.
parser
.
add_argument
(
'--port'
,
type
=
int
,
default
=
8091
,
help
=
'server port'
)
self
.
parser
.
add_argument
(
'--input'
,
type
=
str
,
default
=
None
,
help
=
'Audio file to be recognized'
,
required
=
True
)
self
.
parser
.
add_argument
(
'--sample_rate'
,
type
=
int
,
default
=
16000
,
help
=
'audio sample rate'
)
self
.
parser
.
add_argument
(
'--lang'
,
type
=
str
,
default
=
"zh_cn"
,
help
=
'language'
)
self
.
parser
.
add_argument
(
'--audio_format'
,
type
=
str
,
default
=
"wav"
,
help
=
'audio format'
)
def
execute
(
self
,
argv
:
List
[
str
])
->
bool
:
args
=
self
.
parser
.
parse_args
(
argv
)
input_
=
args
.
input
server_ip
=
args
.
server_ip
port
=
args
.
port
sample_rate
=
args
.
sample_rate
lang
=
args
.
lang
audio_format
=
args
.
audio_format
try
:
time_start
=
time
.
time
()
res
=
self
(
input
=
input_
,
server_ip
=
server_ip
,
port
=
port
,
sample_rate
=
sample_rate
,
lang
=
lang
,
audio_format
=
audio_format
)
time_end
=
time
.
time
()
logger
.
info
(
res
)
logger
.
info
(
"Response time %f s."
%
(
time_end
-
time_start
))
return
True
except
Exception
as
e
:
logger
.
error
(
"Failed to speech recognition."
)
logger
.
error
(
e
)
return
False
@
stats_wrapper
def
__call__
(
self
,
input
:
str
,
server_ip
:
str
=
"127.0.0.1"
,
port
:
int
=
8091
,
sample_rate
:
int
=
16000
,
lang
:
str
=
"zh_cn"
,
audio_format
:
str
=
"wav"
):
"""
Python API to call an executor.
"""
logger
.
info
(
"asr websocket client start"
)
handler
=
ASRWsAudioHandler
(
server_ip
,
port
)
loop
=
asyncio
.
get_event_loop
()
res
=
loop
.
run_until_complete
(
handler
.
run
(
input
))
logger
.
info
(
"asr websocket client finished"
)
return
res
[
'result'
]
@
cli_client_register
(
name
=
'paddlespeech_client.cls'
,
description
=
'visit cls service'
)
class
CLSClientExecutor
(
BaseExecutor
):
...
...
@@ -521,4 +592,4 @@ class TextClientExecutor(BaseExecutor):
res
=
requests
.
post
(
url
=
url
,
data
=
json
.
dumps
(
request
))
response_dict
=
res
.
json
()
punc_text
=
response_dict
[
"result"
][
"punc_text"
]
return
punc_text
\ No newline at end of file
return
punc_text
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录