はじめに
前の記事でGriffin-Limアルゴリズムを紹介しました。
その中でGriffin-Limアルゴリズムは十分な反復回数を行うことで品質の良い結果が得られますと述べました。
しかし、実装ではtorchaudio.transforms.GriffinLimのデフォルトの反復回数である32回とその十倍の320回を試しましたがデフォルトの反復回数と十倍の反復回数で品質が良くなったのかイマイチわかりませんでした。
そこで本当に品質が良くなっているのかMOSの自動算出プログラムであるViSQOLをつかってスコア形式で見ていきたいと思います。
ViSQOLについての記事はこちら
品質確認方法
以下の反復回数で試行します。
8回
16回
32回
100回
320回
500回
1000回
3200回
位相をランダムで初期化しているため反復回数ごとに3回動かしてみます。
入力データはM-AILABSの適当なデータです。
入力データのサンプリングレートは16hzでViSQOLのモードはスピーチモードを使用しました。
結果
反復回数 | 一回目のMOS | 二回目のMOS | 3回目のMOS | MOSの平均 |
---|---|---|---|---|
8 | 3.26646 | 3.27334 | 3.24124 | 3.26034666667 |
16 | 3.34565 | 3.24788 | 3.38707 | 3.32686666667 |
32 | 3.38952 | 3.39979 | 3.42066 | 3.40332333333 |
100 | 3.44303 | 3.45231 | 3.49419 | 3.46317666667 |
320 | 3.37232 | 3.54869 | 3.51795 | 3.47965333333 |
500 | 3.47666 | 3.53706 | 3.52448 | 3.51273333333 |
1000 | 3.50292 | 3.46924 | 3.55915 | 3.51043666667 |
3200 | 3.42859 | 3.52846 | 3.56928 | 3.50877666667 |
波形を見てみよう
元の波形
反復回数が8回の波形
反復回数が32回の波形
反復回数が3200回の波形
波形だとやっぱり違いがよくわからない・・・
感想
繰り返しの数を増やしているだけあって3200回のときは時間が体感で10秒以上かかりました。
さて、Griffin-Limアルゴリズムの反復回数による精度比較ですが、MOSスコアの平均を見てみると500回以降はMOSが下がっています。
MOSの平均ではなく単体で見ると反復回数が8回から500回にかけては確かにスコアが伸びていると感じましたが、それ以上はスコアの伸びを感じませんでした。
「回数をすごく増やせばいい音質のものが手に入るのだから反復回数を増やせば増やすほどいいんじゃないか?」と考えていました。
しかし、反復回数にかかる時間を考慮すると、増やした時間に見合う精度のものが出力されるかというと違うことが分かりました。今回の結果からは、反復回数が500回くらいが時間と精度で見ると一番いい反復回数なのではないでしょうか?
おわりに
Griffin-Limアルゴリズムについて反復回数によるMOSの違いが体感できました。
初心者であるため間違いが多少あるかもしれません。もし、間違えているところがありましたらこっそり教えてください。
この記事が誰かのお役に立てれば幸いです。