-
Notifications
You must be signed in to change notification settings - Fork 8
Open
Description
概要
スマホ版VOICEVOXを作ってみたいのですが、スマホでモデルを推論する部分が一番の課題になります。
叶える方法は2つ、スマホで推論できるようCoreMLなどを頑張る方法と、onnxruntimeとWebGLを使う方法です。
このissueは後者の方法を検証します。
方法
WebGL上で動かしたいのは、一番重たいdecode.onnxだけです。
このモデルは普通にやると、例えばint64していないなどの理由でWebGL上では動きませんでした。
int64を回避しても、ConstantOfShapeなど一部のlayerがなく実行できません。
なので、未対応のonnxのlayerを迂回する必要があります。
方法は3通りほどあります。
- ConstantOfShapeが無いOPSET(==8)のonnxモデルを作成する
- この方法は onnxruntime-webのWebGLでdecode.onnxを読めるようにする #4 (comment) でやめたほうが良いことがわかりました。
- 未対応のlayerを迂回するようにpytorchモデルを変える
- onnxモデルに変換した後、未対応のlayerを迂回するようにモデルを変える
1がダメだったので、2か3ですが、onnxの知識を身に付けるよりpytorchドメインでやったほうが簡単そうなので、2の方法が良いのかなと思っています。
実行
迂回したonnxモデルへの変換はto-onnxruntime-web-webglで頑張っています。
変換した後onnxruntime-webで動かせるかは vv_check_web で確かめられます。
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels