Skip to content

onnxruntime-webのWebGLでdecode.onnxを読めるようにする #4

@Hiroshiba

Description

@Hiroshiba

概要

スマホ版VOICEVOXを作ってみたいのですが、スマホでモデルを推論する部分が一番の課題になります。
叶える方法は2つ、スマホで推論できるようCoreMLなどを頑張る方法と、onnxruntimeとWebGLを使う方法です。
このissueは後者の方法を検証します。

方法

WebGL上で動かしたいのは、一番重たいdecode.onnxだけです。
このモデルは普通にやると、例えばint64していないなどの理由でWebGL上では動きませんでした。
int64を回避しても、ConstantOfShapeなど一部のlayerがなく実行できません。

なので、未対応のonnxのlayerを迂回する必要があります。

方法は3通りほどあります。

  1. ConstantOfShapeが無いOPSET(==8)のonnxモデルを作成する
  2. 未対応のlayerを迂回するようにpytorchモデルを変える
  3. onnxモデルに変換した後、未対応のlayerを迂回するようにモデルを変える

1がダメだったので、2か3ですが、onnxの知識を身に付けるよりpytorchドメインでやったほうが簡単そうなので、2の方法が良いのかなと思っています。

実行

迂回したonnxモデルへの変換はto-onnxruntime-web-webglで頑張っています。

変換した後onnxruntime-webで動かせるかは vv_check_web で確かめられます。

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions