サウンド信号処理

フリー・ソフト活用 ご購入はこちら
Windows/Mac/Linux 対応で I/O もサクッ !
オープンソースのブロック型言語
Pure Data ではじめる
サウンド信号処理
第4回
周波数分析を使ったロボット・ボイス作り
窓を掛けることで波形を一定の長さに区切る
周波数分析プログラム
振幅
窓
時間
波形
離散フーリエ変換
(DFT)
逆離散フーリエ変換
(IDFT)
周波数特性
周波数特性から
波形を求める
振幅
波形から
周波数特性
を求める
周波数
図 1 離散フーリエ変換(DFT)による周波数分析…窓関数で波形
を一定の長さに区切るのが基本
前回(第 3回,2016 年 2 月号)は Pure Dataを使って
データ・ファイルの保存方法と再生方法を説明しました.
サウンド・プログラミングでは波形を観察するだけ
でなく,周波数特性を観察することも重要なポイント
になります.
今回は Pure Data を使って周波数特性を観察する方
法について説明した後,応用例の一つとしてロボッ
ト・ボイス「ボコーダ」のプログラムを紹介します.
サイン波の
周波数
窓のサイズと
オーバラップの
設定
窓関数
グラフ表示の
ON/OFF
(b)波形
周波数
分析部
(図3)
つなぎ方に要注意
(コラム1参照)
周波数特性の
グラフ表示
windowアレイに窓関数を格納する
(a)プログラム
(c)周波数特性
図 2 Pure Dataを使うと手軽に周波数分析が行える
(メインパッチ)
156
コンピュータを使って波形から周波数特性を割り出
すには,離散フーリエ変換(DFT)を適用することが
一般的です.図 1 に示すように,窓を掛けることで波
形を一定の長さに区切り,この中にある波形の周波数
特性を求めるのが DFT による周波数分析の手順にな
ります.
図 2 と図 3 に Pure Data による周波数分析のプログ
ラムを示します.メインパッチのアレイは,それぞれ
波形と周波数特性を表示するためのグラフになってい
ます.スライダを左右に動かしてサイン波の周波数を
変化させると,音の高さが変化するとともに,波形と
周波数特性のグラフも変化します.このように Pure
Data は,いくつかのブロックを組み合わせるだけで
音を可視化するプログラムを手軽に作れます.
このプログラムは,スライダの値の範囲を 20 〜
20000 に設定しています.イグノーベル賞で有名に
なったモスキート音は,加齢によって次第に高い周波
数の音が聞こえなくなるという人間の聴覚の特徴を逆
手にとったものですが,このプログラムを使って,自
分の耳がどのくらい高い音まで聞こえているのか
チェックしてみることも面白いかもしれません.
音データ
スライダの値の範囲は
20∼20000に設定
波形の
グラフ
表示
青木 直史,藍 圭介
図 3 DFT による周波数分析のプログラム(サブパッチ [pd
analysis])
第 1 回 正弦波 / ノコギリ波 / 矩形波…まずは基本音を鳴らす(2015 年 12 月号)
第 2 回 サウンド処理の基本満載! レガシ・ピコピコ音 BGM(2016 年 1 月号)
第 3 回 リアルタイム音声処理の準備…データ・ファイルの保存 & 再生(2016 年 2 月号)
2016 年 3 月号