神野さんに言われました。

読者です 読者をやめる 読者になる 読者になる

神野さんに言われました。

AIの勉強をしています @sesenosannko

基本周波数の線形変換

https://sunpro.io/c89/pub/hiromu/hiromu.pdf

 

これの4.3で変換したMFCCを音声データに戻す作業をしていますよね。

これを理解したい。

 

でもこれが正直、全くわからない。

だから、その話の前にf0=基本周波数の一次変換について。

 

そもそもなぜ基本周波数だけ個別に線形変換をしないといけないのかというところなんですが、ここもまだ理解できていないんだよね。

声質変換の仕組みとしては、上のサイトに書いてあるように「基本周波数」「スペクトル包絡」「非周期成分」に分けて、基本的にはスペクトル包絡を変換して再合成するわけですね。

ここで、スペクトル包絡だけを変換すると、声質が大きく異なるサンプル同士ではうまくいかないことがあるのですが、これは基本周波数の違いも出てきてしまうかららしいです。

だから基本周波数も単純な線形変換で近づけようという話ですね。そう言われると、なんとなくわかった気ような錯覚に陥ります。

 

今回は、このパラメータの抽出については、TANDEM-STRAIGHT[1]というシステムを利用する。 これは、山梨大学の森勢助教が公開している2音声分析・合成システムであり、音声データを分析し、 ソースを表すパラメータである基本周波数、フィルタを表すパラメータであるスペクトル包絡、そ して、音声のかすれや雑音を表すパラメータである非周期成分という 3 つのパラメータを抽出する ことができる。もちろん、この 3 つのパラメータから音声データを合成することも可能である。

 

もうこのブログ全体がわからないものリストみたいになっていますが、とりあえずこの土日で少なくともソースフィルタモデルのソースってそもそもf0について何したものなのか( SPTKのexciteコマンドについて)を理解します。

本当はこの記事はそれを理解してなるほどわかったねって言って書くつもりだったんですが、意外とよくわからなくなったのと時間がないので、この記事はもう無意味な記事としてあげます。

 

この記事で使っているSPTKのコード自体を読むか、多分それはだいぶ辛いので他の説明を探したいと思います。

 

aidiary.hatenablog.com

 

f0を線形変換する方法はすごく自然な発想で、計算も簡単です。やったね。

 

 y_t = \frac{p^y}{p^x} \left( x_t - \mu ^x \right) + \mu ^y

 

x_t y_tに変換するときに、

x_tからx_tの平均を引いたものに( y_t標準偏差)/(x_t標準偏差)をかけあわせて、 y_tに足す。

直感的に理解できます。

 

まぁこれは簡単な式ですね。

ただ、読めば読むほど仕組みがわからない。

辛いなぁ・・・