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

設定ファイルの場所変更をマイグレーションする #1008

Closed
Hiroshiba opened this issue Nov 3, 2022 · 1 comment · Fixed by #1094
Closed

設定ファイルの場所変更をマイグレーションする #1008

Hiroshiba opened this issue Nov 3, 2022 · 1 comment · Fixed by #1094

Comments

@Hiroshiba
Copy link
Member

Hiroshiba commented Nov 3, 2022

内容

こちらのPRで、設定保存箇所が%appdata%/voicevox/config.jsonに統一されました。
(今まではCPU版はvoicevox-cpuに、GPU版はvoicevoxに保存されていました)

この仕様変更により、CPU版VOICEVOXを使っていた人は以前の設定を読み込めなくなります。
以前の設定を読めるようなマイグレーション処理を書きたいのですが、どうすべきかを決めたあと、実装に反映してこのissueはcloseとしたいと思います。

Pros 良くなる点

設定ファイルが消えたように感じない

Cons 悪くなる点

複数バージョンのVOICEVOXを起動したことがある場合複数の設定ファイルがあり、どれをコピーすればいいかわからない。

実現方法

VOICEVOXは過去に4種類のバージョンがあり、どれがユーザーが適用したい設定ファイルかわからない、という問題があります。

  • CPU版:voicevox-cpu
  • GPU版:voicevox
  • テスト時のDirectML版(後のGPU版):voicevox-directml
  • CUDA版(DirectML以前のGPU版):voicevox-cuda

どのバージョンを真とするかは、2つ方法があると思います。

  1. そのバージョンに合った過去の設定ファイル(CPU版ならvoicevox-cpu、とか)
    • 以前はCPU版を使っていたが、今回から偶然GPU版を使った、みたいな人は設定ファイルを見つけられない
  2. 一番最近更新された設定ファイル
    • メインではない別のバージョンを偶然起動した人がいた場合、別の設定ファイルを読んでしまう

2番の方針は手動でバックアップなどを取っていると容易に順番が変わりうる気がするので、個人的には1番の方針が良いかなと思っています。
その場合、ロジックはこういう感じかなと思ってます。

  1. voicevox/config.jsonが存在して最新版だった場合、何もしない
  2. そのデバイス版に合った別のconfig.jsonが存在する場合、コピーする
  3. ↑のときもしvoicevox/config.jsonが既存だった場合、念のためにバックアップを取っておく

ただこの場合、今回から別バージョンに変えた人は設定ファイルが消えたように感じます。
この問題は以前からそうだったので、最悪仕方ないのかなとも思ってます。
もしこういった方も救う場合は、追加で↓の処理をすると良いのかなと思ってます。

  1. voicevox/config.jsonが存在して最新版だった場合、何もしない
  2. 存在しうる全てのconfig.jsonを探す
  3. 候補が単数だった場合はそれをコピーして起動する
  4. 全config.jsonの作成日・更新日を取得する
  5. どのconfig.jsonを元にするかをダイアログで問う。選びやすくするヒントとして作成日・更新日・バージョンに合っているかを表示する

その他

もしより他にも方法などがあればコメントお待ちしています!

@Hiroshiba
Copy link
Member Author

Hiroshiba commented Jan 7, 2023

こちら取り組んでみます。

起動中のデバイス版に合う過去のconfig.jsonを探し、あればコピーするという方針でやろうと思います。
この処置で救済が漏れる人向けに、Q&Aに「バージョンアップ時に設定が消えた場合」を作って案内しようかなと思います。

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

Successfully merging a pull request may close this issue.

1 participant