Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
PaddlePaddle
DeepSpeech
提交
e2fef594
D
DeepSpeech
项目概览
PaddlePaddle
/
DeepSpeech
1 年多 前同步成功
通知
207
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看板
提交
e2fef594
编写于
5月 06, 2022
作者:
L
lym0302
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
remove useless code, test=doc
上级
a6934228
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
0 addition
and
228 deletion
+0
-228
tests/unit/server/offline/test_server_client.sh
tests/unit/server/offline/test_server_client.sh
+0
-2
tests/unit/server/online/tts/check_server/http_client.py
tests/unit/server/online/tts/check_server/http_client.py
+0
-100
tests/unit/server/online/tts/check_server/ws_client.py
tests/unit/server/online/tts/check_server/ws_client.py
+0
-126
未找到文件。
tests/unit/server/offline/test_server_client.sh
浏览文件 @
e2fef594
...
...
@@ -21,8 +21,6 @@ StartService(){
}
ClientTest
(){
echo
"aaaaaaaaaaaaaaaaaaaaaaaaaa
$server_ip
"
echo
"aaaaaaaaaaaaaaaaaaaaaaaaaa
$port
"
# Client test
# test asr client
paddlespeech_client asr
--server_ip
$server_ip
--port
$port
--input
./zh.wav
...
...
tests/unit/server/online/tts/check_server/http_client.py
已删除
100644 → 0
浏览文件 @
a6934228
# Copyright (c) 2021 PaddlePaddle Authors. All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
import
argparse
import
base64
import
json
import
os
import
time
import
requests
from
paddlespeech.server.utils.audio_process
import
pcm2wav
def
save_audio
(
buffer
,
audio_path
)
->
bool
:
if
args
.
save_path
.
endswith
(
"pcm"
):
with
open
(
args
.
save_path
,
"wb"
)
as
f
:
f
.
write
(
buffer
)
elif
args
.
save_path
.
endswith
(
"wav"
):
with
open
(
"./tmp.pcm"
,
"wb"
)
as
f
:
f
.
write
(
buffer
)
pcm2wav
(
"./tmp.pcm"
,
audio_path
,
channels
=
1
,
bits
=
16
,
sample_rate
=
24000
)
os
.
system
(
"rm ./tmp.pcm"
)
else
:
print
(
"Only supports saved audio format is pcm or wav"
)
return
False
return
True
def
test
(
args
):
params
=
{
"text"
:
args
.
text
,
"spk_id"
:
args
.
spk_id
,
"speed"
:
args
.
speed
,
"volume"
:
args
.
volume
,
"sample_rate"
:
args
.
sample_rate
,
"save_path"
:
''
}
buffer
=
b
''
flag
=
1
url
=
"http://"
+
str
(
args
.
server
)
+
":"
+
str
(
args
.
port
)
+
"/paddlespeech/streaming/tts"
st
=
time
.
time
()
html
=
requests
.
post
(
url
,
json
.
dumps
(
params
),
stream
=
True
)
for
chunk
in
html
.
iter_content
(
chunk_size
=
1024
):
chunk
=
base64
.
b64decode
(
chunk
)
# bytes
if
flag
:
first_response
=
time
.
time
()
-
st
print
(
f
"首包响应:
{
first_response
}
s"
)
flag
=
0
buffer
+=
chunk
final_response
=
time
.
time
()
-
st
duration
=
len
(
buffer
)
/
2.0
/
24000
print
(
f
"尾包响应:
{
final_response
}
s"
)
print
(
f
"音频时长:
{
duration
}
s"
)
print
(
f
"RTF:
{
final_response
/
duration
}
"
)
if
args
.
save_path
is
not
None
:
if
save_audio
(
buffer
,
args
.
save_path
):
print
(
"音频保存至:"
,
args
.
save_path
)
if
__name__
==
"__main__"
:
parser
=
argparse
.
ArgumentParser
()
parser
.
add_argument
(
'--text'
,
type
=
str
,
default
=
"您好,欢迎使用语音合成服务。"
,
help
=
'A sentence to be synthesized'
)
parser
.
add_argument
(
'--spk_id'
,
type
=
int
,
default
=
0
,
help
=
'Speaker id'
)
parser
.
add_argument
(
'--speed'
,
type
=
float
,
default
=
1.0
,
help
=
'Audio speed'
)
parser
.
add_argument
(
'--volume'
,
type
=
float
,
default
=
1.0
,
help
=
'Audio volume'
)
parser
.
add_argument
(
'--sample_rate'
,
type
=
int
,
default
=
0
,
help
=
'Sampling rate, the default is the same as the model'
)
parser
.
add_argument
(
"--server"
,
type
=
str
,
help
=
"server ip"
,
default
=
"127.0.0.1"
)
parser
.
add_argument
(
"--port"
,
type
=
int
,
help
=
"server port"
,
default
=
8092
)
parser
.
add_argument
(
"--save_path"
,
type
=
str
,
help
=
"save audio path"
,
default
=
None
)
args
=
parser
.
parse_args
()
test
(
args
)
tests/unit/server/online/tts/check_server/ws_client.py
已删除
100644 → 0
浏览文件 @
a6934228
# Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
import
_thread
as
thread
import
argparse
import
base64
import
json
import
ssl
import
time
import
websocket
flag
=
1
st
=
0.0
all_bytes
=
b
''
class
WsParam
(
object
):
# 初始化
def
__init__
(
self
,
text
,
server
=
"127.0.0.1"
,
port
=
8090
):
self
.
server
=
server
self
.
port
=
port
self
.
url
=
"ws://"
+
self
.
server
+
":"
+
str
(
self
.
port
)
+
"/ws/tts"
self
.
text
=
text
# 生成url
def
create_url
(
self
):
return
self
.
url
def
on_message
(
ws
,
message
):
global
flag
global
st
global
all_bytes
try
:
message
=
json
.
loads
(
message
)
audio
=
message
[
"audio"
]
audio
=
base64
.
b64decode
(
audio
)
# bytes
status
=
message
[
"status"
]
all_bytes
+=
audio
if
status
==
0
:
print
(
"create successfully."
)
elif
status
==
1
:
if
flag
:
print
(
f
"首包响应:
{
time
.
time
()
-
st
}
s"
)
flag
=
0
elif
status
==
2
:
final_response
=
time
.
time
()
-
st
duration
=
len
(
all_bytes
)
/
2.0
/
24000
print
(
f
"尾包响应:
{
final_response
}
s"
)
print
(
f
"音频时长:
{
duration
}
s"
)
print
(
f
"RTF:
{
final_response
/
duration
}
"
)
with
open
(
"./out.pcm"
,
"wb"
)
as
f
:
f
.
write
(
all_bytes
)
print
(
"ws is closed"
)
ws
.
close
()
else
:
print
(
"infer error"
)
except
Exception
as
e
:
print
(
"receive msg,but parse exception:"
,
e
)
# 收到websocket错误的处理
def
on_error
(
ws
,
error
):
print
(
"### error:"
,
error
)
# 收到websocket关闭的处理
def
on_close
(
ws
):
print
(
"### closed ###"
)
# 收到websocket连接建立的处理
def
on_open
(
ws
):
def
run
(
*
args
):
global
st
text_base64
=
str
(
base64
.
b64encode
((
wsParam
.
text
).
encode
(
'utf-8'
)),
"UTF8"
)
d
=
{
"text"
:
text_base64
}
d
=
json
.
dumps
(
d
)
print
(
"Start sending text data"
)
st
=
time
.
time
()
ws
.
send
(
d
)
thread
.
start_new_thread
(
run
,
())
if
__name__
==
"__main__"
:
parser
=
argparse
.
ArgumentParser
()
parser
.
add_argument
(
"--text"
,
type
=
str
,
help
=
"A sentence to be synthesized"
,
default
=
"您好,欢迎使用语音合成服务。"
)
parser
.
add_argument
(
"--server"
,
type
=
str
,
help
=
"server ip"
,
default
=
"127.0.0.1"
)
parser
.
add_argument
(
"--port"
,
type
=
int
,
help
=
"server port"
,
default
=
8092
)
args
=
parser
.
parse_args
()
print
(
"***************************************"
)
print
(
"Server ip: "
,
args
.
server
)
print
(
"Server port: "
,
args
.
port
)
print
(
"Sentence to be synthesized: "
,
args
.
text
)
print
(
"***************************************"
)
wsParam
=
WsParam
(
text
=
args
.
text
,
server
=
args
.
server
,
port
=
args
.
port
)
websocket
.
enableTrace
(
False
)
wsUrl
=
wsParam
.
create_url
()
ws
=
websocket
.
WebSocketApp
(
wsUrl
,
on_message
=
on_message
,
on_error
=
on_error
,
on_close
=
on_close
)
ws
.
on_open
=
on_open
ws
.
run_forever
(
sslopt
=
{
"cert_reqs"
:
ssl
.
CERT_NONE
})
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录