Cモデルはwav形式のファイルを入力として与えると、その内容をDFTして結果をテキストファイルで出力する。出力形式は5種類を指定できるようにしていたが、今回新たにlog形式を追加した。
このアルゴリズムは1サンプル毎にスペクトル列を生成できるが、出力ファイルが膨大になるので2048サンプル毎に間引いて出力することも出来るようにしている。
また、絶対値出力の場合にはスペクトル値とともに周波数値も出力するようにした。
この出力ファイルをgnuplotとavidemux等を使って編集して動画を作ることができる。
時報のデータをDFTしてみた。
Cモデルを実行する。
すると、大量のスペクトルファイルが生成される。
これらをgnuplotでグラフ描画してjpegファイルに変換する。これは以下のようなシェルスクリプトで行っている。
このスクリプトの実行が完了すると、jpgというディレクトリ下に変換されたjpegファイルが生成されている。
次に、avidemuxでこれらの画像からAVI形式の動画を作成する。
上記のようにすると、jpg下の全てのjpegファイルが番号順に読み込まれる。
このデータは2048サンプル毎のデータであり、サンプリングレートは44.1kHzなので映像のフレームレートとしては44.1KHz/2048=21.533になるので、レートをそのように設定する。(映像(D)➔フレームレート(F))
次に、音声データを読みこませる。(音声(A)➔主トラック(M))
音声ソースを外部WAVにして、外部ファイルでwavファイルを指定してOKをクリックする。
これで映像と音声が合体できたので、AVI形式で保存する。
生成したAVIファイルはjpegとwavファイルが合成されているだけなのでファイルサイズは大きいが、ffmpeg等を使ってflvやwmv等のフォーマットに変換すれば小さくすることが出来る。(ただし、画質や音質は劣化する。)
こうやって作った映像を見るのは面白く、楽しい。
0 件のコメント:
コメントを投稿