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

新規:プリセット[pauseLength, pauseLengthScale] #2100

Closed
wants to merge 93 commits into from

Conversation

X-20A
Copy link
Contributor

@X-20A X-20A commented May 26, 2024

内容

マニュアル値については一旦置いて、動くようになりました
まだまだ詰めないといけませんが

関連 Issue

ref#2083

スクリーンショット・動画など

pl_test.mp4

その他

現在のデザインだと右欄が最小幅のとき値がちょっと見切れますね

@X-20A X-20A requested a review from a team as a code owner May 26, 2024 01:45
@X-20A X-20A requested review from Hiroshiba and removed request for a team May 26, 2024 01:45
@X-20A
Copy link
Contributor Author

X-20A commented May 26, 2024

ビルドしたエンジンは
https://github.com/X-20A/voicevox_engine/tags
に置いてあります(v.1.0.2

@X-20A
Copy link
Contributor Author

X-20A commented May 28, 2024

pauseLengthはAudioDetail > accentPhrasesでAPIに相当する処理を行い、queryにはnullをセットして送信します
pauseLengthScaleはAPIを使用しますがスライダーのハイライト以降に同期する為、audio.ts > GET_AUDIO_PLAY_OFFSETSでpauseMora > vowelLengthを調整しています
エンジン

vv-test.mp4

@Hiroshiba
Copy link
Member

おー!!!!
たしかに再生位置の同期もしないとですね!!!!ありがとうございます!!

@X-20A
Copy link
Contributor Author

X-20A commented Jun 4, 2024

おおよそ完了したのでチェックをお願いします

@X-20A
Copy link
Contributor Author

X-20A commented Jun 15, 2024

うーん再現性が薄いか開発時の入れ違いかもしれないです
一通り動きそうなのでチェックをお願いします

@Hiroshiba
Copy link
Member

Hiroshiba commented Jun 15, 2024

@X-20A 調整ありがとうございます!!!

テストに使うエンジンがnemo版だとエンジンの起動に失敗するようです

nemo版で挙動がおかしくなるとのことで、今更ながら互換性が失われてしまう問題に今気づきました 🙇 🙇 🙇 🙇 🙇
(古いエンジンでもUIがちゃんと表示されるようにしたい)

VOICEVOXでは互換性を維持するために、エンジン側にどの機能が備わっているかのフラグを持たせ、エディタ側はそのフラグに応じて挙動を変えるようにしています。
ちょうど抑揚パラメータがそうなっていて、↓のような差があります。

そのため、エンジン側にadjust_pause_lengthのようなフラグを作り、そのフラグを見てUIの有効状態を切り替えるときれいになるかもです。

気づくのがとても遅れてしまったのですが、エンジン側にそのフラグを追加する変更をお願いしても構わないでしょうか 🙇
よくわからなかったりすればこちらでやります・・・ 🙇 🙇 🙇

@X-20A
Copy link
Contributor Author

X-20A commented Jun 15, 2024

いくつか確認させてください
・ごちゃごちゃしたのですが結局nemo版を使用してテストはパスしています片付け #70
nemo版の更新は今後の不具合を予防するためということでしょうか?
・nemo版を更新する場合、adjust~フラグはtrue / false どちらにしますか?
・trueにする場合、voicevox_engineのapply_pause_lengthのような処理をnemo版でも実装するということでしょうか?

@X-20A
Copy link
Contributor Author

X-20A commented Jun 15, 2024

何故初めnemo版でテストに失敗したかについてですが
「起動時にSettingDialog.vueのpauseLengthModeのセッティングでIS_EDITEDがtrueになり、app.close時に
確認ダイアログが表示されてそのままタイムアウト」が原因で新規presetは関係なかったと思います
ではなぜvoicevox_engineでは通ったかですが、これはよく分かりません
どの編集状況でのことか忘れてしまいました

@Hiroshiba
Copy link
Member

Hiroshiba commented Jun 17, 2024

@X-20A あっややこしくてすみません!!
確認ありがとうございます!

Nemoで通ったの良かったです。その辺りの問題はクリアなのかなと思います!

自分が言いたかったことを整理すると・・・
pauseLengthScaleに未対応なエンジン、つまりAudioQueryにpauseLengthScaleが含まれないエンジンをエディタ側から使うとき、pauseLengthScaleは設定できないことがわかるようにしないといけなかったという点です!
(コメントでpauseLengthって言いましたが、pauseLengthはエディタ側で変更するから問題ないかもですね!)

pauseLengthScale==undefinedかどうか見ればわかるかもなのですが、VOICEVOXではこういう追加機能があったときに「pauseLengthScaleに対応しているエンジンである」というフラグを用意するようにしています。
マストで更新しないといけないのはnemoではなくvoicevox_engine側で、adjust_pause_length=trueにする感じです。

ちなみにNemo側はvoicevox_engineに追従したら勝手にtrueになるはずで、それは僕がやっておこうと思います 🙏

この辺りだいぶややこしくてすみません 🙇
不明な点あればなんでもお聞きいただければ。。 🙇

@Hiroshiba
Copy link
Member

@X-20A エンジン側の実装、こちらで進めてみようと思います!!

@Hiroshiba
Copy link
Member

Hiroshiba commented Jun 25, 2024

お待たせしました!! エンジン側にadjust_pause_lengthを実装しました!!

お手数おかけしてしまうのですが、Talk/AudioInfo.vue内で判定フラグに使っていただけると・・・!!

@X-20A
Copy link
Contributor Author

X-20A commented Jun 26, 2024

ありがとうございます
お手数をおかけしました
別のことをしていて少し時間が空いてしまいましたが、また取り掛かります

@X-20A
Copy link
Contributor Author

X-20A commented Jun 26, 2024

adjustPauseLengthを使用する形でテストはパスしてますが[update snapshot]でcommitされたsnapshotの文内無音のパラメータが無効になってますね

「Nemo側はvoicevox_engineに追従したら勝手にtrueになる」とのことでしたがnemoの方にはまだ反映されていないように思います(その辺りの仕組みについて私はよく分かっていませんが)
最新のvoicevox_engineをビルドしたもの
npm run electron:serve
すると文内無音が有効になることは確認しています

@Hiroshiba
Copy link
Member

あ、Nemoは無効になる挙動で合ってるはずです!!

というのも、Nemo EngineをボイボEngineに追従させればpauseLength等が使えるようになるのですが、まだ追従してないので…!!

@Hiroshiba
Copy link
Member

@X-20A お疲れ様です!

この機能は結構望まれているので、追加し次第VOICEVOXのアップデートをしたいな~と思っていたりします!
可能ならこの3連休中にと思っていたりするのですが、調子はどうでしょうか? 👀

難しそうなら全然言っていただければ!! 🙏

@X-20A
Copy link
Contributor Author

X-20A commented Jul 13, 2024

一通り動くようになってたはずです
記憶がちょっと怪しいので何か忘れてたら仰ってください

Copy link
Member

@Hiroshiba Hiroshiba left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@X-20A
すみません、レビュー非常にお待たせしました!!!

ちょっと提案なのですが、「文内無音倍率」だけ先に実装するというのはどうでしょうか??

というのも、文内無音時間(絶対値の方)の実装がどうしても複雑になってしまうので、レビューのやり取りにさらに時間がかかってしまいそうだなと。
となるとお互い大変で、考慮漏れも起きやすく危険だと感じました 🙇

なので、一旦簡単な方な倍率だけ実装するのはどうかなと・・・!
再適用のことや設定のことを一切考えず、ただプリセットのパラメーターをセットするだけで完成なので、ものすごい簡単なのかなと思ってます!

ちょっと時間経ってしまって色々と難しいかもと思うので、難しければ遠慮なくお断りいただければと思います 🙇
もしやってくださるのであれば、結構mainブランチが進んでしまったので別のプルリクエストを作り直していただけますと幸いです 🙇

ちなみに多分こんな感じだと思います:

  1. src/components/Talk/AudioInfo.vueにパラメータを足す
  2. src/type/preload.tsのPresetにpauseLengthScaleを足す
  3. 無音時間を計算しているところで倍率をかける
  4. あとはいろいろ帳尻を合わせる
  5. 終わり!

もしよければぜひ・・・・・・・!!!
(難しそうであれば僕の方で実装したいと思いますので、その場合も連絡言っていただければと 🙇 )

@X-20A X-20A closed this Nov 15, 2024
@X-20A X-20A deleted the add_preset branch November 15, 2024 16:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants