Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
PaddlePaddle
DeepSpeech
提交
62357d87
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,发现更多精彩内容 >>
未验证
提交
62357d87
编写于
12月 01, 2022
作者:
小湉湉
提交者:
GitHub
12月 01, 2022
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
[TTS]rm paddlelite in setup.py (#2713)
* rm paddlelite in setup.py * fix setup.py
上级
062a00c2
变更
5
隐藏空白更改
内联
并排
Showing
5 changed file
with
119 addition
and
113 deletion
+119
-113
paddlespeech/t2s/exps/lite_predict.py
paddlespeech/t2s/exps/lite_predict.py
+3
-3
paddlespeech/t2s/exps/lite_predict_streaming.py
paddlespeech/t2s/exps/lite_predict_streaming.py
+4
-4
paddlespeech/t2s/exps/lite_syn_utils.py
paddlespeech/t2s/exps/lite_syn_utils.py
+111
-0
paddlespeech/t2s/exps/syn_utils.py
paddlespeech/t2s/exps/syn_utils.py
+0
-104
setup.py
setup.py
+1
-2
未找到文件。
paddlespeech/t2s/exps/lite_predict.py
浏览文件 @
62357d87
...
...
@@ -17,10 +17,10 @@ from pathlib import Path
import
soundfile
as
sf
from
timer
import
timer
from
paddlespeech.t2s.exps.lite_syn_utils
import
get_lite_am_output
from
paddlespeech.t2s.exps.lite_syn_utils
import
get_lite_predictor
from
paddlespeech.t2s.exps.lite_syn_utils
import
get_lite_voc_output
from
paddlespeech.t2s.exps.syn_utils
import
get_frontend
from
paddlespeech.t2s.exps.syn_utils
import
get_lite_am_output
from
paddlespeech.t2s.exps.syn_utils
import
get_lite_predictor
from
paddlespeech.t2s.exps.syn_utils
import
get_lite_voc_output
from
paddlespeech.t2s.exps.syn_utils
import
get_sentences
...
...
paddlespeech/t2s/exps/lite_predict_streaming.py
浏览文件 @
62357d87
...
...
@@ -18,13 +18,13 @@ import numpy as np
import
soundfile
as
sf
from
timer
import
timer
from
paddlespeech.t2s.exps.lite_syn_utils
import
get_lite_am_sublayer_output
from
paddlespeech.t2s.exps.lite_syn_utils
import
get_lite_predictor
from
paddlespeech.t2s.exps.lite_syn_utils
import
get_lite_streaming_am_output
from
paddlespeech.t2s.exps.lite_syn_utils
import
get_lite_voc_output
from
paddlespeech.t2s.exps.syn_utils
import
denorm
from
paddlespeech.t2s.exps.syn_utils
import
get_chunks
from
paddlespeech.t2s.exps.syn_utils
import
get_frontend
from
paddlespeech.t2s.exps.syn_utils
import
get_lite_am_sublayer_output
from
paddlespeech.t2s.exps.syn_utils
import
get_lite_predictor
from
paddlespeech.t2s.exps.syn_utils
import
get_lite_streaming_am_output
from
paddlespeech.t2s.exps.syn_utils
import
get_lite_voc_output
from
paddlespeech.t2s.exps.syn_utils
import
get_sentences
from
paddlespeech.t2s.exps.syn_utils
import
run_frontend
from
paddlespeech.t2s.utils
import
str2bool
...
...
paddlespeech/t2s/exps/lite_syn_utils.py
0 → 100644
浏览文件 @
62357d87
import
os
from
pathlib
import
Path
from
typing
import
Optional
import
numpy
as
np
from
paddlelite.lite
import
create_paddle_predictor
from
paddlelite.lite
import
MobileConfig
from
.syn_utils
import
run_frontend
# Paddle-Lite
def
get_lite_predictor
(
model_dir
:
Optional
[
os
.
PathLike
]
=
None
,
model_file
:
Optional
[
os
.
PathLike
]
=
None
,
cpu_threads
:
int
=
1
):
config
=
MobileConfig
()
config
.
set_model_from_file
(
str
(
Path
(
model_dir
)
/
model_file
))
predictor
=
create_paddle_predictor
(
config
)
return
predictor
def
get_lite_am_output
(
input
:
str
,
am_predictor
,
am
:
str
,
frontend
:
object
,
lang
:
str
=
'zh'
,
merge_sentences
:
bool
=
True
,
speaker_dict
:
Optional
[
os
.
PathLike
]
=
None
,
spk_id
:
int
=
0
,
):
am_name
=
am
[:
am
.
rindex
(
'_'
)]
am_dataset
=
am
[
am
.
rindex
(
'_'
)
+
1
:]
get_spk_id
=
False
get_tone_ids
=
False
if
am_name
==
'speedyspeech'
:
get_tone_ids
=
True
if
am_dataset
in
{
"aishell3"
,
"vctk"
,
"mix"
}
and
speaker_dict
:
get_spk_id
=
True
spk_id
=
np
.
array
([
spk_id
])
frontend_dict
=
run_frontend
(
frontend
=
frontend
,
text
=
input
,
merge_sentences
=
merge_sentences
,
get_tone_ids
=
get_tone_ids
,
lang
=
lang
)
if
get_tone_ids
:
tone_ids
=
frontend_dict
[
'tone_ids'
]
tones
=
tone_ids
[
0
].
numpy
()
tones_handle
=
am_predictor
.
get_input
(
1
)
tones_handle
.
from_numpy
(
tones
)
if
get_spk_id
:
spk_id_handle
=
am_predictor
.
get_input
(
1
)
spk_id_handle
.
from_numpy
(
spk_id
)
phone_ids
=
frontend_dict
[
'phone_ids'
]
phones
=
phone_ids
[
0
].
numpy
()
phones_handle
=
am_predictor
.
get_input
(
0
)
phones_handle
.
from_numpy
(
phones
)
am_predictor
.
run
()
am_output_handle
=
am_predictor
.
get_output
(
0
)
am_output_data
=
am_output_handle
.
numpy
()
return
am_output_data
def
get_lite_voc_output
(
voc_predictor
,
input
):
mel_handle
=
voc_predictor
.
get_input
(
0
)
mel_handle
.
from_numpy
(
input
)
voc_predictor
.
run
()
voc_output_handle
=
voc_predictor
.
get_output
(
0
)
wav
=
voc_output_handle
.
numpy
()
return
wav
def
get_lite_am_sublayer_output
(
am_sublayer_predictor
,
input
):
input_handle
=
am_sublayer_predictor
.
get_input
(
0
)
input_handle
.
from_numpy
(
input
)
am_sublayer_predictor
.
run
()
am_sublayer_handle
=
am_sublayer_predictor
.
get_output
(
0
)
am_sublayer_output
=
am_sublayer_handle
.
numpy
()
return
am_sublayer_output
def
get_lite_streaming_am_output
(
input
:
str
,
am_encoder_infer_predictor
,
am_decoder_predictor
,
am_postnet_predictor
,
frontend
,
lang
:
str
=
'zh'
,
merge_sentences
:
bool
=
True
):
get_tone_ids
=
False
frontend_dict
=
run_frontend
(
frontend
=
frontend
,
text
=
input
,
merge_sentences
=
merge_sentences
,
get_tone_ids
=
get_tone_ids
,
lang
=
lang
)
phone_ids
=
frontend_dict
[
'phone_ids'
]
phones
=
phone_ids
[
0
].
numpy
()
am_encoder_infer_output
=
get_lite_am_sublayer_output
(
am_encoder_infer_predictor
,
input
=
phones
)
am_decoder_output
=
get_lite_am_sublayer_output
(
am_decoder_predictor
,
input
=
am_encoder_infer_output
)
am_postnet_output
=
get_lite_am_sublayer_output
(
am_postnet_predictor
,
input
=
np
.
transpose
(
am_decoder_output
,
(
0
,
2
,
1
)))
am_output_data
=
am_decoder_output
+
np
.
transpose
(
am_postnet_output
,
(
0
,
2
,
1
))
normalized_mel
=
am_output_data
[
0
]
return
normalized_mel
paddlespeech/t2s/exps/syn_utils.py
浏览文件 @
62357d87
...
...
@@ -26,8 +26,6 @@ import paddle
from
paddle
import
inference
from
paddle
import
jit
from
paddle.static
import
InputSpec
from
paddlelite.lite
import
create_paddle_predictor
from
paddlelite.lite
import
MobileConfig
from
yacs.config
import
CfgNode
from
paddlespeech.t2s.datasets.data_table
import
DataTable
...
...
@@ -512,105 +510,3 @@ def get_sess(model_path: Optional[os.PathLike],
sess
=
ort
.
InferenceSession
(
model_path
,
providers
=
providers
,
sess_options
=
sess_options
)
return
sess
# Paddle-Lite
def
get_lite_predictor
(
model_dir
:
Optional
[
os
.
PathLike
]
=
None
,
model_file
:
Optional
[
os
.
PathLike
]
=
None
,
cpu_threads
:
int
=
1
):
config
=
MobileConfig
()
config
.
set_model_from_file
(
str
(
Path
(
model_dir
)
/
model_file
))
predictor
=
create_paddle_predictor
(
config
)
return
predictor
def
get_lite_am_output
(
input
:
str
,
am_predictor
,
am
:
str
,
frontend
:
object
,
lang
:
str
=
'zh'
,
merge_sentences
:
bool
=
True
,
speaker_dict
:
Optional
[
os
.
PathLike
]
=
None
,
spk_id
:
int
=
0
,
):
am_name
=
am
[:
am
.
rindex
(
'_'
)]
am_dataset
=
am
[
am
.
rindex
(
'_'
)
+
1
:]
get_spk_id
=
False
get_tone_ids
=
False
if
am_name
==
'speedyspeech'
:
get_tone_ids
=
True
if
am_dataset
in
{
"aishell3"
,
"vctk"
,
"mix"
}
and
speaker_dict
:
get_spk_id
=
True
spk_id
=
np
.
array
([
spk_id
])
frontend_dict
=
run_frontend
(
frontend
=
frontend
,
text
=
input
,
merge_sentences
=
merge_sentences
,
get_tone_ids
=
get_tone_ids
,
lang
=
lang
)
if
get_tone_ids
:
tone_ids
=
frontend_dict
[
'tone_ids'
]
tones
=
tone_ids
[
0
].
numpy
()
tones_handle
=
am_predictor
.
get_input
(
1
)
tones_handle
.
from_numpy
(
tones
)
if
get_spk_id
:
spk_id_handle
=
am_predictor
.
get_input
(
1
)
spk_id_handle
.
from_numpy
(
spk_id
)
phone_ids
=
frontend_dict
[
'phone_ids'
]
phones
=
phone_ids
[
0
].
numpy
()
phones_handle
=
am_predictor
.
get_input
(
0
)
phones_handle
.
from_numpy
(
phones
)
am_predictor
.
run
()
am_output_handle
=
am_predictor
.
get_output
(
0
)
am_output_data
=
am_output_handle
.
numpy
()
return
am_output_data
def
get_lite_voc_output
(
voc_predictor
,
input
):
mel_handle
=
voc_predictor
.
get_input
(
0
)
mel_handle
.
from_numpy
(
input
)
voc_predictor
.
run
()
voc_output_handle
=
voc_predictor
.
get_output
(
0
)
wav
=
voc_output_handle
.
numpy
()
return
wav
def
get_lite_am_sublayer_output
(
am_sublayer_predictor
,
input
):
input_handle
=
am_sublayer_predictor
.
get_input
(
0
)
input_handle
.
from_numpy
(
input
)
am_sublayer_predictor
.
run
()
am_sublayer_handle
=
am_sublayer_predictor
.
get_output
(
0
)
am_sublayer_output
=
am_sublayer_handle
.
numpy
()
return
am_sublayer_output
def
get_lite_streaming_am_output
(
input
:
str
,
am_encoder_infer_predictor
,
am_decoder_predictor
,
am_postnet_predictor
,
frontend
,
lang
:
str
=
'zh'
,
merge_sentences
:
bool
=
True
):
get_tone_ids
=
False
frontend_dict
=
run_frontend
(
frontend
=
frontend
,
text
=
input
,
merge_sentences
=
merge_sentences
,
get_tone_ids
=
get_tone_ids
,
lang
=
lang
)
phone_ids
=
frontend_dict
[
'phone_ids'
]
phones
=
phone_ids
[
0
].
numpy
()
am_encoder_infer_output
=
get_lite_am_sublayer_output
(
am_encoder_infer_predictor
,
input
=
phones
)
am_decoder_output
=
get_lite_am_sublayer_output
(
am_decoder_predictor
,
input
=
am_encoder_infer_output
)
am_postnet_output
=
get_lite_am_sublayer_output
(
am_postnet_predictor
,
input
=
np
.
transpose
(
am_decoder_output
,
(
0
,
2
,
1
)))
am_output_data
=
am_decoder_output
+
np
.
transpose
(
am_postnet_output
,
(
0
,
2
,
1
))
normalized_mel
=
am_output_data
[
0
]
return
normalized_mel
setup.py
浏览文件 @
62357d87
...
...
@@ -71,11 +71,10 @@ base = [
"prettytable"
,
"zhon"
,
"colorlog"
,
"pathos
==
0.2.8"
,
"pathos
==
0.2.8"
,
"braceexpand"
,
"pyyaml"
,
"pybind11"
,
"paddlelite"
,
"paddleslim==2.3.4"
,
]
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录