自動伴奏產生器
Motivation My Song http://research.microsoft.com/enus/um/people/da n/mysong/ 00:55:01:41 my_song基本功能說明 02:35~02:41 每小節偵測和弦的缺點一 03:02~03:26 每小節偵測和弦的缺點二
Demo 主弦律單調的情況: 用rap的形式:
Flow Chart Set Beat Range from 60 to 180 bpm Set Key DO – RE – MI - ... - DO Pitch Tracking Output Pitch of each Measure Compute Appropriate Accompaniment Output the Final Wave File
Set Beat / Set Key Bt = SET_BEAT( bpm ) play( Bt ) Key = mean( DIFF mod 12 ) Where DIFF = ([DO* RE* MI* … DO*] - [DO RE MI … DO])
Pitch Tracking Per 1/4 beat determine a pitch Output like this : measure[1 .. N] { int pitch[16]; /* pitch[i] ∈ Z12 ∩ {-1} */ }
Pitch Tracking(Misdetection)
Compute Appropriate Accompaniment Preprocessing: 收集midi,並且將該midi 1.速度調成一致 2.和弦調成一致 3.刪除用不到的小節
Compute Appropriate Accompaniment 1.對整個人聲檔進行投票,決定大小調與前奏尾奏 2.分析人聲檔,決定適當的和弦 每個和弦會區分適合這個和弦的音、普通、跟不適合這個和弦的音。 最後每組和弦pattern會替這個人聲檔打個是否適合的分數。 取最高分的。 3.將處理過的midi按照上個步驟得到的和弦pattern作轉換, 得到「依照和弦pattern演奏的伴奏」。最後再與人聲一起播放即可。
Future Work 1.使用者事前可以不用對midi作預先處理 2.中間的介面要可以讓使用者更換和弦pattern 3.事後產生的聲音檔可以更接近mp3音質