-
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
Refactor: /presets.yaml
デフォルトファイルの廃止
#876
Comments
ファイルがある場合は(マルチエンジン作成などで)デフォルトのプリセットを作る時にAPIを叩かなくて良い、というメリットがなくはないですが、issue内に書かれている通りファイルがないことによるメリットがそこそこ大きいので、ユーザー辞書と同様にAPIでのみ作成可能にするという形にするのが良いのかなと思いました!! 機能を作ってくださった @takana-v さんのコメントもいただけると心強いです・・・! |
なるほど、テンプレートファイルとしての機能ですね。
👍 |
昔はAPIが無く、 |
おそらく困るサードパーティアプリが1つあるかないかくらいかなと思っています! |
あ。デフォルトファイルがあるのは、マルチエンジン対応のエンジンを作る時に少し便利かなと思いました! ちょっと話がずれますが。。 |
👍
そして同時に、このユースケースであれば Python ファイルの方が扱いやすそうです。
👍 |
@tarepan コメントありがとうございます!!
なるほどです! いろんなこと考えるとまあ文字列ファイルの方が良さそうかなと思いました! yamlが難しいというのは確かにと思いました。 @takana-v エンジンマニフェストにプリセットのデフォルト値ファイルを含めるの、設計的に何か懸念点とかありそうでしょうか・・・・・?(ちょっと不安) |
現状のエンジン側のプリセット機能がほぼ使われていないことを考えると、マルチエンジン対応のエンジン製作者にとっての利点も少ないのではと思います。 また、プリセット周りは複雑であり、ユーザーが混乱することが考えられます。 そのことを考えると、ルート直下のプリセットファイルを廃止し、 エンジンマニフェストの設計に関しては、あまり自信が無いので、 @aoirint さん辺りの意見を伺いたいです。 |
@takana-v ありがとうございます!! 今のところの意見をまとめるとこんな感じですかね~
|
着手しました。 |
がマージされたので、このissueは目標達成に思いました! 少し話が変わりますが、presetsファイルのデフォルトの保存先ディレクトリがエンジンのディレクトリになっている関係で、特定条件で問題になることも分かりました。 これは
で解決できそうな気がしています。 |
作りました! ということでこちらのissueはクローズします、ありがとうございました! |
内容
要望:
/presets.yaml
デフォルトファイルの廃止によるリファクタリング現在の VOICEVOX ENGINE はAudioQueryプリセット機能を有する。
これを司る
PresetManager
ではpreset_path
引数を介してプリセットファイルを指定できる。PresetManager
は「デフォルト値・デフォルト保存先の指定」をこのpreset_path
引数により実現している。具体的なデフォルト値・保存先は
/presets.yaml
である。この
/presets.yaml
はファイルであり、ビルドプロセスの中でファイルコピー等を必要とする。デフォルト値 DI や保存先変更の観点からファイル方式は妥当な一方、ある程度のメンテコストも生じさせている。
ここで VOICEVOX ENGINE のプリセットデフォルトに関する要求を考えると、以下の2つが挙げられる:
presets.yaml
をデフォルト保存先とする。ただし指定があれば変更可能ここで、この2点であれば「
presets.yaml
の事後生成」でも達成できるとわかる。すなわち
preset_path="presets.yaml"
かつnot Path("presets.yaml").exists()
のとき、empty なpresets.yaml
をPythonで生成すればデフォルト/presets.yaml
ファイル無しに上記の要件を満たせる。これによりデフォルトファイルのメンテコストを削減できる。
このような背景から、
presets.yaml
デフォルトファイルの廃止によるリファクタリングを提案します。Pros 良くなる点
PresetManager
とデフォルト値の近接配置による見通し改善Cons 悪くなる点
実現方法
preset_path="presets.yaml" and not Path("presets.yaml").exists()
時の empty YAML ファイル生成/presets.yaml
の削除VOICEVOXのバージョン
0.14.10
OSの種類/ディストリ/バージョン
The text was updated successfully, but these errors were encountered: