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

アクセント調整通りに発音できない問題 #152

Open
Aspena2022 opened this issue Jul 13, 2024 · 0 comments
Open

アクセント調整通りに発音できない問題 #152

Aspena2022 opened this issue Jul 13, 2024 · 0 comments

Comments

@Aspena2022
Copy link

■現象■

とくに文頭1文字目にアクセントがある場合、それを変えようと手動調整しても、反映さないことが多いです。
例)「アクセントを強調します。」など。
モデルごとの差もありますが、ほとんどの場合で「ア」にアクセントが乗ったままです。

■原因予測■

この問題を調べてみると、どうもJP Extraの教師学習データが原因かなと思えるところがあったので報告します。

内部的には ja_bert として扱われているので、litaginさんには ja_bert で話が通じると思いますが、これで予測されるアクセントが、だいぶ強いんですね。一方、手動のアクセント調整は微妙にわずかしか変えられないので、それがアクセント調整がたびたび無視される原因になっています。

「アクセント」のように1文字目が強調される場合は問題ないのですが、「水平線」や「棒読み」など尻上がりのワードがうまく言えないことが多いです。

■解決策■

そこで、こうしてみました。Styleのインストールフォルダ直下にある infer.pyの

def get_text 関数の、return の直前で、 ja_bert を割り算で抑制します。

if given_tone[1] == 0:
 for i in range(1024):
   ja_bert[i] = ja_bert[i] / 8

文頭にアクセントが来ない場合に、ja_bert を8分の1に抑制。これで「水平線」のようなワードがうまく言えるようになりました。これは応急処置的なやり方ですが。
ここでは文頭アクセントが1か0かの2択で、ja_bertの適用率を100%か、8分の1かにしていますが、これでけっこううまくいきました。

■アップデートの提言■

そもそもja_bert が相当アクセントが強く学習されているので、これの適用率を変化させられるような仕組みがあれば理想的ですね。
適用率0%(ロボティックな棒読み)から、150%(過剰アクセント)ほどの間で設定できるようにしてみてはいかがでしょうか。
ja_bertを0%にすると、アクセント指定通りになるとは言えますが、あまりに棒読みすぎて実用的ではなかったです。ほんのり10%とか15%とか残す必要がありました。
別の角度から見れば、現状の ja_bertは、10%程度でも十分なめらかに発音できます。それだけ強く学習されているのが気になるところで、もう一度再学習する余地はあると思います。

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

No branches or pull requests

1 participant