GoogleがWaveNetを出してから、合成音声も機械学習を使うようになった。
2021年では日本でも機械学習を使ったソフトウェアがいくつか販売される。
はてな的にはAIきりたんのNEUTRINOが話題となった。1/29に発表されたCevio AIの記事を見た人も中にはいるだろう。
人の歌声と区別できないとニュースタイトルでは付いているが、個人的はまだまだ違和感がある。
人間のボーカルを録音してピッチ修正をしている人だと、Melodyneでピッチ合わせすぎると機械っぽい音声になるから、わざと修正しないといったことを行うわけだが、
歌声合成ソフトでは「しゃくり」といった、わざと外して人間っぽさを出す。
実際にソフト開発側もわかっていて、マニュアルで修正する手段を用意しているので、それに引きずられてしまうのだが、
声は複数の周波数を重ねてできたものであり、各周波数ごとに分解すると、基本周波数の2倍、3倍といった周波数の音が出ているのがわかる。
実際の人の声を分析すると、時間方向に微妙な揺らぎが存在するのがわかる。
また口を閉じた状態から声を出そうとすると、口が開くまでの音の変化など、ちゃんとした周波数が出ていない箇所がある。
機械音声の場合、ゆらぎがなく、〇〇周波数がピタッと出ており±15Hz揺らぐといったことがない。
ゆらぎについても、人間の声の場合、±50Hzから±15Hzへ変化するといったことが起こっているように見える。
見えると言っているのは、自分が声のデータを処理しているとなっているように見えているからであり、
これについて言及した文献を探せていない。
さきほど声には倍音があるといったが、倍音の数も人間の声では変化するが、機械音声ではずっと同じ数のままだ。
「あ~」のように伸ばした音の場合、ピッチ調整で波打つようなのを手書きしたことがあるDAW経験者はいるだろうが、
人の声を調べると倍音の数が徐々に変わっていたりする。
現行のソフトでピッチ補正で波を手書きしても、元から上手く伸ばした声にならないといった苦労をした人がいると思うが、
この辺りが機械学習で解決しているかというと、あまりなっていないように感じている。
思っていたよりクオリティが低いのだ。
なぜか。
一つの仮説だが、RNNやTransformerといった、ニューラルネットの構成ばかりに気にしていて、
何かしらかの演算で前処理を行ってからニューラルネットに入力するわけだが、
前処理段階で捉えられていない特徴量があるのではないだろうか。
また統計処理を行う際に、計算精度によって丸め込まれてしまっているのではないだろうか。
プログラミングであれば徐々に自動化をする箇所を増やせるが、音声合成ソフトは自動化が出来ない。
何年経ったとしても、良くならないのだ。
この辺り、修正前と修正後のデータがあるのだから、学習していってより便利になればいいのだが、そうはならない。
スマートスピーカーが出たり、日常的に音声を聞いているわけだが、音声を合成しようとしたときに使えるデータは案外少ない。
ちゃんとしたスタジオで録音したり、無響音室での録音した音声はない。
日をまたぐと体調も変わってくる。
同じ条件でデータを揃えるといった場合、音声はデータが少ないんだろうなと思うのだ。
自分で合成音声をやってみるとわかるが、学習に計算リソースがかなりかかる。
一つの仮説だが、RNNやTransformerといった、ニューラルネットの構成ばかりに気にしていて、 音声をよくよく観測できていないのではないか。 音声全く詳しくないけど、これは間違いな...
クオリティを上げるインセンティブがないからじゃね 機械学習であるクオリティに達したら他も競合できちゃうわけで 市場独占できるわけでもなく googleとかはもう満足してそうだし あ...