-
Notifications
You must be signed in to change notification settings - Fork 206
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
SpeakerInfoの画像や音声のデータをURLで返すようにする? #1208
Comments
少し開発が止まっている感じはありますが、 ライブラリ管理APIのうちの エンジン側では、クエリ引数を使えるようにするとよいのかなと思いました。 |
あとはキャッシュ周り? |
@y-chan なるほどです! クエリパラメータの場合、なんか落とし穴があるきがするんですよね・・・。 既存エンジンにはない場合があるということをユーザーが知らない、とか・・・? |
@sabonerune キャッシュなるほどです!考慮ありがとうございます!! 仕様はどこにも書いてなかったのですが、コードを追っていくとたぶんファイルサイズとファイル作成日からetag作る感じでした。 StaticFilesのコードはここ 将来ファイル作成日を消す変更を行った上、ファイルサイズが偶然被ったらキャッシュがバグになりますが、まあ、普通にしてたら大丈夫かな〜。 |
@Hiroshiba |
@sabonerune お~~~~なるほどです!! 確かにキャッシュが入ってきそうですね!!! うーん、no-cacheを付けるか、etag見てもらうようにするか、あるいは気づかなかったことにするかって感じですねぇ。 |
@Hiroshiba あとはリソースが更新されたらURLを毎回変更するとかでしょうか? |
@sabonerune 調べたらキャッシュを不要にしたりするのをキャッシュバスティングだとか言うというのを見つけました。 一応サードパーティで作られてる方はいらっしゃいました。 頑張る価値はある気はちょっとしますねぇ。 |
内容
エンジンのリソース情報を取得しようとすると結構な時間がかかることがわかっています。
VOICEVOXエディタは全キャラのリソース取得を起動時に行い、かつそれが必須な形であらゆるものがコーディングされていて、起動時間が10秒ほどかかる要因の1つとなっています。
時間がかかっているのは話者情報の取得API(
/speaker_info
と/singer_info
)です。その中でもファイル取得やbase64エンコードに時間がかかっていることもわかっています(その他の関連リンク参照)。
これらの課題を一挙に解決できる方法の1つが、ファイル取得そのものを遅延させる方法です。
このissueでは画像や音声ファイルをbase64エンコードして
/speaker_info
等で返さず、何らかの方法でURLとして返すようにするかどうかを議論するissueです。そもそもURL化するのが良いと思う理由
そっちのが一般的なことと、スケーラビリティが高いことと、エディタと親和性が高いためです。
src
などに指定してます実現方法
リソースファイルのURLは
/static/speaker_info
APIを作ってstaticでファイルを返せば良さそう。ファイルパスは
speaker_info
関数内で取ってきてるので、それをbase64エンコードするか、ファイルURLにするかの違いなだけなのでコード変更量は大きくなさそう。エンジン自身のURLを取得するのは
request.url
を取ってこればできるはず?互換性を考慮しつつファイルURLを返すように切り替える方法は、ワークアラウンド引数を追加する方法と、v2 APIを作る方法があると思います。
/speaker_info
APIの引数に「URLで返すかどうか」情報をもたせるワークアラウンド/speaker_info?workaround_resource_url=true
などとすれば画像・音声をURLで返すengine_manifest
は変えなくても良い・・・かも?/v2/speaker_info
APIを作り、SpeakerInfoV2
のようなモデルを返すengine_manifest
を変える必要がある個人的には議論の末引数指定を正式リリースできそうならそっちが良さそうに思いました。
できなそうなら、v2化するかワークアラウンドにするか諦めるかを考える感じかなと。
その他
関連リンク
/speaker_info
と/singer_info
の高速化 #1129The text was updated successfully, but these errors were encountered: