音高檢測算法
編輯音高檢測算法(PDA)是一種旨在估計準周期或振蕩信號的音高或基本頻率的算法,通常是語音的數字錄音或音符或音調。這可以在時域、頻域或兩者中進行。PDA用于各種場合(如語音學、音樂信息檢索、語音編碼、音樂表演系統),因此對算法的要求可能不同。目前還沒有一個理想的PDA,所以存在各種算法,大多數算法大致分為以下幾類。PDA通常估計準周期性信號的周期,然后將該值倒置以得到頻率。
一般方法
編輯一個簡單的方法是測量信號的零交叉點之間的距離(即零交叉率)。然而,這對于由不同周期的多個正弦波組成的復雜波形或噪聲數據來說效果并不好。然而,在有些情況下,過零率可以是一個有用的衡量標準,例如在一些假定有單一信號源的語音應用中。該算法的簡單性使其實現起來很便宜。更復雜的方法是將信號的片段與其他片段進行比較,通過試驗期的偏移來尋找匹配。AMDF(平均幅度差值函數)、ASMDF(平均平方平均差值函數)和其他類似的自相關算法就是這樣工作的。這些算法對于高度周期性的信號可以給出相當準確的結果。然而,它們有錯誤的檢測問題(通常是倍頻誤差),有時會嚴重影響到噪聲信號(取決于實現方式),而且--在它們的基本實現方式中--不能很好地處理多聲道聲音(涉及不同音高的多個音符)。目前的時域音高檢測器算法傾向于在上述基本方法的基礎上,進行額外的改進,使其性能更符合人類對音高的評估。
頻域方法
編輯頻域、復音檢測是可能的,通常利用周期圖將信號轉換為頻譜的估計。這需要更多的處理能力,因為所需的精度增加,盡管眾所周知的FFT的效率,周期圖算法的一個關鍵部分,使它適合于許多目的的效率。流行的頻域算法包括:諧波乘積譜;epstral分析和xxx似然,它試圖將頻域特征與預先定義的頻率圖相匹配(對檢測固定調諧樂器的音高很有用);以及檢測由諧波序列引起的峰值。為了改進從離散傅里葉頻譜得到的音高估計,可以使用頻譜重新分配(基于相位)或Grandke插值(基于幅度)等技術,以超越FFT箱所提供的精度。
頻譜/時間方法
編輯頻譜/時間音高檢測算法,例如YAAPT音高跟蹤算法,是基于使用自相關函數(如歸一化交叉相關)的時域處理和使用頻譜信息的頻域處理的組合來識別音高。然后,在從這兩個領域估計的候選者中,可以使用動態編程計算出最終的音高軌跡。這些方法的優點是,一個域的跟蹤誤差可以通過另一個域的處理來減少。
語音音高檢測
編輯語音的基本頻率可以從低音調聲音的40赫茲到高音調聲音的600赫茲不等。自相關方法需要至少兩個音高周期來檢測音高。這意味著,為了檢測40赫茲的基本頻率,必須分析至少50毫秒(ms)的語音信號。然而,在50毫秒期間,具有較高基頻的語音不一定在整個窗口內具有相同的基頻。
內容由匿名用戶提供,本內容不代表www.gelinmeiz.com立場,內容投訴舉報請聯系www.gelinmeiz.com客服。如若轉載,請注明出處:http://www.gelinmeiz.com/168094/