-
Notifications
You must be signed in to change notification settings - Fork 118
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
project-vvm-async-api #497
Conversation
Co-authored-by: Ryo Yamashita <[email protected]> Co-authored-by: Nanashi. <[email protected]>
* `voicevox_get_version()` → `voicevox_version` * indocを外す * コメントを更新 * テスト`global_info`を追加 * `make_default_`系を定数に * Minor refactor * diffを減らすためにquoteをダウングレード * Minor refactor * Minor refactor * `SupportedDevices`の中身も確認する * Minor refactor * `version!()` → `VERSION` * `Default`のimplはマクロ側に寄せる * `voicevox_create_supported_devices_json`のシグネチャを直す
`$OUT_DIR`を使うものをtest_utilクレートに移動
* Docs: 事例紹介にvoicevoxcore.goを追加 (#498) Docs: 事例紹介のvoicevoxcore.goを追加 * 間違った`char*`の解放を明示的に拒否する (#500) * Cargo.tomlをフォーマットする (#504) * Update rust toolchain 1.70.0 (#506) Co-authored-by: PickledChair <[email protected]> Co-authored-by: Ryo Yamashita <[email protected]> * Rust APIのbuild.rsを抹消する (#508) * Python APIでは`panic=unwind`にする (#505) * Python APIでは`panic=unwind`にする * C APIは`-C panic=abort`でビルドする * READMEのスペースが足りてなかった (#511) * windows-latestでなぜかdownload_testが落ちるのを改修 (#517) * windows-latestでなぜかdownload_testが落ちるのを修正 * a * cbindgenに`fn.args=vertical`を設定し、`__declspec`の後の空行を消す (#518) * `__declspec(dllimport)`と関数定義の隙間の空行を消す * `fn.args="vertical"`を設定 * cbindgenの`include_version`を有効化する (#519) * cbindgenの`include_version`を有効化する * jobをリネーム * 誤字 --------- Co-authored-by: Kota Amasaka <[email protected]> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: PickledChair <[email protected]> Co-authored-by: Hiroshiba <[email protected]>
いろいろな判断や考えを先行してお伝えすると捗るかなと思ったのでお伝えします🙏
過去の事例を考えると「DirectMLだと動かない」みたいなことはありえる気がします。
特定のポインタだけ弾くという形で良さそう!
ぜひ🙏
以前と言ってること違うかもなのですが、できればそのままがOpenJTalkが良いかなと思います。 5段階中4くらいの不要感がありますが、5段階中5の必要感がある方がいらっしゃったら実装すべきかを議論したいです!
最低限、ログレベルは切り替えられればなんでも良いかなと思っています。
こちらは前コメントしたかもなのですが、そのままにしてcbindgenにissue作るだけで良いかなと・・・。
良いと思います! もしかしたら微妙かもとも思っているので、一度見てみたいかもです。 他にもなにか聞きたいことなどあればなんでも・・・!! |
こちらですが3つの選択肢が見えてきました。
(ただ今の実装は結構ステートフルな設計になっているので、そこの |
その3つだと2番めの
が良さそうに感じました! async周りで満たしたい要件はこんな感じかなと・・・!
|
@y-chan 残る大きなタスクはドキュメントと効率的なasync化で、まだリリースするには早いのですが、ちょっとmainから離れている期間が長くなっていることと、辞書やprojects用のAPIの追加を行うのに支障が若干出始めているので一旦マージしたほうが良いのかなと・・・! マージ後のmainの取り扱いは、Rust化のとき同様に工事中にすることを考えてます。 やることとしては
かなと思っています。 |
サッとPRを眺めてみたり、関連PR/Issueを眺めてみたりしましたが、挙げられている点以外特に課題感はないかなと思いました...! エンジン/エディタ側のアップデートをする時は、こちらも合わせてバージョンを上げた方が、気持ち的にはいい気はしますが、特に機能変化がないのにアップデートするのは明らかに変ですし、現時点で既に各モジュールでバージョンが合ってない・合わせる必要がないので、vvm-asyncの完成と、エディタ周りのアップデートサイクルがかみ合わない感じであれば、0.14.xのままでいいと思います。 |
@qryxip |
@y-chan ありがとうございます!!! @qryxip ということで、このPRのdraftを開けていただければ!!! ちなみにmainへのマージタスクリストはこちら。 |
よいと思います。 |
いやよく考えたらenumは他にacceleration mode( |
あ、ほんとですね!! RESULTは付けたほうが良さそう。 |
こんにちは、ずいぶんご無沙汰してしまいました。レスポンスがなくてすみませんでした……! 変更が多岐に渡るため( @qryxip これまでの作業ありがとうございます!)、細かいチェックなどはできていないのですが、全体的な方針は問題ないと感じており、main にマージしてしまっても良いのではないかと思っています。その後、問題が見つかり次第、適宜対処するのが良いのかなと思いました。何か特に今の段階でチェックすべきという部分があれば、教えていただけるとありがたいです……! |
この2つですかね...? タスクリストはちゃんと作っているので、チェックと言えるのは特に無いかと思います。
|
タスクリストはとりあえず #545 を作って移しました。 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM!!!!!!!!!!!!!!!!!
ざっと全部確認させていただきました!!
またちょっとタスクは残っているかもしれませんが、本当にお疲れ様です!!!!
完成まで一緒に頑張れるととても嬉しいです!!!引き続きよろしくお願いします・・・!!!
ちゃんとstashなくマージできたので、 |
今#532 (comment)をやりましたし、消していいと思います。 (PRがまだ向いている状態でブランチを消そうとするとどうなるんだろう... 弾かれる?) |
とりあえず消去しました!!! |
内容
project-vvm-async-apiをmainにマージします。
project-vvm-async-apiは以下の変更からなる予定です。
タスクリスト
タスクリストは随時更新します。
logging
を改善 #481#[serde(default)]
を入れる #486[project-vvm-async-api] mainをsquashせずにマージする #520
char*
の解放を明示的に拒否する #500panic=unwind
にする #505fn.args=vertical
を設定し、__declspec
の後の空行を消す #518include_version
を有効化する #519tts
とかaccent_phrase
系get_version
等extern "C"
の生ポインタをABI互換のに置き換え #514&mut VoicevoxSynthesizer
(VoicevoxSynthesizer*
)を引数に取っている関数があるが、これを&VoicevoxSynthesizer
(const VoicevoxSynthesizer*
)にする&mut
が複数誕生すること自体が禁忌であるため、複数スレッドからの実行を禁止する必要がある。ただ非同期実行を念頭に置いたAPIであるので、規約で禁止するよりも内部可変性 (interior mutability)を持つ方向にした方がよい。tokio::task::spawn_blocking
で囲ったりするべきでは?[議論] プロセス分離などして、モデルの実行を同時にできるようにするべきか?Synthesizer
を複数コンストラクトしておけばcancellable_synthesisの機能を手直しし、「コアの並列実行機能」としてリリースする voicevox_engine#677のようにできるはずだが、それで並列実行がちゃんとできるのか?間違ったchar*
の解放を明示的に拒否する #500と[project-vvm-async-api] いくつかのC関数を定数にする #503を噛み合わせる ([project-vvm-async-api] mainをマージする #516 (comment))[project-vvm-async-api] Fix up #500 #521
StyleMeta
が漏れている_free
系のAPIについて (新クラス設計API #370 (comment))voicevox_{,synthesizer_}is_loaded_voice_model
#523voicevox_synthesizer_audio_query
→voicevox_synthesizer_create_audio_query
? (新クラス設計API #370 (comment))get_supported_devices_json
をfallibleに #502extern const
へのコメントを吐いてくれないので、調査して対応を考える ([project-vvm-async-api] いくつかのC関数を定数にする #503 (comment))sort_by = true
にしてアルファベット順にするのはどうか? ([project-vvm-async-api] いくつかのC関数を定数にする #503 (comment))style_id
とかが生のint
のままだが、Rust API内のようにnewtype化すべきでは?new_with_initialize
は単なるnew
でいいのでは?OpenJtalk
ってよく考えたらOpenjtalk
かOpenJTalk
(pyopenjtalkはこれ)であるべきでは?OpenTtalkRc
があるが、肝心の「参照カウント型としての複製」のAPIが無いのでは?kana: bool
のオプションをやめ、_from_kana
を復活させる(Voicevox)Synthesizer
のはずだが、ドキュメントではいくつかVoiceSynthesizer
のままになっているタスクリスト (オプショナル)
関連 Issue
Closes #274.
Resolves #276.
Resolves #280.
その他