We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
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
VoiceModel
VoiceModelFile
#545 (comment)の案2.です。
VoiceModelをVoiceModelFileにリネームし、またVVMファイルのファイルディスクリプタを(排他ロック付きで)持つようにします。
APIとして、誤解無く理解されることが期待できる。
#746 と #828 の後にでも実装する。
The text was updated successfully, but these errors were encountered:
change: VoiceModel → VoiceModelFile (#832)
967570a
現在の`VoiceModel`は、コンストラクトされるときに`id`, `manifest`, `metas`の情報だけ取得してそれらと`path`だけ保持し、モデル本体は要求され てから`path`を開いて読むという形になっている。このような責務になっている ことをユーザーが今のAPIのシグネチャから察するのは困難である。このことか ら、次の変更を行う。 1. `VoiceModel` → `VoiceModelFile`にリネーム * C APIの`voicevox_voice_model_…`は`voicevox_voice_model_file_…`に 2. `VoiceModel::from_path` → `VoiceModelFile::open`にリネーム * C APIも同様 3. Python APIには`__{,a}{enter,exit}__`、Java APIには`Closable`の実装 * `id`と`metas`はクローズ後にもgetできるようにする * Rust APIの`blocking`のものを除き、`.close()`で閉じられるように * C APIの`delete`は`close`にリネーム Python APIとJava APIで`Synthesizer::load_voice_model`中に `VoiceModelFile::close`を行うときの挙動としては、`load_voice_model`がす べて終わるのを待ってからクローズ処理を行う。実装には`RwLock`を用いる。 ```py async with await VoiceModelFile.open(vvm_path) as model: _ = synthesizer.load_voice_model(model) # awaitしない ``` ```console [WARNING] voicevox_core_python_api: The `VoiceModelFile` is still in use. Waiting before closing [DEBUG] voicevox_core_python_api: Closing a VoiceModelFile # `load_voice_model`が無事完了している ``` ただしC APIでは`load_voice_model`中の`close`は現行のままUBとする。 `RwLock`でロックすることで安全なAPIにすることはfuture workとする。 実装の都合上、Python APIの`voicevox_core.asyncio.Synthesizer`も `__{enter,exit}__`ではなく`__a{enter,exit}__`を持つようして、 `VoiceModelFile`同様に`RwLock`でロック管理を行うようにする。 Resolves #829.
Successfully merging a pull request may close this issue.
内容
#545 (comment)の案2.です。
VoiceModel
をVoiceModelFile
にリネームし、またVVMファイルのファイルディスクリプタを(排他ロック付きで)持つようにします。Pros 良くなる点
APIとして、誤解無く理解されることが期待できる。
Cons 悪くなる点
実現方法
#746 と #828 の後にでも実装する。
VOICEVOXのバージョン
OSの種類/ディストリ/バージョン
その他
The text was updated successfully, but these errors were encountered: