システムの説明手順

音声特徴比較システムの開発
Development of Voice Feature Comparison System
動機
班員全員が
音楽好き
フーリエ変換を
活かせる
4つの動機
歌の
数値解析
のコーディング 上手さを科学的
に理解したい
をしたい
目的
歌の上手さを
科学的に理解
結果を考察
サンプルデータの
収集及び統計
音声特徴比較
システムの開発
開発環境
Microsoft
Visual C++
2010
Express
Edition
MCIとは?
Media Control
Interface の略
音楽や動画を再
するための命令
群
システムの説明手順
1
2
3
4
ボーカルキャンセリング
フーリエ変換
比較手法以前
比較手法
システムの説明手順
1
2
3
4
ボーカルキャンセリング
フーリエ変換
比較手法以前
比較手法
ボーカルキャンセリング
定義
L=LV+LB
R=RV+RB
LV=RV
ボーカルが中央に定位
していることを利用、
ボーカル音声を除去!
L-R=LV+LB-(RV+RB)
=LV-RV+LB-RB
=LV-LV+LB-RB
=LB-RB
伴奏だけ
取り出せる!
システムの説明手順
1
2
3
4
ボーカルキャンセリング
フーリエ変換
比較手法以前
比較手法
システムの説明手順
1
2
3
4
ボーカルキャンセリング
フーリエ変換
比較手法以前
比較手法
波の分解
f ( t )=?
波の分解
f ( t )=sinωt+sin2ωt+sin3ωt
フーリエ変換
フーリエ理論…全ての周期関数は単純なsin波cos波に分解可能
an …cos波の各振幅

f (t )  
( an cos nωt  bn sin nωt)bn …sin波の各振幅
n…基本周波数1に対する倍音周波数 2~
n 0
3つの定数が分かることによって波の特徴を解析できる
波形を周波数分布へ変換できる!
波形グラフを G( f ) ,周波数グラフを f ( t ) とすると
G( f )  


f (t )e
in 2πft
dt
スペクトル
3
2.5
2
1.5
FT
0.5
1
1
2
3
4
5
6
7
f(t)
G( f )
時間
周波数
8
9
DFT(離散フーリエ変換)
 in2πk
N 1 

n


N
DFT(離散フーリエ変換)

G
   τ f (kτ)  e

…PC用のデジタルフーリエ変換  Nτ k 0 

τはサンプリング間隔 Nはデータ点数
フーリエ変換
↓デジタル化
離散フーリエ変換
↓ 高速化
高速フーリエ変換
バタフライ演算
→
→
→
→
←
←
→
→
←
←
→ ← → ← → ← → ←
7
→
→
→
←
→
←
←
→
5
←
→
←
→
→
→
→
→
→
←
→
→
→
→
3
→
→
←
→
→
←
→
→
→
→ → → → → → → →
→
→
1
→
→
→
←
←
→
→
←
→
8
←
→
←
←
6
←
→
→
→
4
→
←
→
←
→
→
→
←
7
←
→
→
→
6
→
→
←
←
←
→ ← → ← → ← → ←
→
←
←
5
→
→
4
→
←
→
3
→
←
2
←
→
← →
2
→
→ → → → → → → →
→ →
1
→
8
→
データ点数を2のN乗個とする
→PCの仕様に合わせるため,周期を崩さないため。
・データ点数が64個の場合
窓処理
フーリエを利用する大前提は周期性
窓関数…初めと終りが最小,終始2点の中間が最大
3
2
1
0
0
0.2
0.4
0.6
0.8
1
-1
-2
-3
→窓処理・・・波形f ( t )に窓関数をかけること。
1.2
システムの説明手順
1
2
3
4
ボーカルキャンセリング
フーリエ変換
比較手法以前
比較手法
システムの説明手順
1
2
3
4
ボーカルキャンセリング
フーリエ変換
比較手法以前
比較手法
音声比較以前
ボーカル音声波形データの抽出
失敗
ボーカル音声スペクトルの抽出
ボーカル音声以外の
中央音源が少ないデータでは成功
比較アルゴリズム概要
音階判定
標準偏差、偏差値
を利用
音階変化判定
得点を算出
声量判定
抑揚判定
精度向上のために
フィルタリング
標準偏差
標準偏差
散らばり具合を表す数
偏差値の計算に用いられる
S

 x x
N
i 1
i
N

2
偏差値
母集団の平均か
らどれだけ離れ
ているかを示し
た値

10  xi  x
50 
S

-4.0 -3.0
平均値を
変更
-2.0
0.45
0.4
0.35
0.3
0.25
0.2
0.15
0.1
0.05
0
-1.0 0.0
1.0
2.0
3.0
4.0
10  x  x 
70 
S
i
フィルタリング
音声周波数帯150-2000[Hz]
を通過させるフィルタを使用
解析したい周波数帯域の特定ができる
システムの説明手順
1
2
3
4
ボーカルキャンセリング
フーリエ変換
比較手法以前
比較手法
システムの説明手順
1
2
3
4
ボーカルキャンセリング
フーリエ変換
比較手法以前
比較手法
音階判定
録音音声スペクトル
ボーカル音声スペクトル
1200
400
1000
800
300
600
200
400
100
200
0
0
0
1000
2000
3000
4000
5000
6000
0
音階
取得
この音は「ド」だ! 音程比較
1000
2000
3000
4000
5000
6000
音階
取得
この音は「ド」だ!
音程合致!
音階差分判定
t秒時のスペクトル
t+1秒時のスペクトル
1200
1400
1000
1200
800
1000
1秒
経過
600
400
200
800
600
400
200
0
0
1000
2000
3000
4000
5000
6000
音階
取得
この音は「ド」だ!
0
0
1000
2000
3000
4000
5000
6000
音階
取得
この音は「ラ」だ!
「ラ」-「ド」は正、このことを利用して… 音程比較!
声量判定
マイク入力時のパワーの平均値で比
較する手法
1600
1400
1200
1000
800
600
平均値で比較
400
200
0
0
60
120
180
240
抑揚判定
マイク入力時のパワーの変化の度合
いで比較する手法
1600
1400
1200
1000
800
600
400
200
0
0
60
120
180
240
-4.0 -3.0
-2.0
0.45
0.4
0.35
0.3
0.25
0.2
0.15
0.1
0.05
0
-1.0 0.0
1.0
2.0
3.0
4.0
結果
Rank
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Human
test23
test21
test01
test04
test13
test00
test07
test09
test12
test06
test16
test18
test03
test11
test08
test14
test05
test17
test19
test22
test02
test10
test15
test20
System
test23
test04
test00
test21
test15
test20
test13
test22
test17
test08
test12
test03
test11
test02
test10
test07
test01
test09
test06
test18
test14
test19
test05
test16
メンバー
が採点
システム
で採点
比較
上位、下位
ほぼ一致
考察
ボーカル音声を綺麗に消せる曲は
高得点になる傾向がある
原因
解決策
中央音源に楽器音が含まれている
ボーカルキャンセリングアルゴリズ
ムを改善する
比較アルゴリズムを改善する
参考文献
C言語ではじめる音のプログラミング
WAVプログラミング
C言語で学ぶ音響処理
Windowsサウンドプログラミング
フーリエ変換
http://luckypool.hp.infoseek.co.jp/Fourie/
ご清聴ありがとうございました
仲道 嘉夫 先生
比較手法検討協力
データ比較
石川
浅子
幸治
卓亨
先生
班長
木立
本多 寛也
隼也
GUI開発協力
西田 侑央
本多
菱沼
隼也
和弘
監督
桑原 悠太
データ収集協力
資料作成
浅子
安藤卓亨
駿
フーリエ変換指導
桑原
河野
悠太
西田 杏那
侑央
木立 大輝
西松
寛也
・・・等他多数の方々
西田 侑央
GUIコーディング
本多
本多 隼也
隼也
協力ありがとうございました
システムコーディング
スペシャルサンクス
桑原 悠太
フーリエ変換指導協力
グラフィックス
石川
幸治 先生
木立 寛也
質疑応答のじかん
VFCS Project Wiki
http://www29.atwiki.jp/vfcs/
ここから先は予備
DFTとFFT
FFT
16
8
10000000000
8
64
24
1000000000
16
256
64
100000000
32
1024
160
10000000
64
4096
384
1000000
128
16384
896
100000
256
65536
2048
10000
512
262144
4608
1000
1024
1048576
10240
100
2048
4194304
22528
10
4096
16777216
49152
1
8192
67108864
106496
16384
268435456
229376
32768
1073741824
491520
65536
4294967296
1048576
DFT
FFT
20
48
81
92
32
76
8
4
51
2
2
12
8
4
2
2
32
DFT
8
N
ボーカル音声スペクトル抽出
原曲スペクトル-伴奏スペクトル
⇒ボーカル音声スペクトル
300
スコアブックと
照らし合わせて
成功しているか
確認した
250
200
150
100
50
0
-50
-100
-150
-200
-250
0
200
400
600
800
1000
1200
1400
1600
1800
比較アルゴリズム改善
音階判定
音階変化判定
声量判定
抑揚判定
+
ビブラート判定 New!
リズム判定 New!
ビブラートに関して
波形データ同士で比較
失敗
ビブラートは波形で検出するもの
だが,波形の抽出ができていない
ため,現状ではビブラートを扱う
ことができない
ボーカルキャンセリグ改善
原曲(波形データ)
FFT,ハートレー変換
を利用
周波数スペクトル
原曲波形と周波数スペクトルの両方
のアプローチにより精度向上
ボーカル音声波形抽出失敗理由
定義
L=LV+LB
R=RV+RB
LV=RV
LB-RB⇒伴奏
L-(LB-RB)=LV+LB-LB+RB
=LV+RB⇒伴奏が残ってしまう
WAVEファイル仕様
データ形式 : 1 (1 = PCM)
チャンネル数 : 1 (モノラル)
サンプリング周波数 : 44100 [Hz]
バイト数 / 秒 : 88200 [bytes/sec]
バイト数 × チャンネル数 : 2 [bytes]
ビット数 / サンプル : 16 [bits/sample]
声域とBPFの閾値
声域
歌声の声域 : 約70 ~ 1500 [Hz]
BPFの閾値
BPFの閾値: 150 ~ 2000 [Hz]