原稿の音素記号化の難しさについて - akjava/Matcha-TTS-Japanese GitHub Wiki
ここでは、難しくなる原因を上げていく。
改めて検証するとDatasetには、無音や途中で読むのやめてたり、質の酷いのが混じってたりするが、それでもそこそこのモデルが仕上がっている。 そのため、どのぐらいの品質まで高めなければならないかは不明
最終的には、原稿を音素化した物と、読み上げた音声の音素化を比べないといけない。酷い差があるものは検証の必要がある。
こららの問題の解決のため、jyakoTenを作っているが、万人に勧められる状態じゃない。
解決に役立つツール
- VAD - 万能ではないが、たまに混じっている無音声を除ける。VAD後の、容量の少ないファイルの音声を聞いてみるといい。
- 音声認識 - そのまま原稿の代わりには使えないが、音声が壊れてたり、途中で読むのを止めたりしているのを、見つけることは可能
原因
原稿を正しく読めてない。
漢字が難しい場合もあるが、「てにをは」が結構抜けたりもする。
1文字程度だとエラーに引っかかりにくい。
漢字からの音素化で失敗する
例えば、openjtalkのg2pもたまに間違います。
原稿がカナであれば、ほぼ失敗しない。漢字から変換の場合、ある程度の確率で失敗する。 原稿の漢字の使い方が間違っていると、高い確率で変な音素に変換してしまう。
音声認識の精度に問題がある
読み上げた音声を音声認識して、そのまま上げればいいと思うが、音声認識は、統計的に頻度が高い文章に強制的に認識してしまう。 つまりスクリプトの内容がレアなケースだと、特に人名とか、酷い漢字の結果になる。(たいてい、この漢字を音素化で全く違うものになる)
また、稀に、Whisperだと"ご視聴ありがとうございましたと。"と音声認識を放棄することもある
ただし、地名(Common-Voiceが大好きで頻繁に登場する)とか、大抵の辞書は、まともに変換できないので、読み上げたのを、そのまま採用した方がいいケースも有る
#カナで認識するモデルは現状、確認出来ていない。
VAD時に、音をぶった切ってることもある。
クリック音を除いてくれる、VAD(voice activity detection)だが、音の状態にもよるが、稀に最初の小声とか、切ってしまうこともある。 そもそも、VADの特性上、母音が混じらない、子音だけの音の検出は苦手。
また別の話になるが、ある程度、音声が入っていないファイルはVADで検出できるが、人の声が交じる騒音は、VADを素通りしてしまう。原稿の長さと、ファイルの長さを比べるしかない。