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
https://twitter.com/ekidenp/status/1514210801459945478
リップシンク用のラベルファイルを書きだしたとき、全体の長さが少しずれる
上記ツイートから引用:
wav lab 3.029秒 2.931秒(0.9675倍) 7.114秒 7.027秒(0.9877倍) 9.056秒 8.766秒(0.9679倍) 1.408秒 1.308秒(0.9291倍)
「スーパーキラキラカラフルクッキリディスプレイ」を四国めたん(ノーマル)で書き出し
音声ファイル:2.613sec ラベルファイル末尾:2.6492364 sec
長さが一致する
commit: 15763fc
たぶん https://github.com/VOICEVOX/voicevox_engine/blob/master/voicevox_engine/synthesis_engine/synthesis_engine.py#L448 で音声側の長さがずれている。 長さをroundして256倍しているので、最大で 128frames ずれるため、おそらく1音素当たり 128/24k(Hz) = 5ミリ秒 の誤差が生じる
The text was updated successfully, but these errors were encountered:
issue化ありがとうございます!!
エディタ側で同じround処理するという手がありますが、エンジン側の仕様が変わってもエディタ側は気づけないので、この方法は避けたいです。
エンジン側に何らかの方法で、roundしても全部をsumした値があまり変わらないようにする手はあるかもと思いました。
あ! それぞれの音素長をroundするのではなく、音素長の累和(cumsum)をとってからroundしたあとまた音素長求めなおす、という手を思いつきました。 どうでしょう。
Sorry, something went wrong.
それぞれの音素長をroundするのではなく、音素長の累和(cumsum)をとってからroundしたあとまた音素長求めなおす
なるほど、全体のframe数に対する各音素長の比率で割り当てていくんですね 確かにそれで一文あたりの誤差を一定のサイズに抑えられそうです。
ところで実はもう一つ懸念点があって、文章を結合して出力する場合に前文のlabの秒数から続けている ため、結合出力の際は各文章での誤差が蓄積する可能性があります
上の対策と同時に音声ファイル長とラベルファイル長を強引に合わせる対策をやった方がいいと思うんですがいかがでしょうか?具体的には各文の音声blob から音声長を取得しラベル末尾に代入する方法を考えています。
たしかに音声を結合してlabを作る場合でも同じ問題が発生しますね!! 仰るとおり音声から音声長を得るとより正しくなると思います!
No branches or pull requests
不具合の内容
https://twitter.com/ekidenp/status/1514210801459945478
リップシンク用のラベルファイルを書きだしたとき、全体の長さが少しずれる
現象・ログ
上記ツイートから引用:
再現手順
「スーパーキラキラカラフルクッキリディスプレイ」を四国めたん(ノーマル)で書き出し
音声ファイル:2.613sec
ラベルファイル末尾:2.6492364 sec
期待動作
長さが一致する
VOICEVOXのバージョン
commit: 15763fc
OSの種類/ディストリ/バージョン
その他
たぶん
https://github.com/VOICEVOX/voicevox_engine/blob/master/voicevox_engine/synthesis_engine/synthesis_engine.py#L448
で音声側の長さがずれている。
長さをroundして256倍しているので、最大で 128frames ずれるため、おそらく1音素当たり 128/24k(Hz) = 5ミリ秒 の誤差が生じる
The text was updated successfully, but these errors were encountered: