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

ソフトウェアの初期容量を減らすために音声ライブラリをUIでダウンロードできるようにする #830

Open
shirowanisan opened this issue Jun 3, 2022 · 8 comments

Comments

@shirowanisan
Copy link
Contributor

内容

ソフトウェアの初期容量を減らすために、ソフトウェアには音声ライブラリを含めないようにするもしくは、含める音声ライブラリは最小限にする。
追加の音声ライブラリをUIでダウンロードできるようにする。

Pros 良くなる点

  • ソフトウェアの初期容量が小さくなり、ダウンロードのハードルが下がる。
  • ダウンロードが遅い、容量が大きすぎるという理由での利用離脱を防げる

Cons 悪くなる点

  • UIや説明をしっかりしないと「〇〇キャラクターが消えた」などの誤解を与える。
  • 利用にダウンロード手順が増える。
  • ストレージの不具合やストレージ負荷攻撃によって、ソフトウェアのダンロードはできたが、音声ライブラリのダウンロードができないということが起きる可能性がある。

実現方法

  • UI側のconfファイル、もしくは、engineからダウンロード可能な音声ライブラリ情報を取得する
  • UI上でダウンロードページを構築し、ダウンロードできるようにする

VOICEVOXのバージョン

0.12.1

OSの種類/ディストリ/バージョン

macOS Monterey 12.4 Intel

その他

具体的な実現方法はissue内でまた考えます。

@Hiroshiba
Copy link
Member

Hiroshiba commented Jun 3, 2022

issue作成ありがとうございます!!ぜひ進めていきたいです!!

デメリットも確かにありますが、それ以上にメリットが大きいように感じます。
engineから取得するような形にしておけば、将来「VOICEVOXやCOEIROINKなど、どのUIでも互換性のあるエンジンが使える」みたいな世界が作りやすくなってみんな最高になれるかなと思いました!

仮にエンジンからダウンロードする場合は、検討中のエンジンマニフェスト機能あたりが近くて参考なりそうかもです。

わからない点とうあればなんでも聞いて頂ければ・・・!

@Hiroshiba
Copy link
Member

音声ライブラリ追加方法をちょっと考えてました。
音声ライブラリを例えばmodelとconfが入ったzipをダウンロードして追加する仕組みがぱっと思い浮かぶのですが、ダウンロード可能な直リンクが作れないgoogle driveとかに配置される方が多い現状を考えると、ダウンロードからサポートするのって意外と難しいかも・・・?

@shirowanisan
Copy link
Contributor Author

shirowanisan commented Jul 7, 2022

@Hiroshiba
こちら着手が遅れてしまい申し訳ありません。
今週の土日にやっとまとまった時間が取れそうなので、着手しようと考えています。

音声ライブラリを例えばmodelとconfが入ったzipをダウンロードして追加する仕組みがぱっと思い浮かぶのですが、ダウンロード可能な直リンクが作れないgoogle drive

私が以前作った「つくよみちゃんトークソフト」では、もしモデルファイルがローカルになければ、Google Driveからzipをダウンロードして解凍するという処理をしていますね。
https://github.com/shirowanisan/tsukuyomichan-talksoft/blob/9a596eae5b23c85c325840412bd2caeb1816a93b/tts_config.py#L75

こちらでは、pythonのgdownライブラリを使用していますが、wgetでもgoogle driveから取得できたので問題なさそうです。
type scriptでどのように実現するかちょっと考えています。

理想的にはs3, dropbox, googledriveに依存せずにダウンロードできるメソッドにはしたいと思っていますmm

@Hiroshiba
Copy link
Member

(時間に関しては全く問題ないです!)

なるほどです!!

エンジン側にダウンロードAPIを用意する形式にすれば、pythonで書くこともできるかもと感じました。
(でもweb周りはもしかしたらTypeScriptのがライブラリ多いかも。)

@shirowanisan
Copy link
Contributor Author

@Hiroshiba お疲れ様です。
音声ライブラリダウンロード機能のプロトタイプを作成し、プルリクを作りました。
お手隙の際に、構造などの改善点をご指摘いただけると幸いです。

@Hiroshiba
Copy link
Member

Hiroshiba commented Jul 24, 2022

ありがとうございます!!
ちょっと今週忙しくてレスポンス遅くなるかもしれませんが、なるべくすぐに見させていただこうと思います!!
(ボイボの1周年なのもあって4期生の紹介動画作りたいな~と・・・!)

@shirowanisan
Copy link
Contributor Author

すみません。生活環境の変化により、こちらを着手するのが難しくなってしまいました。
現状の方針はこちらにまとてめておきます。

engineの方針

  • エンジン側に設定ファイルを持つ
  • エンジン側でダウンロード機構をもつ
  • 音声モデルは「%appdata%」に保存した方が良いかもしれない
    • 本体のエディタのアップデート(ディレクトリ全部消して同じ場所にインストール)によりダウンロードしたキャラクターの情報も一緒に消してしまわないように
    • アクセス権限により、エラーになってしまう可能性の低減

UIの方針

  • ダウンロード画面はダウンロードダイアログで行う

現状、Issueに関してはOpenにしておこうと思いますが、必要に応じてクローズしていただいても大丈夫です。
よろしくお願いします。

@Hiroshiba
Copy link
Member

まとめコメントありがとうございます!

生活環境の変化により、こちらを着手するのが難しくなってしまいました。

承知しました。
もしどなたか進めたい方がいらっしゃったら、ぜひ・・・!

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

No branches or pull requests

2 participants