Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
PaddlePaddle
DeepSpeech
提交
3b75f63f
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,发现更多精彩内容 >>
提交
3b75f63f
编写于
1月 26, 2022
作者:
L
lym0302
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
add error code, test=server
上级
3796a40e
变更
5
隐藏空白更改
内联
并排
Showing
5 changed file
with
137 addition
and
19 deletion
+137
-19
speechserving/speechserving/engine/tts/python/tts_engine.py
speechserving/speechserving/engine/tts/python/tts_engine.py
+24
-11
speechserving/speechserving/restful/response.py
speechserving/speechserving/restful/response.py
+1
-1
speechserving/speechserving/restful/tts_api.py
speechserving/speechserving/restful/tts_api.py
+25
-7
speechserving/speechserving/utils/errors.py
speechserving/speechserving/utils/errors.py
+57
-0
speechserving/speechserving/utils/exception.py
speechserving/speechserving/utils/exception.py
+30
-0
未找到文件。
speechserving/speechserving/engine/tts/python/tts_engine.py
浏览文件 @
3b75f63f
...
...
@@ -22,6 +22,8 @@ from engine.base_engine import BaseEngine
from
paddlespeech.cli.log
import
logger
from
paddlespeech.cli.tts.infer
import
TTSExecutor
from
utils.errors
import
ErrorCode
from
utils.exception
import
ServerBaseException
__all__
=
[
'TTSEngine'
]
...
...
@@ -128,16 +130,27 @@ class TTSEngine(BaseEngine):
lang
=
self
.
conf_dict
[
"lang"
]
self
.
executor
.
infer
(
text
=
sentence
,
lang
=
lang
,
am
=
self
.
conf_dict
[
"am"
],
spk_id
=
spk_id
)
target_sample_rate
,
wav_base64
=
self
.
postprocess
(
wav
=
self
.
executor
.
_outputs
[
'wav'
].
numpy
(),
original_fs
=
self
.
executor
.
am_config
.
fs
,
target_fs
=
sample_rate
,
volume
=
volume
,
speed
=
speed
,
audio_path
=
save_path
,
audio_format
=
audio_format
)
try
:
self
.
executor
.
infer
(
text
=
sentence
,
lang
=
lang
,
am
=
self
.
conf_dict
[
"am"
],
spk_id
=
spk_id
)
except
:
raise
ServerBaseException
(
ErrorCode
.
SERVER_INTERNAL_ERR
,
"tts infer failed."
)
try
:
target_sample_rate
,
wav_base64
=
self
.
postprocess
(
wav
=
self
.
executor
.
_outputs
[
'wav'
].
numpy
(),
original_fs
=
self
.
executor
.
am_config
.
fs
,
target_fs
=
sample_rate
,
volume
=
volume
,
speed
=
speed
,
audio_path
=
save_path
,
audio_format
=
audio_format
)
except
:
raise
ServerBaseException
(
ErrorCode
.
SERVER_INTERNAL_ERR
,
"tts postprocess failed."
)
return
lang
,
target_sample_rate
,
wav_base64
speechserving/speechserving/restful/response.py
浏览文件 @
3b75f63f
...
...
@@ -68,7 +68,7 @@ class TTSResponse(BaseModel):
response example
{
"success": true,
"code": 0,
"code":
20
0,
"message": {
"description": "success"
},
...
...
speechserving/speechserving/restful/tts_api.py
浏览文件 @
3b75f63f
...
...
@@ -11,11 +11,17 @@
# 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
traceback
from
engine.tts.python.tts_engine
import
TTSEngine
from
fastapi
import
APIRouter
from
.request
import
TTSRequest
from
.response
import
TTSResponse
from
utils.errors
import
ErrorCode
from
utils.errors
import
ErrorMsg
from
utils.errors
import
failed_response
from
utils.exception
import
ServerBaseException
router
=
APIRouter
()
...
...
@@ -28,7 +34,7 @@ def help():
json: [description]
"""
json_body
=
{
"success"
:
true
,
"success"
:
"True"
,
"code"
:
0
,
"message"
:
{
"global"
:
"success"
...
...
@@ -62,19 +68,31 @@ def tts(request_body: TTSRequest):
save_path
=
item_dict
[
'save_path'
]
audio_format
=
item_dict
[
'audio_format'
]
# Check parameters
if
speed
<=
0
or
speed
>
3
or
volume
<=
0
or
volume
>
3
or
\
sample_rate
not
in
[
0
,
16000
,
8000
]
or
\
audio_format
not
in
[
"pcm"
,
"wav"
]:
return
failed_response
(
ErrorCode
.
SERVER_PARAM_ERR
)
# single
tts_engine
=
TTSEngine
()
#tts_engine.init()
lang
,
target_sample_rate
,
wav_base64
=
tts_engine
.
run
(
sentence
,
spk_id
,
speed
,
volume
,
sample_rate
,
save_path
,
audio_format
)
#tts_engine.postprocess()
# run
try
:
lang
,
target_sample_rate
,
wav_base64
=
tts_engine
.
run
(
sentence
,
spk_id
,
speed
,
volume
,
sample_rate
,
save_path
,
audio_format
)
except
ServerBaseException
as
e
:
response
=
failed_response
(
e
.
error_code
,
e
.
msg
)
except
:
response
=
failed_response
(
ErrorCode
.
SERVER_UNKOWN_ERR
)
traceback
.
print_exc
()
json_body
=
{
"success"
:
True
,
"code"
:
0
,
"code"
:
20
0
,
"message"
:
{
"description"
:
"success"
"description"
:
"success
.
"
},
"result"
:
{
"lang"
:
lang
,
...
...
speechserving/speechserving/utils/errors.py
浏览文件 @
3b75f63f
# 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
json
from
enum
import
IntEnum
from
fastapi
import
Response
class
ErrorCode
(
IntEnum
):
SERVER_OK
=
200
# success.
SERVER_PARAM_ERR
=
400
# Input parameters are not valid.
SERVER_TASK_NOT_EXIST
=
404
# Task is not exist.
SERVER_INTERNAL_ERR
=
500
# Internal error.
SERVER_NETWORK_ERR
=
502
# Network exception.
SERVER_UNKOWN_ERR
=
509
# Unknown error occurred.
ErrorMsg
=
{
ErrorCode
.
SERVER_OK
:
"success."
,
ErrorCode
.
SERVER_PARAM_ERR
:
"Input parameters are not valid."
,
ErrorCode
.
SERVER_TASK_NOT_EXIST
:
"Task is not exist."
,
ErrorCode
.
SERVER_INTERNAL_ERR
:
"Internal error."
,
ErrorCode
.
SERVER_NETWORK_ERR
:
"Network exception."
,
ErrorCode
.
SERVER_UNKOWN_ERR
:
"Unknown error occurred."
}
def
failed_response
(
code
,
msg
=
""
):
"""Interface call failure response
Args:
code (int): error code number
msg (str, optional): Interface call failure information. Defaults to "".
Returns:
Response (json): failure json information.
"""
if
not
msg
:
msg
=
ErrorMsg
.
get
(
code
,
"Unknown error occurred."
)
res
=
{
"success"
:
False
,
"code"
:
int
(
code
),
"message"
:
{
"global"
:
msg
}}
return
Response
(
content
=
json
.
dumps
(
res
),
media_type
=
"application/json"
)
speechserving/speechserving/utils/exception.py
0 → 100644
浏览文件 @
3b75f63f
# 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
traceback
from
utils.errors
import
ErrorMsg
class
ServerBaseException
(
Exception
):
""" Server Base exception
"""
def
__init__
(
self
,
error_code
,
msg
=
None
):
#if msg:
#log.error(msg)
msg
=
msg
if
msg
else
ErrorMsg
.
get
(
error_code
,
""
)
super
(
ServerBaseException
,
self
).
__init__
(
error_code
,
msg
)
self
.
error_code
=
error_code
self
.
msg
=
msg
traceback
.
print_exc
()
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录