Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
PaddlePaddle
DeepSpeech
提交
be21aed0
D
DeepSpeech
项目概览
PaddlePaddle
/
DeepSpeech
12 个月 前同步成功
通知
204
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,发现更多精彩内容 >>
提交
be21aed0
编写于
5月 11, 2022
作者:
L
lym0302
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
trans remove file way, test=doc
上级
b1f9b801
变更
8
隐藏空白更改
内联
并排
Showing
8 changed file
with
69 addition
and
53 deletion
+69
-53
paddlespeech/server/bin/paddlespeech_client.py
paddlespeech/server/bin/paddlespeech_client.py
+1
-1
paddlespeech/server/tests/tts/offline/http_client.py
paddlespeech/server/tests/tts/offline/http_client.py
+1
-1
paddlespeech/server/utils/audio_handler.py
paddlespeech/server/utils/audio_handler.py
+50
-37
paddlespeech/server/utils/audio_process.py
paddlespeech/server/utils/audio_process.py
+1
-1
paddlespeech/server/ws/tts_api.py
paddlespeech/server/ws/tts_api.py
+6
-5
tests/unit/server/offline/change_yaml.py
tests/unit/server/offline/change_yaml.py
+5
-4
tests/unit/server/online/tts/check_server/change_yaml.py
tests/unit/server/online/tts/check_server/change_yaml.py
+3
-2
tests/unit/server/online/tts/test_server/test_http_client.py
tests/unit/server/online/tts/test_server/test_http_client.py
+2
-2
未找到文件。
paddlespeech/server/bin/paddlespeech_client.py
浏览文件 @
be21aed0
...
...
@@ -92,7 +92,7 @@ class TTSClientExecutor(BaseExecutor):
temp_wav
=
str
(
random
.
getrandbits
(
128
))
+
".wav"
soundfile
.
write
(
temp_wav
,
samples
,
sample_rate
)
wav2pcm
(
temp_wav
,
outfile
,
data_type
=
np
.
int16
)
os
.
system
(
"rm %s"
%
(
temp_wav
)
)
os
.
remove
(
temp_wav
)
else
:
logger
.
error
(
"The format for saving audio only supports wav or pcm"
)
...
...
paddlespeech/server/tests/tts/offline/http_client.py
浏览文件 @
be21aed0
...
...
@@ -61,7 +61,7 @@ def tts_client(args):
temp_wav
=
str
(
random
.
getrandbits
(
128
))
+
".wav"
soundfile
.
write
(
temp_wav
,
samples
,
sample_rate
)
wav2pcm
(
temp_wav
,
outfile
,
data_type
=
np
.
int16
)
os
.
system
(
"rm %s"
%
(
temp_wav
)
)
os
.
remove
(
temp_wav
)
else
:
print
(
"The format for saving audio only supports wav or pcm"
)
...
...
paddlespeech/server/utils/audio_handler.py
浏览文件 @
be21aed0
...
...
@@ -321,50 +321,63 @@ class TTSWsHandler:
await
ws
.
send
(
request
)
logging
.
info
(
"send a message to the server"
)
#
Process the received response
#
4. Process the received response
message
=
await
ws
.
recv
()
first_response
=
time
.
time
()
-
st
message
=
json
.
loads
(
message
)
status
=
message
[
"status"
]
while
True
:
# When throw an exception
if
status
==
-
1
:
# send end request
end_request
=
json
.
dumps
({
"task"
:
"tts"
,
"signal"
:
"end"
,
"session"
:
session
})
await
ws
.
send
(
end_request
)
break
while
(
status
==
1
):
receive_time_list
.
append
(
time
.
time
())
audio
=
message
[
"audio"
]
audio
=
base64
.
b64decode
(
audio
)
# bytes
chunk_duration_list
.
append
(
len
(
audio
)
/
2.0
/
24000
)
all_bytes
+=
audio
if
self
.
play
:
self
.
mutex
.
acquire
()
self
.
buffer
+=
audio
self
.
mutex
.
release
()
if
self
.
start_play
:
self
.
t
.
start
()
self
.
start_play
=
False
message
=
await
ws
.
recv
()
message
=
json
.
loads
(
message
)
status
=
message
[
"status"
]
# 4. Last packet, no audio information
if
status
==
2
:
final_response
=
time
.
time
()
-
st
duration
=
len
(
all_bytes
)
/
2.0
/
24000
if
output
is
not
None
:
save_audio_success
=
save_audio
(
all_bytes
,
output
)
else
:
save_audio_success
=
False
# Rerutn last packet normally, no audio information
elif
status
==
2
:
final_response
=
time
.
time
()
-
st
duration
=
len
(
all_bytes
)
/
2.0
/
24000
if
output
is
not
None
:
save_audio_success
=
save_audio
(
all_bytes
,
output
)
else
:
save_audio_success
=
False
# send end request
end_request
=
json
.
dumps
({
"task"
:
"tts"
,
"signal"
:
"end"
,
"session"
:
session
})
await
ws
.
send
(
end_request
)
break
# 5. send end request
end_request
=
json
.
dumps
({
"task"
:
"tts"
,
"signal"
:
"end"
,
"session"
:
session
})
await
ws
.
send
(
end_request
)
# Return the audio stream normally
elif
status
==
1
:
receive_time_list
.
append
(
time
.
time
())
audio
=
message
[
"audio"
]
audio
=
base64
.
b64decode
(
audio
)
# bytes
chunk_duration_list
.
append
(
len
(
audio
)
/
2.0
/
24000
)
all_bytes
+=
audio
if
self
.
play
:
self
.
mutex
.
acquire
()
self
.
buffer
+=
audio
self
.
mutex
.
release
()
if
self
.
start_play
:
self
.
t
.
start
()
self
.
start_play
=
False
message
=
await
ws
.
recv
()
message
=
json
.
loads
(
message
)
status
=
message
[
"status"
]
else
:
logger
.
error
(
"infer error
"
)
else
:
logger
.
error
(
"infer error, return status is invalid.
"
)
if
self
.
play
:
self
.
t
.
join
()
...
...
paddlespeech/server/utils/audio_process.py
浏览文件 @
be21aed0
...
...
@@ -167,7 +167,7 @@ def save_audio(bytes_data, audio_path, sample_rate: int=24000) -> bool:
channels
=
1
,
bits
=
16
,
sample_rate
=
sample_rate
)
os
.
system
(
"rm
./tmp.pcm"
)
os
.
remove
(
"
./tmp.pcm"
)
else
:
print
(
"Only supports saved audio format is pcm or wav"
)
return
False
...
...
paddlespeech/server/ws/tts_api.py
浏览文件 @
be21aed0
...
...
@@ -16,7 +16,6 @@ import uuid
from
fastapi
import
APIRouter
from
fastapi
import
WebSocket
from
fastapi
import
WebSocketDisconnect
from
starlette.websockets
import
WebSocketState
as
WebSocketState
from
paddlespeech.cli.log
import
logger
...
...
@@ -87,17 +86,19 @@ async def websocket_endpoint(websocket: WebSocket):
resp
=
{
"status"
:
1
,
"audio"
:
tts_results
}
await
websocket
.
send_json
(
resp
)
except
StopIteration
as
e
:
import
pdb
pdb
.
set_trace
()
resp
=
{
"status"
:
2
,
"audio"
:
''
}
await
websocket
.
send_json
(
resp
)
logger
.
info
(
"Complete the synthesis of the audio streams"
)
break
except
Exception
as
e
:
resp
=
{
"status"
:
-
1
,
"audio"
:
''
}
await
websocket
.
send_json
(
resp
)
break
else
:
logger
.
error
(
"Invalid request, please check if the request is correct."
)
except
WebSocketDisconnect
:
pass
except
Exception
as
e
:
logger
.
error
(
e
)
tests/unit/server/offline/change_yaml.py
浏览文件 @
be21aed0
#!/usr/bin/python
import
argparse
import
os
import
shutil
import
yaml
...
...
@@ -14,7 +15,7 @@ def change_device(yamlfile: str, engine: str, device: str):
model_type (dict): change model type
"""
tmp_yamlfile
=
yamlfile
.
split
(
".yaml"
)[
0
]
+
"_tmp.yaml"
os
.
system
(
"cp %s %s"
%
(
yamlfile
,
tmp_yamlfile
)
)
shutil
.
copyfile
(
yamlfile
,
tmp_yamlfile
)
if
device
==
'cpu'
:
set_device
=
'cpu'
...
...
@@ -41,7 +42,7 @@ def change_device(yamlfile: str, engine: str, device: str):
print
(
yaml
.
dump
(
y
,
default_flow_style
=
False
,
sort_keys
=
False
))
yaml
.
dump
(
y
,
fw
,
allow_unicode
=
True
)
os
.
system
(
"rm %s"
%
(
tmp_yamlfile
)
)
os
.
remove
(
tmp_yamlfile
)
print
(
"Change %s successfully."
%
(
yamlfile
))
...
...
@@ -52,7 +53,7 @@ def change_engine_type(yamlfile: str, engine_type):
task (str): asr or tts
"""
tmp_yamlfile
=
yamlfile
.
split
(
".yaml"
)[
0
]
+
"_tmp.yaml"
os
.
system
(
"cp %s %s"
%
(
yamlfile
,
tmp_yamlfile
)
)
shutil
.
copyfile
(
yamlfile
,
tmp_yamlfile
)
speech_task
=
engine_type
.
split
(
"_"
)[
0
]
with
open
(
tmp_yamlfile
)
as
f
,
open
(
yamlfile
,
"w+"
,
encoding
=
"utf-8"
)
as
fw
:
...
...
@@ -65,7 +66,7 @@ def change_engine_type(yamlfile: str, engine_type):
y
[
'engine_list'
]
=
engine_list
print
(
yaml
.
dump
(
y
,
default_flow_style
=
False
,
sort_keys
=
False
))
yaml
.
dump
(
y
,
fw
,
allow_unicode
=
True
)
os
.
system
(
"rm %s"
%
(
tmp_yamlfile
)
)
os
.
remove
(
tmp_yamlfile
)
print
(
"Change %s successfully."
%
(
yamlfile
))
...
...
tests/unit/server/online/tts/check_server/change_yaml.py
浏览文件 @
be21aed0
#!/usr/bin/python
import
argparse
import
os
import
shutil
import
yaml
...
...
@@ -13,7 +14,7 @@ def change_value(args):
target_value
=
args
.
target_value
tmp_yamlfile
=
yamlfile
.
split
(
".yaml"
)[
0
]
+
"_tmp.yaml"
os
.
system
(
"cp %s %s"
%
(
yamlfile
,
tmp_yamlfile
)
)
shutil
.
copyfile
(
yamlfile
,
tmp_yamlfile
)
with
open
(
tmp_yamlfile
)
as
f
,
open
(
yamlfile
,
"w+"
,
encoding
=
"utf-8"
)
as
fw
:
y
=
yaml
.
safe_load
(
f
)
...
...
@@ -51,7 +52,7 @@ def change_value(args):
print
(
yaml
.
dump
(
y
,
default_flow_style
=
False
,
sort_keys
=
False
))
yaml
.
dump
(
y
,
fw
,
allow_unicode
=
True
)
os
.
system
(
"rm %s"
%
(
tmp_yamlfile
)
)
os
.
remove
(
tmp_yamlfile
)
print
(
f
"Change key:
{
target_key
}
to value:
{
target_value
}
successfully."
)
...
...
tests/unit/server/online/tts/test_server/test_http_client.py
浏览文件 @
be21aed0
...
...
@@ -75,8 +75,8 @@ if __name__ == "__main__":
args
=
parser
.
parse_args
()
os
.
system
(
"rm -rf %s"
%
(
args
.
output_dir
))
os
.
mkdir
(
args
.
output_dir
)
if
not
os
.
path
.
exists
(
args
.
output_dir
):
os
.
makedirs
(
args
.
output_dir
)
first_response_list
=
[]
final_response_list
=
[]
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录