Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[TTS]PaddleLite&MNN离线推理转换问题 #2487

Closed
yazone opened this issue Sep 29, 2022 · 14 comments · Fixed by #2667
Closed

[TTS]PaddleLite&MNN离线推理转换问题 #2487

yazone opened this issue Sep 29, 2022 · 14 comments · Fixed by #2667
Assignees
Milestone

Comments

@yazone
Copy link

yazone commented Sep 29, 2022

想把TTS做离线,尝试了以下两种方式:

1、MNN转换:fastspeech2_mix onnx模型错误

Error for compute convolution shape, inputCount:1536, outputCount:384, KH:1, KW:3, group:1 inputChannel: 0, batch:1536, width:0, height:0. Input data channel may be mismatch with filter channel count

2、PaddleLite转换:显示不支持算子和量化错误

fastspeech2错误

Error: This model is not supported, because 3 ops are not supported on 'arm'. These unsupported ops are: 'round, set_value, share_data'.

pwgan错误

如果不进行量化能够正常导出,加上量化选项--quant_type=QUANT_INT8显示

1.Model is successfully loaded! Segmentation fault (core dumped)

@yt605155624
Copy link
Collaborator

yt605155624 commented Sep 29, 2022

MNN 不了解是什么,方便发点资料看下嘛,计划下季度做一些 TTS 模型导出 PaddleLite 模型的工作,目前暂时没有相关经验

@yt605155624
Copy link
Collaborator

yt605155624 commented Sep 29, 2022

搜了下 MNN, MNN 相关的东西可能你要去他们的 repo 问了,PaddleSpeech 已经负责把模型转换为通用的 ONNX 格式了,后续的模型转化需要开发者自己完成,PaddleLite 相关转换我们会在下个季度和 PaddleLite 的同学一起尝试解决

@yazone
Copy link
Author

yazone commented Sep 29, 2022

搜了下 MNN, MNN 相关的东西可能你要去他们的 repo 问了,PaddleSpeech 已经负责把模型转换为通用的 ONNX 格式了,后续的模型转化需要开发者自己完成,PaddleLite 相关转换我们会在下个季度和 PaddleLite 的同学一起尝试解决

上面提到的MNN是那个阿里的推理引擎,因为我看PaddleSpeech fastspeech2已经转成了onnx格式,所以直接拿你们脚本转好的来导出,我在MNN里打印,发现转换出的模型做squeeze时因为没有记录axis mask把(1,1536,1,1)转成了(1536),然后做卷积,所以出错了。模型转化是Q4的目标吗?

@yt605155624
Copy link
Collaborator

模型端上部署是语音合成 Q4 的目标
请问 发现转换出的模型做squeeze时因为没有记录axis mask把(1,1536,1,1)转成了(1536) 是转出的 onnx 模型没有记录还是 MNN 模型没有记录?

@yazone
Copy link
Author

yazone commented Sep 29, 2022

模型端上部署是语音合成 Q4 的目标 请问 发现转换出的模型做squeeze时因为没有记录axis mask把(1,1536,1,1)转成了(1536) 是转出的 onnx 模型没有记录还是 MNN 模型没有记录?

onnx里没有记录,能够导出的mnn模型,但推理的时候报错,如果PaddleLite能支持好,那就省事多了:)

@yt605155624
Copy link
Collaborator

yt605155624 commented Sep 29, 2022

关于 pwgan 量化报错,我咨询了下 Lite 的同学,以下是回复:

量化lite不需要多余的选项,只有经过paddleSlim量化的paddle模型,直接转nb就行
量化直接slim转paddle模型就行,不用lite里的opt工具

所以你可能需要先用 PaddleSlim 量化一下,再直接用 PaddleLite 转模型,至于 PaddleSlim 量化语音模型是否有坑我目前还不知道

咨询了一下 Paddle2ONNX 的同学,他建议 ONNX 转 MNN 这个问题应该去 MNN 提 issue

顺便问下把 ONNX 模型转成 MNN 的目的是?

@yt605155624 yt605155624 removed the Bug label Sep 29, 2022
@yazone
Copy link
Author

yazone commented Sep 29, 2022

顺便问下把 ONNX 模型转成 MNN 的目的是?

有CPU离线TTS的需求,后续可能还有NPU的需求,先试下水

@yt605155624
Copy link
Collaborator

抱歉我问下此处的 “离线” 是什么意思,部署在手机/端上是吗?
ONNX 模型现在用在手机/端上不符合预期吗?

@yazone
Copy link
Author

yazone commented Sep 29, 2022

抱歉我问下此处的 “离线” 是什么意思,部署在手机/端上是吗? ONNX 模型现在用在手机/端上不符合预期吗?

是这个意思,我们一般都会用MNN、NCNN这种推理引擎,如果你们开源的项目已实现PaddleLite推理,就会直接用PaddleLite,比如PaddleOCR,这样能够快速落地,后面慢慢优化

@yt605155624
Copy link
Collaborator

感谢,TTS 目前没有 PaddleSlim 和 PaddleLite 相关经验,咱们可以一起在 Q4 推进这件事,目前看你只尝试了 fastspeech2 和 pwgan,可以再试试其他模型(之前试过 speedyspeech 和 pwgan 是可以跑通 Lite 的),有什么问题,可以直接提 issue 反馈,我来找 PaddleSlim 和 PaddleLite 的同事一起尝试解决

@yazone
Copy link
Author

yazone commented Sep 29, 2022

感谢,TTS 目前没有 PaddleSlim 和 PaddleLite 相关经验,咱们可以一起在 Q4 推进这件事,目前看你只尝试了 fastspeech2 和 pwgan,可以再试试其他模型(之前试过 speedyspeech 和 pwgan 是可以跑通 Lite 的),有什么问题,可以直接提 issue 反馈,我来找 PaddleSlim 和 PaddleLite 的同事一起尝试解决

感谢:)

@yt605155624
Copy link
Collaborator

yt605155624 commented Sep 29, 2022

@yazone 我们推理部署套件的 PM 看到了你这个 issue,希望可以与你取得联系,一起看下飞桨推理部署套件相关产品(PaddleLite 、FastDeploy 等),如果您感兴趣可以扫描我们主页的二维码加入 PaddleSpeech 的用户群,在群里艾特我(子龙)一下说明您是这个 issue 的作者,这样也能更方便我们一起推进 TTS 的端上部署能力

@QShiX
Copy link

QShiX commented Oct 17, 2022

感谢,TTS 目前没有 PaddleSlim 和 PaddleLite 相关经验,咱们可以一起在 Q4 推进这件事,目前看你只尝试了 fastspeech2 和 pwgan,可以再试试其他模型(之前试过 speedyspeech 和 pwgan 是可以跑通 Lite 的),有什么问题,可以直接提 issue 反馈,我来找 PaddleSlim 和 PaddleLite 的同事一起尝试解决

@yt605155624 你好麻烦问你下 之前跑通的 speedyspeech 和 pwgan的 static model 可给个链接么?谢谢。

@yt605155624
Copy link
Collaborator

yt605155624 commented Nov 18, 2022

@QShiX @yazone TTS 模型转 Paddle-Lite 算子缺失和报错已经解决

可尝试自行编译 develop 版本的 paddlelite 转换模型

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Status: Done
Development

Successfully merging a pull request may close this issue.

3 participants