0

私は話す漫画の顔を含むopenGLプロジェクトに取り組んでいます。私の希望は、スピーチ (mp3 としてエンコードされたもの) を再生し、音声データを使用してその口をアニメーション化することです。これまでオーディオを実際に扱ったことはなかったので、どこから始めればよいかわかりませんが、グーグルで調べたところ、最初のステップはmp3をpcmに変換することだと思いました。

フーリエ変換が必要になるとはまったく予想していませんが、それはいいことかもしれません。音声があるときは、口が本当に動き回る必要があります(音量に基づいて考えていました)。

このようなものを実装するためのヒントやリソースへのポインタは大歓迎です。ありがとう!

-S

4

1 に答える 1

2

何をするにしても、最初に MP3 を PCM データにデコードする必要があります。これを行うことができるサードパーティのライブラリが多数あります。次に、PCM データを分析し、信号処理を行う必要があります。

オーディオからリアルなリップシンク データを自動的に生成することは非常に難しい問題であり、取り組まない方が賢明です。単にボリュームに基づいているというあなたのアイデアが好きです。現在の音量を計算する 1 つの方法は、あるサイズ (たとえば 1/16 秒) のローリング ウィンドウを使用し、そのウィンドウでの音波の平均パワーを計算することです。つまり、フレーム T で、フレーム [TN, T] の平均パワーを計算します。ここで、N はウィンドウ内のフレーム数です。

パーセバルの定理のおかげで、フーリエ変換や複雑なことをしなくても、波のパワーを簡単に計算できます。平均パワーは、ウィンドウ内の PCM 値の二乗和をフレーム数で割ったものです。ウィンドウで。次に、電力を基準電力 (簡単にするために 1 にすることができます) で割り、対数を取り、10 を掛けることで、電力をデシベル定格に変換できます。

于 2009-04-01T05:08:16.767 に答える