310 likes | 427 Views
音声特徴比較システムの開発. 動機. ・音楽を利用した音声処理に興味を持った ・フーリエ変換を利用した研究を行ってみたかった. 動作環境 及び 開発環境. ・ GCC Verson 5.1.6 ・ Microsoft Visual C++ 2008 Express Edition. ・ Windows (Win32 API を使用するため ). 概要. どれだけ合ってる !?. 声元 ス曲ペの ク ト ル. 声マ スイ ペク ク入 ト力 ルの. システムの流れ. ボーカルキャンセリング. 再生. 録音. フィルタリング. FFT.
E N D
動機 ・音楽を利用した音声処理に興味を持った ・フーリエ変換を利用した研究を行ってみたかった
動作環境 及び 開発環境 ・GCC Verson 5.1.6 ・Microsoft Visual C++ 2008 Express Edition ・Windows (Win32 APIを使用するため)
概要 どれだけ合ってる!? 声元 ス曲ペの ク ト ル 声マ スイ ペク ク入 ト力 ルの
システムの流れ • ボーカルキャンセリング • 再生 • 録音 • フィルタリング • FFT • 比較
進行状況 ○…完成済み △…完成しているが 改善の余地有 無印…作成中
ボーカルキャンセリング ※この図はイメージです
再生 及び 録音 伴奏データ 再生 + マイク入力 録音
フーリエ級数 大前提は周期関数である波形を扱うこと フーリエ級数とは 全てsinとcosの足し合わせで表すことができる! これを応用すると・・・
フーリエ変換 グラフ : 波形 周波数分布 ⇒ 横軸 : 波形グラフを,周波数グラフを とすると
スペクトル 波形 スペクトル 振幅比 振幅 → 時間[s] 周波数[Hz] 周波数⇒波の特徴を表す成分値 ・・・ 波形を周波数グラフに変換することで 周波数成分ごとに分けられ,解析可能となる!
フーリエ変換 グラフ : 波形 周波数分布 ⇒ 横軸 : 波形グラフを,周波数グラフを とすると
DFT(離散フーリエ変換) 離散フーリエ変換(DiscreteFourier Transform)の略 フーリエ変換 ⇓ 離散フーリエ変換 τはサンプリング間隔 Nはデータ点数 デジタル化 f(kτ) τ
DFT→FFT ○DFTの欠点……計算処理量が膨大 ⇑ 公式を見てみると 扱う関数が周期関数なので総あたりだと 周期特性上計算の重複がさけられない… そこで・・・FFT
FFT(高速フーリエ変換) 高速フーリエ変換(FastFourier Transform)の略 …バタフライ演算の駆使により演算効率を上げたDFT ⇓ 例えば・・・ W80=-W84 W81=-W85 W82=-W86 W83=-W87 この場合8つの計算を4つに減らすことができる!
ボーカルスペクトルの抽出 ※この図はイメージです
比較 声元 ス曲ペの ク ト ル 声マ スイ ペク ク入 ト力 ルの
問題点 全データでのFFT処理による計算量が増加してしまう そこで…
対策案 • 原曲 • 録音 • カラオケ化 フィルタにかける • 計算量の削減!!
今後の予定 • 録音プログラムの作成比較プログラムの作成 • プログラムの結合 • データ収集 • データの統計処理
展望 • リアルタイム処理 • リアルタイム処理のタイムラグ削減 • GUIへの移植
参考文献 ・WAVプログラミングC言語で学ぶ音響効果 北山洋幸,カットシステム, (2008年) ・C言語で始める音のプログラミング 青木直史,オーム社,(2008年) ・Windowsサウンドプログラミング 田辺義和,翔泳社,(2001年) ・百科事典マイペディア【音程】 平凡社,(2007年)
質疑応答のじかん VFCS Project Wiki http://www29.atwiki.jp/vfcs/
窓関数 非周期関数を疑似的に周期的にする関数 ⇓ 一般の波形に掛け合わせる ※関数値は0~1で構成されていて元の関数の 外形にはほとんど影響を及ぼさない。
オイラーの公式 自然対数eを利用してcosとsinの和を簡略化 ⇓ 但し θは角度、iは虚数単位 周期関数は実数表示よりも複素数表示の方が相性がいいので この公式はa+ibの複素数型になっている