スポンサーリンク

T.Ishii's Software Library

HTML5 レトロ風ゲーム館

無料ブログはココログ

« 問題は音の唸り | トップページ | 気持ち的には同等に出来た »

唸りの対策は出来たものの

今は、AmuseGraphics Ver1.4.1の開発フェーズで、macOS版AGMPlayerに続き、macOS版AG-ムービーカッターの開発中なのだが、昨日書いていたピッチを固定しつつ音声の再生速度を落とすと音の唸りが発声する理屈は判り、対策も出来たので、かなり良くはなった。

昨日は、音の唸りが発生する理屈をまだ理解できていない、みたいな事を書いていたのだが、考えてみると、多分、理屈は簡単で、ピッチ変更では、周波数を変更する事になるので、元々は、Sin窓により、FFT期間の両端で0、中央で山になっていたソース波形は、0.5/0.25倍速時には、周波数が2/4倍になるので、ピッチ変更後に逆変換すると、FFT期間内に2/4個の山が出来る格好になるのが原因になる筈だ。

その結果として、オーバーラップFFTの出力生成処理では、ピッチ変更がなければ、位相が90度ずれ、Sin波の山と谷が逆だった二つのFFT逆変換結果が、同一位相になってしまい、その結果として、Sin窓の二倍の周波数の唸りが発生する感じになっていた、と、思われる。

なので、唸りを消すためには、オーバーラップFFT結果の片方の位相を変更してから合成してやれば良い、という事で、やってみた結果、見事に、音の唸りは無くなったのだが、位相を変えた、という事は、時間軸を少し移動させた事になるので、オーバーラップFFTの二つの逆変換結果は、若干ズレた時間の音声を合成している格好になる。

と、言う事なので、数日前に書いた様に、iMovieの速度変更後の音声はリバーブがかかった感じになっている、のかもしれないのだが、上記の変更により、例えば、映画なんかで、人間のセリフがある場面なんかについては、iMovieとAG-ムービーカッターを共に0.25倍速程度にしてみても、同じ様な音声が出力される様になったのだが、音楽データの速度を変更してみると、明らかに、iMovieの方が音質が良かった。

具体的には、AG-ムービーカッターで速度変換すると、特に高音域の分離が良くないのか、少しこもった感じの音になってしまっているのに対し、iMovieの速度変更では、オリジナル音声と聞き間違うくらい、高音質のまま、速度変更が行われる訳だ。

なので、まだ、iMovieと同等にはなっていないのだが、iMovieはApple純正の動画編集ソフトな訳なので、こういった処理の最適化にも、専任で、年収数千万円の研究者や技術者があたっている可能性もある。

つまり、そう簡単には、同等の音質に持っていく事は出来ないかもしれないし、例えできたとしても、作者的には、多分、大して儲かる事にはならない筈だ。

と、言う事なので、本件については、この辺にしておこうかなあ、と、思っている今日この頃だ。

ちなみに、音が篭る原因は、FFT時のサンプリング周波数が低すぎる、という可能性もあるし、ピッチ変更のやり方が単純だから音の特性を壊している、という可能性もあるし、ピッチ変更前の時間領域データの段階で、既に、音声波形が潰されているから、という可能性もある。

なので、まだまだ、やれる事は色々とあるのだが、再生速度を落とす前に、FFTして音声の特性を取得し、それを速度を落とした後に使う、というのが、ピッチ変更としては簡単かもしれない。

と、言う事なので、そういう事もやってみようかなあ、と、思ったりもしてしまうのだが・・・

 

« 問題は音の唸り | トップページ | 気持ち的には同等に出来た »

2019年10月
    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31    

広告

プライバシーポリシー

  • 当サイトでは、第三者配信による広告(Google Adsense)サービスを利用しています。

    Google を含む第三者配信事業者は、Cookie を使用して、ユーザーのウェブサイトでの閲覧履歴に基づく広告を配信します。 Google 広告 Cookie を使用することにより、Google や Google のパートナーは当サイトや他のサイトへのアクセス情報に基づく広告をユーザーに表示できます。

    収集された情報がGoogleによってどの様に使用されるか、収集される情報をユーザーが管理する方法については、以下のリンクを参照下さい。

    ポリシーと規約 - Google