專利名稱:數(shù)字音頻信號的連續(xù)可變時間標度改變技術的制作方法
技術領域:
本發(fā)明是關于數(shù)字音頻信號處理。更特別地,它關于使用經(jīng)改進同步化重疊及增加(SOLA)算法(synchronized overlap-and-add algorithm)來不改變音調地改進音頻信號的輸出率的方法。
背景技術:
多種應用需要改進音頻信號的播放率。落于時間標度改變(TSM)的范圍內的技術包括壓縮(即,加速)和解壓(即,減緩)兩者。音頻壓縮應用包括加速無線電脫口秀來允許較多廣告,允許使用者或碟片操作員來針對舞曲而選擇節(jié)拍,加速口述材料的播放率,加速音頻信息的播放率,且把音頻和視頻播放率同步化。不管輸入信號(語言、音樂、或經(jīng)組合語言和音樂)的類型,TSM的目標是保留輸入信號的音調,同時改變其節(jié)拍。明顯地,增加或減少播放率需要改變音調。
同步化重疊及增加技術于1985年由S.Roucos和A.M.Wilgus在IEEE國際論集ASSP的“針對語言的高品質時間標度改變”第493-496頁中被介紹,且仍是許多新近發(fā)展技術的基礎。該方法被示出在圖1A中。通過數(shù)字采樣模擬音頻信號來獲得一系列時域樣本x(t)而獲得數(shù)字輸入信號10。輸入信號10被分成重疊的窗口、塊、或幀12,各包括N個樣本且彼此以Sa個樣本(“a”是用于分析)來偏離。經(jīng)縮放輸出14包括相同重疊窗口的樣本y(t),且彼此以不同數(shù)目的樣本Ss(“s”是用于合成化)來偏移。通過以與在輸入10中不同的時間滯后(lag)來對輸入窗口12進行連續(xù)地重疊來產(chǎn)生輸出14。時間標度比率α被界定為Sa/Ss;針對壓縮α>1,且針對解壓α<1。說明于圖1B中如線性交叉隱現(xiàn)的加權函數(shù)被用來組合經(jīng)重疊窗口。為了把輸入塊16與輸出塊18重疊,在輸入塊16的經(jīng)重疊區(qū)中的樣本由線性增加的函數(shù)來縮放,而輸出塊18中的樣本由線性減少的函數(shù)來縮放,以產(chǎn)生新的輸出信號20。請注意到SOLA方法以不改變個別窗口的速率地來改變信號的整體速率,由此保留音調。
為了把所產(chǎn)生的信號14的品質最大化,幀不以預定分開距離重疊。實際偏移量典型地在給定范圍內被選擇,來把兩經(jīng)重疊幀間的相似度最大化,以確定最優(yōu)聲音品質。對于在預定搜尋范圍內的各潛在重疊偏移量,相似度被計算,且所選擇偏移量是有相似度的最高數(shù)值。例如,可通過相乘在各偏移量的x(t)和y(t)來計算兩幀間的相關函數(shù)。此技術產(chǎn)生高品質的信號(即,對聽者聽起來自然)、及高可理解性(即,可由聽者容易地了解)?,F(xiàn)有技術中已知多種品質和可理解性測量,如總諧音扭曲(THD)。
基本SOLA架構允許在窗口大小選擇、相似度、計算方法、和針對重疊偏移量的搜尋范圍上的多種改進。授予Vogten等人的美國專利第5,479,564號公開根據(jù)局部音調周期來選擇輸入信號的窗口的方法。已知為WSOLA-SD的依賴講話者方法在授予Satyamurti等人的美國專利第5,828,995號中被公開。WSLOA-SD根據(jù)音調周期來選擇輸入信號的幀大小。這些和其他依賴音調方法的缺點是它們只能使用于語言信號,而不能用于音樂。再者,它們需要判定信號是語音或非語音的額外步驟,其可隨信號的不同部分而改變,且決定語音信號的音調。語言信號的音調經(jīng)常不恒定,以多個基礎音調周期來改變。對于所產(chǎn)生音調的估計需要人工的平滑來在該多個周期間連續(xù)地移動,使人工信號加入最后的輸出信號。
典型上,根據(jù)所計算相似度來選擇在現(xiàn)有輸出幀內的、對于新的輸入幀進行重疊的位置。然而,一些SOLA方法使用相似度來選擇輸入塊的重疊位置。授予Hejna,Jr.等人的美國專利第5,175,769號公開用來選擇在預定范圍內的輸入塊的位置的方法。Hejna,Jr.的方法需要幾個與原來SOLA方法不同的計算步驟。然而,它引入完全跳過輸入信號的部分的可能性,特別是在高壓縮比率(即,α≥2)。描述在都授予Suzuki等人的美國專利第5,341,432號和第5,630,013號中的語言速率改變方法判定兩連續(xù)輸入幀的最優(yōu)重疊,然后被重疊來產(chǎn)生輸出信號。在輸入幀被連續(xù)重疊到輸出幀上的傳統(tǒng)SOLA方法中,各輸出幀可為所有前面經(jīng)重疊幀的總和。然而,用Suzuki等人的方法,輸入幀只彼此重疊,防礙多個幀的重疊。在有些情形中,此受限的重疊可能減少所產(chǎn)生信號的品質。因此選擇在輸出信號內的偏移量是最可靠方法,特別是高壓縮比率。
方法的計算成本隨著輸入采樣速率和壓縮比率而改變。高采樣速率因其產(chǎn)生高品質的輸出信號而被期望。另外,高壓縮比率需要輸入樣本的高處理率。例如,CD品質音頻對應于44.1kHz采樣速率;在α=4的壓縮比率,每秒必須處理大約176,000個輸入樣本來產(chǎn)生CD品質輸出。為了以該輸入采樣速率和高壓縮比率來處理信號,方法的計算效率很重要。計算在重疊輸入和輸出樣本塊間的相似度是算法則的最需要的計算部分。通過針對兩塊的每一可能偏移量來相乘輸入和輸出塊的對應樣本,來計算為潛在相似度的相關函數(shù)。對于含有N個樣本的輸入幀,需要N2個乘法運算。對于在1000等級上的N的高輸入采樣速率,針對各輸入幀來實施N2個運算是行不通的。
結果,SOLA上的趨勢是簡化計算來縮減所實施運算的次數(shù)。一個解決方法是使用絕對誤差計量,其只需要減法運算,而非需要乘法運算的相關函數(shù)。授予Bialick的美國專利第4,864,620號公開使用平均幅度差值函數(shù)(AMDF)來選擇最優(yōu)重疊的方法。AMDF把針對各可能偏移量的輸入和輸出樣本間的差值的絕對值平均,且選擇有最低數(shù)據(jù)值的偏移量。授予Lin等人的美國專利第5,832,442號公開使用在重疊中的相等平均絕對誤差的方法。當絕對誤差方法明顯需要較少計算時,它們不如在定位最優(yōu)偏移量中所接受的相關函數(shù)那樣可靠和易于接受。正確度的程度因計算效率而犧牲。
現(xiàn)有SOLA方法的絕大多數(shù)通過選擇用來判定最優(yōu)重疊偏移量的受限的搜尋范圍來縮減復雜度。例如,授予Satyamurti的美國專利第5,806,023號的公開方法,其中最優(yōu)重疊被選擇于預定搜尋范圍內。上述的Bialick專利使用輸入信號音調周期來判定搜尋范圍。在可從WWW.cs.ust.hk/~rren/sound-tech/RSM_Paper_Long.htm獲得的“用于音波信號的時間標度改變的邊緣檢測方法”中,介紹一種經(jīng)改進SOLA技術。仍然,Ren的方法使用小型搜尋窗口(在此情形中小于輸入幀的幅度的等級),來找出最優(yōu)偏移量。它也使用邊緣檢測且因此特定于信號的類型,針對不同類型信號來產(chǎn)生不同重疊。
限定最優(yōu)重疊偏移量的搜尋范圍的現(xiàn)有技術方法在圖2的例子中被說明。在輸出塊24y(t)內與輸入塊22x(t)重疊的最優(yōu)位置被找出。輸出塊y(t)具有S0+H+L個樣本的長度,且輸入塊x(t)具有S0個樣本的長度。在此情形中,計算相似度的搜尋范圍是H+L個樣本;即,潛在滯后值的范圍是等于被比較的兩樣本塊間的長度上的差值。重疊滯后的三個可能值被說明-L、O、和+H。在此方法中,相似度26在其計算的滯后值的范圍內具有矩形包絡形狀。此意味在平均跨越所有可能信號時,相似度的最大值的位置在被估計的滯后值的范圍內具有相等或平坦的機率分布。此特性不依賴所使用相似度的類型,而是針對所有潛在滯后值而比較來自兩段落的相等數(shù)目樣本的結果。
通過限制搜尋范圍,所有現(xiàn)有技術在快速改變或復雜混合信號期間容易不正確地預測重疊偏移量。另外,通過預定相對窄的搜尋范圍,這些方法本質上把壓縮比率固定于很接近已知值。因此,它們無法處理以高改變率來采樣的輸入信號。一般上,它們最優(yōu)用于相當長幀的小重疊,其不能產(chǎn)生高(即,α≥2)壓縮比率。
因此,所需要的是計算上行得通、高正確度、且適用于廣范圍音頻信號的一種經(jīng)改進時間標度改變方法。
發(fā)明內容
據(jù)此,本發(fā)明的主要目的是提供用來不改變其音調地改變音頻信號的播放率的時間標度改變方法。
本發(fā)明的進一步目的是提供可處理語言、音樂、或經(jīng)組合語言和音樂信號的時間標度改變方法。
本發(fā)明的另外目的是提供從以可變化、非實時速率的輸入樣本來產(chǎn)生恒定、實時速率輸出的時間標度改變方法。
本發(fā)明的另一目的是提供可提供由所需輸出率和可變化輸入率來決定的可改變壓縮比率的時間標度改變方法。
本發(fā)明的再一目的是提供一種時間標度改變方法,其在維持計算效率時,不只在特定窄小搜尋范圍內,而可在輸出幀的整個范圍來重疊輸入和輸出幀。連續(xù)幀甚至可插于前面幀后,允許于高壓縮比率的高品質輸出。
本發(fā)明的又一目的是提供使用相關函數(shù)來判定經(jīng)重疊的輸入和輸出幀的最優(yōu)偏移量的時間標度改變方法。相關函數(shù)是熟知的最大相似度估算器,不像絕對誤差計量方法。
最后,本發(fā)明的另一目的是提供無需判定音調或其他信號特征的時間標度改變方法。
這些目的和優(yōu)點可由一種方法來達到,其是針對包括輸入樣本的數(shù)字音頻輸入信號的時間標度改變,來形成包括輸出樣本的數(shù)字音頻輸出信號。該方法包括下列步驟選擇N/2個輸入樣本的輸入塊;選擇N/2個輸出樣本的輸出塊;判定用來把輸入塊的起頭與輸出塊的起頭重疊的最優(yōu)偏移量T;及重疊該塊,使輸入塊起頭與輸出塊起頭偏移T個樣本。T具有-N/2至N/2的可能范圍,且是通過采用N/2個輸入樣本和N/2個輸出樣本的離散頻率變換計算,然后計算其相關函數(shù)。相關函數(shù)的離散頻率反變換的最大值發(fā)生于偏移量t=T的數(shù)值。頻率變換優(yōu)選是離散傅立葉變換,但它可為諸如離散余弦變換、離散正弦變換、離散哈特雷(Hartley)變換、或根據(jù)維夫雷特式(Wavelet)函數(shù)的離散變換的任何其他頻率變換。優(yōu)選地,在實施頻率變換前N/2個零被附于輸入樣本和附于輸出樣本來防止人工卷繞(wrap-around artifacts)。優(yōu)選地,相關函數(shù)是Z(k)=X*(k)·Y(k),其中k=0,…,N/2-1,其中X*(k)是經(jīng)頻率變換輸入樣本的共軛復數(shù),Y(k)是經(jīng)頻率變換輸出樣本,且Z(k)是其復數(shù)乘積。優(yōu)選地,在實施反轉頻率變換前把Z(k)標稱化(normalize)。
輸出信號優(yōu)選為恒定、實時速率的輸出,其決定輸出塊的起頭的選擇。輸入信號可以可改變速率來獲得。優(yōu)選地,獨立于輸入信號的音調周期來選擇輸入塊大小和位置。通過施用優(yōu)選為線性函數(shù)的加權函數(shù)來重疊輸入塊和輸出塊。
本發(fā)明也提供一種方法,是針對如立體信號的多聲道數(shù)字音頻輸入信號的時間標度改變,來形成多聲道數(shù)字音頻輸出信號。該方法包括下列步驟獲得個別輸入聲道;獨立地改進各輸入聲道;且組合該輸出聲道來形成該多聲道數(shù)字音頻輸出信號??捎砂讯嗦暤垒斎胄盘柗蛛x成個別輸入聲道、或由從單聲道輸入信號來產(chǎn)生多個輸入聲道,而獲得個別聲道。根據(jù)針對數(shù)字輸入信號的時間標度改變的上述方法來獨立地改進各輸入聲道。在不同音頻聲道的經(jīng)重疊塊間沒有相關;輸入聲道的對應樣本不再對應于輸出信號。然而,聽者可將感知到不同聲道整合來適應對應性的喪失。
也提供的是一種數(shù)字信號處理器,其包括配置來實施用來實施上述的時間標度改變方法的方法步驟的處理單元。
圖1A說明現(xiàn)有技術的同步化重疊及增加(SOLA)方法;圖1B說明用來把兩樣本塊重疊的現(xiàn)有技術的線性交叉隱現(xiàn);圖2說明通過現(xiàn)有技術相關性來找出用來把輸出塊與輸入塊合并的最優(yōu)重疊滯后;
圖3是用來實施本發(fā)明的方法的系統(tǒng)的構造圖;圖4說明本發(fā)明的輸入緩沖器、縮放緩沖器、和輸出緩沖器;圖5是本發(fā)明的時間標度改變方法的方框圖;圖6A-6D說明圖5的時間標度改變方法的迭代;圖7A-7C說明圖5的時間標度改變方法的后續(xù)迭代;圖8是用來計算最優(yōu)重疊滯后T的本發(fā)明的方法的方框圖;圖9是用于多聲道音頻信號的時間標度改變的本發(fā)明的方法的方框圖;圖10是通過產(chǎn)生多個聲道而對于單聲道音頻信號的時間標度改變的本發(fā)明的方法的方框圖;及圖11說明用來從單聲道產(chǎn)生多個聲道的方法。
具體實施例方式
雖然下面詳細描述包括用來說明的許多特點,任何本領域的技術人員將明確針對下面描述的許多變化和改變是在發(fā)明的范圍內。據(jù)此,發(fā)明的下列優(yōu)選實施例被設定不損失權利要求的一般性、也不對權利要求加以限制。
本發(fā)明使用經(jīng)改進的同步化重疊及增加(SOLA)技術來提供針對數(shù)字音頻信號的時間標度改變的方法。此方法在計算上是有效的;可適用于包括語言、音樂、和經(jīng)組合語言與音樂的所有類型的音頻信號;且能夠在高壓縮比率(現(xiàn)有技術方法有問題的情況下)來處理復雜或快速改變信號。此方法特別適于處理具有可變輸入率的輸入信號來產(chǎn)生有恒定速率的輸出信號,因此提供連續(xù)改變的壓縮比率α。
圖3中說明用來實施本發(fā)明的系統(tǒng)30。由數(shù)字信號處理器34來實施本發(fā)明的方法。數(shù)字信號處理器34是技術中已知的傳統(tǒng)數(shù)字信號處理器,被編程來實施本發(fā)明的方法。它包括處理單元、隨即存儲器(RAM)、和傳輸數(shù)據(jù)的總線接口。數(shù)字信號處理器34接收來自模數(shù)變換器(ADC)32的數(shù)字音頻信號,其在離散的時刻采樣模擬音頻信號,以產(chǎn)生數(shù)字音頻信號。本發(fā)明能夠用寬廣范圍的采樣速率來處理信號。例如,本發(fā)明處理的典型信號包括有8kHz采樣速率的電話信號、及有44.1kHz采樣速率的光碟(CD)品質信號。請注意到較高采樣速率產(chǎn)生較高品質音頻信號。樣本被ADC 32以特定且不改變的采樣速率來采用。該速率可由輸入到ADC 32且效果上恒定的壁鐘(wall clock)來設定。ADC 32典型上需要低抖動(即,恒定速率)時鐘輸入。在以變化的或未知率或不實時的速率(即,從原來記錄速度而改變的)輸入數(shù)字信號處理器34前,數(shù)字音頻信號可儲存在記憶體中,被記錄、傳輸、或在數(shù)據(jù)處理器33中被操作。輸入率參照到達數(shù)字信號處理器34每秒采樣的次數(shù),而與固定的采樣速率無關。數(shù)字信號處理器34實施輸入信號的時間標度壓縮,來產(chǎn)生預定、優(yōu)選恒定且實時速率的數(shù)字輸出信號。在時間標度壓縮中,給定量的輸入數(shù)據(jù)以較小時間周期來輸出。例如,在α=2的壓縮比率,花4分鐘來播放的輸入信號被復制于2分鐘中。請注意到在α=4,產(chǎn)生CD品質的經(jīng)壓縮音頻信號(即,44.1kHz采樣速率)需要每秒來處理176,400個輸入樣本。此高處理率在現(xiàn)有技術方法中不可行時可用使用本發(fā)明的100MIPS(每秒百萬指令)信號處理器來輕易達成。所產(chǎn)生數(shù)字輸出信號然后送到數(shù)模變換器(DAC)36,來以和原來信號相同的音調產(chǎn)生模擬信號,但以較短時間期間來再現(xiàn)。DAC36優(yōu)選也需要低抖動時鐘輸入且因此輸出恒定速率的信號。
圖4說明數(shù)字信號處理器34的三個環(huán)形緩沖器,其儲存輸入、輸出、和經(jīng)縮放的音頻信號。緩沖器被說明為矩形,但意圖代表環(huán)形緩沖器。即,矩形的兩端卷繞來彼此連結。沿著緩沖器的水平距離代表時間。在所有緩沖器中的距離都用取用有樣本的離散時刻來測量,等于采樣的次數(shù)。所有三個緩沖器在長度上可改變。因為緩沖器是環(huán)形,故指針被用來指示輸入、輸出、和處理點。在所有三個緩沖器中,指針在樣本進入、輸出、和被處理時移到右側。緩沖器指針的移動到右側(即,在順時方向上)參照為推前指針(advancethe pointers)。
在考慮方法的整個細節(jié)前,檢查緩沖器本身的內容是有用的。輸入緩沖器40具有兩指針,輸入指針42和程序指針44。例如,新的輸入音頻樣本從ADC 32被接收,且儲存在輸入緩沖器40中。樣本被插于輸入指針42后;即,輸入指針42在加上新樣本時被推前。新輸入樣本通過中斷服務程序來加到輸入緩沖器40。程序指針44和輸入指針42彼此獨立地移動,在兩指針間的距離46上引起改變。當新樣本加到輸入緩沖器40時,距離46增加。當樣本被處理時,距離46減少。
縮放緩沖器50儲存經(jīng)組合來形成經(jīng)縮放輸出信號的樣本。縮放緩沖器頭指針52找出與輸入樣本重疊的輸出樣本。如下進一步解說,針對重疊滯后的搜尋范圍被設置在以縮放緩沖器頭指針52為中心處。尾指針54指出要從縮放緩沖器50去除的樣本。當尾指針54推前超越信號時,它們自縮放緩沖器50退出。尾指針54和頭指針52以固定距離56分開;當縮放緩沖器尾指針54推前時,縮放緩沖器頭指針52以等量來推前。
自縮放緩沖器50去除的樣本被拷貝到輸出緩沖器60的輸出緩沖器頭指針62處,其前進來保持位于所有新拷貝樣本的右側。在輸出緩沖器尾指針64左側的樣本由中斷服務程序來輸出例如到DAC36。輸出緩沖器尾指針64的移動由所選擇輸出率來決定。當輸出緩沖器尾指針64沿信號連續(xù)前進時,它們自輸出緩沖器60輸出。相對地,頭指針62以等于從頭指針62上次推前而由尾指針64推前的樣本數(shù)目的量來周期地前進。結果,緊接于頭指針62前進后,尾指針64和頭指針62以預定距離66來分開。然而,在頭指針62前進中,距離66減少。輸出緩沖器尾指針64的移動因此控制輸出緩沖器頭指針62、縮放尾指針54、和縮放緩沖器頭指針52的周期性推進。
在替換實施例中,從縮放緩沖器50直接去除輸出樣本。在此情形中,距離56不固定,且尾指針54繼續(xù)地前進。頭指針52只周期地、以等于自從頭指針52上次推前而由尾指針54推進的樣本數(shù)目的距離推進。此替換實施例在信號無需進一步處理時優(yōu)選。在上述情形中,其中所有三個緩沖器都被使用,可在實施時間標度改變后在縮放緩沖器樣本上實施進一步處理。已進一步處理的樣本在輸出前被拷貝到輸出緩沖器60中。
本發(fā)明的方法的目的是壓縮在輸入緩沖器40中的樣本來產(chǎn)生輸出緩沖器60的經(jīng)壓縮信號。通過于導致最高可能信號品質、同時限制所期望輸出率的位置來把輸入樣本與輸出樣本重疊而實施壓縮。
圖5是針對數(shù)字音頻信號的時間壓縮的本發(fā)明的整體方法70的方框圖。方法70將以可變化的和非實時的速率輸入的數(shù)字音頻信號72變換成為恒定、實時速率的數(shù)字輸出信號94。圖6A-6D說明相關緩沖器位置和對應于方法70的改變。圖6A-6D的緩沖器顯示有長度N/2個樣本的幀或塊。當然,該區(qū)分是任意的,且不對應于信號的音調周期或任何特性。
通過同時考慮圖5和6A-6D可最優(yōu)了解此方法。在第一步驟74中,輸入樣本被保存到輸入緩沖器100中的其輸入指針102處,其然后被推前。例如,包括N/2個樣本的塊104已最近保存到輸入緩沖器100中。其次,在步驟75,程序指針103前面的N個樣本從輸入緩沖器100拷貝到縮放緩沖器108的縮放緩沖器頭指針112處,而不推進程序指針103。需要這些步驟來把緩沖器和方法初始化;圖6A說明在業(yè)已發(fā)生處理迭代后的緩沖器。在步驟76,方法等待輸入指針102指向程序指針103前面的至少3N/2個樣本處。在圖6A中,輸入指針102是5N/2個樣本超前程序指針103。當此情況被滿足時,在步驟78,超前程序指針103、被標示106的N/2個樣本被拷貝到x(t)緩沖器中。同樣地,在步驟80,超前縮放緩沖器108的頭指針112的N/2個樣本(標示110)被拷貝到y(tǒng)(t)緩沖器中。在圖6B中說明x(t)和y(t)。使用如詳述于下的如基于相關函數(shù)的離散傅立葉變換一樣的基于相關函數(shù)的離散頻率變換,在步驟82來找出在x(t)樣本106的起頭和y(t)樣本110的起頭間的最優(yōu)重疊滯后T。T具有-N/2到+N/2-1的可能范圍;圖6B中說明三個可能滯后。在T=-N/2的滯后,樣本106被重疊在樣本110之后。在T=0的滯后,樣本106直接重疊在樣本110上面。在+N/2-1的滯后,樣本106被重疊超前樣本110。請注意到滯后T的所有中間整數(shù)值都可能。
如圖6C中顯示的,針對此例的最優(yōu)重疊是T=0,由標示113的大箭頭指出的,用從縮放緩沖器頭指針112的位置測量的T。即,從縮放緩沖器頭指針112的位置開始,樣本106直接重疊在樣本110上面。在步驟84中使用線性交叉隱現(xiàn)(linear cross fade)把兩樣本塊106和110合并來獲得被求和的經(jīng)加權樣本114和116。緊隨經(jīng)合并樣本之后,在步驟86,N個額外輸入緩沖器樣本118被拷貝到經(jīng)改進的縮放緩沖器109。當這些額外樣本118被拷貝時,原來在縮放緩沖器中的樣本被覆蓋。結果的縮放緩沖器124被顯示在圖6D中。
縮放緩沖器尾指針120、縮放緩沖器頭指針112、和輸出緩沖器頭指針129(圖6D)被推進,且在縮放緩沖器尾指針120之后的樣本在步驟88被拷貝到輸出緩沖器。輸入緩沖器程序指針103在步驟90被推進N/2個樣本,且方法回到步驟76。在連續(xù)發(fā)生而不只是在處理迭代的末端的步驟92,在輸出緩沖器尾指針127處的樣本被輸出,并推進輸出緩沖器尾指針127,來以恒定實時速率產(chǎn)生數(shù)字音頻信號94。此推進決定輸出緩沖器頭指針129、縮放緩沖器尾指針120、和縮放緩沖器頭指針112在步驟88的推進量。三個指針都以輸出緩沖器尾指針127從處理迭代開始已推進的量來推進。由此,用于控制輸出緩沖器尾指針127的推進的所選擇的輸出率通過縮放緩沖器頭指針112的推進,針對后續(xù)迭代有效地決定樣本y(t)的起頭和縮放緩沖器中的搜尋范圍的位置。結果的輸入緩沖器122、縮放緩沖器124、和輸出緩沖器126被說明在圖6D中。請注意到針對此特定處理迭代,輸出信號尚未壓縮。
請再參考圖6B,注意到所使用相關函數(shù)的特定特性導致針對在N個不同偏移量或滯后值T的范圍中,對于在x(t)和y(t)間的相似度的評估。從這些N個潛在值來選出最優(yōu)偏移量。即,可能滯后的范圍是等于兩輸入塊106和110的長度的總和。請注意到這與具有等于兩輸入塊的長度間的差值的偏移搜尋范圍的現(xiàn)有技術方法不同。
從本方法中使用的相關函數(shù)所得的額外特性是在潛在滯后值的范圍中的相似度的三角形包絡130。仍然,這與對于相似度有矩形形狀的現(xiàn)有技術方法有直接對照。在本發(fā)明中,當在所有可能信號范圍來平均時,相似度的最大值的位置具有中央最大值及在滯后值范圍的任一端下降到零的尾緣的概率分布。此三角形狀有重要優(yōu)點,特別是在較高時間壓縮比率。作為此形狀的結果,輸入幀的連續(xù)迭代可具有彼此重疊的大偏移量,且仍具有不同的中央最大值。在有矩形重疊的現(xiàn)有技術方法中,連續(xù)迭代在維持不同中心時無法具有這樣的大且高重疊的偏移量。結果,現(xiàn)有技術方法無法如在較低比率一樣在高壓縮比率來良好實施。
本發(fā)明的重疊連續(xù)迭代的此能力被說明在圖7A-7C中,其顯示在圖6D的重疊后實施的后續(xù)迭代。跟隨程序指針103的N/2個樣本(標示134)被拷貝到x(t)緩沖器。跟隨縮放緩沖器頭指針112的N/2個樣本(標示136)被拷貝到y(tǒng)(t)緩沖器。從由三角形132說明的滯后值的潛在范圍,最優(yōu)值被找到,由圖7A中的箭頭138的位置說明的。箭頭138顯示縮放緩沖器頭指針112加上偏移量T的位置。跟隨箭頭138的N/2個縮放緩沖器樣本被加權來形成如圖7A中顯示地與經(jīng)加權的N/2個輸入樣本140合并的樣本139。直接跟隨經(jīng)合并樣本,額外N個樣本142被拷貝到縮放緩沖器。
在縮放緩沖器尾120和頭112指針和程序指針103推進后,結果的輸入緩沖器150和縮放緩沖器152被說明在圖7B中。其次決定樣本154和156的最優(yōu)重疊滯后。在此情形中,如圖7C中說明的,T具有負值使得輸入樣本154被合并于縮放緩沖器頭指針112后面。在箭頭158,頭指針加上偏移量T,使用線性交叉隱現(xiàn)來把經(jīng)加權N/2個輸入樣本160與經(jīng)加權縮放緩沖器樣本162重疊。然后將額外N個樣本164拷貝到縮放緩沖器中。把圖7C與圖6A比較顯現(xiàn)緩沖器100中的原來輸入信號的高度壓縮,來形成結果將最終被輸出該信號的最后縮放緩沖器。圖7C中說明的方法的迭代也顯示后續(xù)迭代如何與前面偏移滯后來重疊。圖7C也說明在縮放緩沖器頭指針和縮放緩沖器尾指針間的距離必須至少為N/2,使得從縮放緩沖器去除的樣本可完全被處理。
本發(fā)明因用來計算輸入樣本x(t)和輸出樣本y(t)間的最優(yōu)重疊滯后或偏移量T的特定方法而享用許多優(yōu)點。圖8是方法170的方框圖。在本發(fā)明中,通過計算在兩樣本塊間在N個可能偏移值的相關函數(shù)、且然后判定產(chǎn)生最高相關函數(shù)的T值來完成T的計算。不像具有較小可能范圍的現(xiàn)有技術方法,可能滯后值的范圍是等于兩樣本塊的長度的總和。
方法170以步驟190和192開始。在步驟190,N/2個樣本自直接跟隨程序指針的輸入緩沖器被拷貝到x(t),其中t=0,…,N/2-1。在步驟192,N/2個樣本自直接跟隨縮放緩沖器頭指針的縮放緩沖器被拷貝到y(tǒng)(t),其中t=0,…,N/2-1。在步驟194和196,N/2個零樣本被附于x(t)和y(t)兩樣本塊來產(chǎn)生包括N個樣本的樣本塊。在步驟198和200,在N個樣本塊的x(t)和y(t)上實施如傅立葉變換的離散頻率變換,來獲得N/2個頻域復數(shù)對組X(k)和Y(k),其中t=0,…,N/2-1。在步驟202獲得X(k)的共軛復數(shù)X*(k),且在步驟204,實施X*(k)和Y(k)間的復數(shù)乘法來獲得N/2個復數(shù)對組的相關函數(shù)Z(k)。在步驟206通過找出Z(k)的實部和虛部分量的最大絕對幅值、且然后通過用等于由實際最大值除標稱最大值的因數(shù)來縮放Z(k),而把Z(k)選擇地重新標稱化以獲得Z′(k)。標稱(nominial)最大值是預定數(shù)目,例如針對變量類型的允許范圍的分數(shù)。在步驟208,在Z′(k)上實施實數(shù)離散頻率反變換來獲得相關函數(shù)z(t)的N個實數(shù)值,其中t=0,…,N-1。在步驟210,最優(yōu)偏移量T被選擇以使針對所有的t=0,…,N-1,使z(T)≥z(t)。若T≥N/2,則在步驟212從T值減掉N使得T的最終值的范圍從-N/2到+N/2。最后在步驟214,T值被返回。
本發(fā)明的方法可使用任何N值,其典型上隨著采樣速率而改變。在高采樣速率,在給定時間期間內必須處理更多樣本,需要N的較高值。例如,為了產(chǎn)生有44.1kHz取要率的CD品質音頻,N的適當值為1024。優(yōu)選地,N值為2的冪級,其針對頻率變換算法擇則最有效率。然而,其他N值可被處理。
優(yōu)選地,本發(fā)明使用離散傅立葉變換和離散傅立葉反變換來計算和估算相關函數(shù)。然而,現(xiàn)有技術中已知的任何其他離散頻率變換和對應的離散頻率反變換是在本發(fā)明的范圍內。例如,適當?shù)淖儞Q包括離散余弦變換(DCT)、離散正弦變換(DST)、離散哈特雷變換(DHT)、和根據(jù)維夫雷特函數(shù)的變換。所有這些變換都有反離散變換,其也為本發(fā)明所需要。
方法170等效于計算在各包括N個樣本的兩組樣本間的相關函數(shù),如在1992年牛津大學學報的Press等人的C中的數(shù)量配方(Numerical Recipes)第545-546頁中描述的。為了不使用傅立葉變換來計算該函數(shù),將需要在各可能時間滯后處來計算總和Σi=0N-1[x(ti)y(ti)]]]>一個O(N2運算。以目前可用的信號處理器,針對各經(jīng)處理幀來實施N2個運算在成本上不可行,特別是在高采樣速率。優(yōu)選地,使用快速傅立葉變換(FFT)算法來計算步驟198和200的傅立葉變換,其細節(jié)可在1992年牛津大學學報的Press等人的C中的數(shù)量配方中找到。在N個樣本上實施FFT需要Nlog2N次計算,以目前數(shù)字信號處理器即使在高采樣速率仍為可行。例如,對于N=1024,N2=1,048,576,但Nlog2N=10,240。FFT算法則因此允許在整個滯后范圍被有效率地搜尋。
與由本發(fā)明使用的需要乘法運算的相關函數(shù)相對,大多現(xiàn)有技術使用絕對誤差計量。絕對誤差計計量測量樣本間差值的絕對值,并且最優(yōu)滯后發(fā)生于誤差計量的最小值處。對照地,相關函數(shù)是最小平方誤差計量所算出的答案與最佳結果效果上相差最小平方誤差的誤差。熟知最小平方誤差計量是最大相似估計器,因為它提供最適合的正態(tài)(即,高斯的)分布數(shù)據(jù),而絕對誤差計量較不適于作為數(shù)學最優(yōu)化方法。
把零樣本附于N/2個樣本的方法170的步驟194和196,對本發(fā)明在等于要合并的兩樣本塊的總和的滯后范圍內的搜索能力也很重要。相關函數(shù)內在地假設兩樣本基本上為周期性。即,在x(t)緩沖器的最后樣本后,下一個樣本是與x(t)緩沖器的第一樣本相同。一般上,這不真實,且此假設在相關函數(shù)計算上和在決定滯后T的最優(yōu)值上引起巨大誤差。零被附于N/2個樣本來防止所謂的卷繞(wrap-around)問題的發(fā)生。相關函數(shù)把負滯后值儲存在所有正滯后值之后,且通過從大于或等于N/2的T值減掉N來獲得負滯后值。
請注意到在步驟102,只有輸入樣本X(k)的共軛復數(shù)被采用。這導致所計算的滯后是等于來自縮放緩沖器樣本y(t)的輸入樣本x(t)的滯后。
選擇步驟206主要是用于定點系統(tǒng)(即,整數(shù)),而不用于儲存浮點數(shù)的系統(tǒng)。因為相關函數(shù)的絕對值不重要,而是相對值,故有利地來縮放Z(k)值以把正確度最大化且防止溢出。例如,在16位整數(shù)系統(tǒng)中,相關函數(shù)的數(shù)據(jù)類型的可能值范圍從-32,768到+32,767。極低的相關函數(shù)值減少精確度,而極高值有溢出的危險。適合的標稱最大值可被選擇如在此情形中的8,191,最大值范圍的四分之一,且所有數(shù)值都縮放至此標稱最大值。
圖9說明用于多聲道數(shù)字音頻信號的時間標度改變的方法220。任何數(shù)目的音頻聲道可被處理,包括兩聲道的立體信號、四聲道的四重音頻信號、和五聲道的環(huán)效信號。聲道也可能與視頻信號相關。方法220合并用來處理單聲道音頻的方法,獨立地處理各聲道。在步驟222,多聲道音頻信號可能以可改變、非實時速率被輸入。在步驟224,音頻聲道被分離使得可個別地處理它們。在步驟226、228和230,根據(jù)圖5的方法70來獨立處理各聲道。因為聲道被獨立處理,不同聲道的對應輸入塊不與其個別輸出塊在相同重疊滯后T來重疊。而是,只考慮該特定聲道的相關函數(shù)來選擇各聲道的重疊滯后。
在步驟232、234和236中,以恒定、實時速率來輸出所產(chǎn)生時間縮放的數(shù)字音頻聲道。請注意到不同聲道的對應樣本不再對應,且可以不同時間來播放。當此可能出現(xiàn)來縮減多聲道輸出信號的品質時,明顯的事實卻顯示相反。在步驟238,根據(jù)方法220處理的多聲道音頻呈現(xiàn)給聽者是比獨立處理的多聲道音頻信號高的品質。據(jù)相信,聽者能夠合成不同聲道來在效果上“建立”從聲道遺失、但出現(xiàn)在另一聲道的樣本。這是與聽者感知來自移動來源的聲音的方式一致。若聲音的空間解析度可由聽者檢知,則聽者能夠正確合成聲音、解釋任何時間延遲,好像它來自移動源。事實上,人類(和其他動物)習慣于來傾聽聲源的移動。
這后面的原理在本發(fā)明的另一個實施例中被利用,其中信號在被處理前被分成多個聲道。方法240被說明在圖10的方框圖中。在步驟242,以可變和非實時的速率來輸入單聲道數(shù)字音頻信號。在步驟244中使用任何適當方法來把音頻信號分成多個聲道;優(yōu)選方法被討論于下。多個聲道可彼此偏移小量的時間滯后。信號被分成至少兩個、且可能更多聲道。在步驟246和248至250,本發(fā)明的連續(xù)可變時間縮放方法被獨立施于各聲道。如圖9的方法220的,針對方法240中的各個聲道計算的重疊偏移量T之間并無關連。以優(yōu)選以恒定、實時速率,在步驟252和254至256中個別聲道被輸出。最后,在步驟258,聽者合成獨立的聲道,感知它們如來自移動源。
在方法240中,時間壓縮的輸出聲道被聽者使用移動源原理來整合。因為聲道被獨立處理,故其幀以不同時間滯后來合并;聽者感知它是在聲道間空間地移動的聲源。針對各聲道的不同時間延遲偏移量可對應于針對各聲道的不同輸入幀序列,并且使各聲道來處理輸入信號的不同相位。不同時間延遲偏移量應優(yōu)選在一范圍中,其中不同聲道被感知是空間上不同(即,在聽者的左或右側上),而不如回音效果主宰般地大。例如,長N=1024的幀引起N/2=512個樣本的幀推進,此幀推進的一半聲道偏移量是等于256個樣本。在44,100的樣本率,此偏移量對應于輸入聲道間的5.8毫秒時間延遲偏移量。此時間延遲偏移量已發(fā)現(xiàn)是用于在高達4.0(在雙聲道配置中)的時間壓縮比率的增加可感知度的有效聲道分離。特別是在快速語言的情形中,其可能在時間被壓縮時難以了解,兩獨立處理的聲道比單一聲道更可被聽者感知。聲道間的移動的感知有助于了解輸出。
自單一聲道產(chǎn)生多聲道的方法被說明在圖11中。單輸入緩沖器260包括多個程序指針。超前各程序指針的樣本被拷貝到不同緩沖器,由此產(chǎn)生不同輸出聲道。在圖11的情形中,產(chǎn)生兩分離輸出聲道的兩程序指針被顯示。任何期望數(shù)目的程序指針可被使用。用代表兩輸出聲道(即,兩麥克風)的空間分開的預定時間滯后來分開程序指針。因為在各迭代中該方法處理N/2個樣本(在此特定例子中),在兩聲道間的時間滯后為N/4。同樣地,三個程序指針將由N/2個樣本的1/3(即,N/6個樣本)來分開。第一縮放緩沖器262被使用來處理與第一輸入緩沖器程序指針264對應的第一聲道。第二縮放緩沖器266被使用來處理與第二輸入緩沖器程序指針268對應的第二聲道。所產(chǎn)生輸出樣本用固定時間滯后N/2來輸出,使得使用者感知樣本如來自空間分開的點源。
對本領域的技術人員將是清楚的,上述實施例可以許多方式來改變而不偏離本發(fā)明的范圍。據(jù)此,本發(fā)明的范圍應由下面權利要求及其法定等效文獻來決定。
權利要求
1.一種是針對包括輸入樣本的數(shù)字音頻輸入信號的時間標度改變方法,以可形成包括輸出樣本的數(shù)字音頻輸出信號,該方法包括下列步驟a)選擇N/2個輸入樣本的輸入塊;b)選擇N/2個輸出樣本的輸出塊;c)決定用來把該輸入塊的起頭與該輸出塊的起頭重疊的最優(yōu)偏移量T;其中-N/2≤T≤N/2,其中該偏移量決定包括計算在該N/2個輸入樣本的離散頻率變換和該N/2個輸出樣本的離散頻率變換間的相關函數(shù),其中該相關函數(shù)的離散頻率反變換的最大值發(fā)生于該最優(yōu)偏移量T;和d)把該輸入塊與該輸出塊重疊來形成該輸出信號,其中該輸入塊起頭與該輸出塊起頭偏移T個樣本。
2.依據(jù)權利要求1所述的方法,其中該偏移量決定步驟更包括在實施該輸入頻率變換前把N/2個零樣本附于該N/2個輸入樣本,且在實施該輸出頻率變換前把N/2個零樣本附于該N/2個輸出樣本。
3.依據(jù)權利要求1所述的方法,其中該離散頻率變換是離散傅立葉變換,且其中該離散頻率反變換是離散傅立葉反變換。
4.依據(jù)權利要求3所述的方法,其中該偏移量決定步驟包括i)對該輸入樣本進行離散傅立葉變換,以獲得X(k),其中k=0,…,N/2-1;ii)對該輸出樣本進行離散傅立葉變換,以獲得Y(k),其中k=0,…,N/2-1;iii)對X(k)取共軛復數(shù),以獲得X*(k),其中k=0,…,N/2-1;iv)對復數(shù)乘法乘積Z(k)=X*(k)·Y(k),其中k=0,…,N/2-1;v)對Z(k)進行離散傅立葉反變換,以獲得z(t);和vi)決定z(T)為最大值時的T。
5.依據(jù)權利要求1所述的方法,其中該離散頻率變換是從由離散余弦變換、離散正弦變換、離散哈特雷變換、和根據(jù)維夫雷特式函數(shù)的離散變換組成的組中選出。
6.依據(jù)權利要求1所述的方法,其中該相關函數(shù)是經(jīng)標稱化的相關函數(shù)。
7.依據(jù)權利要求1所述的方法,其更包括以恒定速率輸出該輸出信號。
8.依據(jù)權利要求7所述的方法,其中該恒定速率是實時速率。
9.依據(jù)權利要求7所述的方法,其中該輸出塊的該起頭的位置是依賴該恒定速率來選擇。
10.依據(jù)權利要求1所述的方法,其更包括以可變速率獲得該輸入信號。
11.依據(jù)權利要求1所述的方法,其中步驟(a)是獨立于該輸入信號的音調周期。
12.依據(jù)權利要求1所述的方法,其中該重疊步驟包括把加權函數(shù)應用于該輸出塊和該輸入塊。
13.依據(jù)權利要求12所述的方法,其中該加權函數(shù)是線性函數(shù)。
14.一種用于多聲道數(shù)字音頻輸入信號的時間標度改變方法,各輸入聲道包括輸入樣本,來形成一個多聲道數(shù)字音頻輸出信號,各輸出聲道包括輸出樣本,該方法包括下列步驟a)獲得該輸入聲道;b)獨立地針對各個該輸入聲道i)選擇N/2個輸入樣本的輸入塊;ii)從該輸出聲道的對應聲道選擇N/2個輸出樣本的輸出塊;iii)確定用來把該輸入塊的起頭與該輸出塊的起頭重疊的最優(yōu)偏移量T,其中-N/2≤T≤N/2,該偏移量的確定包括計算在該N/2個輸入樣本的離散頻率變換和該N/2個輸出樣本的離散頻率變換間的相關函數(shù),其中該相關函數(shù)的離散頻率反變換的最大值發(fā)生在該最優(yōu)偏移量T;iv)把該輸入塊與該輸出塊重疊來形成該對應的輸出聲道,其中該輸入塊起頭與該輸出塊起頭偏移T個樣本;和c)把該輸出聲道組合來形成該多聲道數(shù)字音頻輸出信號。
15.依據(jù)權利要求14所述的方法,其中步驟(a)包括把該多聲道數(shù)字音頻信號分離成該輸入樣本。
16.依據(jù)權利要求14所述的方法,其中步驟(a)包括從單聲道數(shù)字音頻輸入信號來產(chǎn)生該輸入聲道。
17.依據(jù)權利要求16所述的方法,其中該輸入聲道以預定時間滯后量來彼此分開。
18.依據(jù)權利要求14所述的方法,其中該離散頻率變換是離散傅立葉變換,且其中該離散頻率反變換是離散傅立葉反變換。
19.依據(jù)權利要求14所述的方法,其更包括以恒定速率輸出該多聲道數(shù)字音頻輸出信號。
20.依據(jù)權利要求19所述的方法,其中該恒定速率是實時速率。
21.依據(jù)權利要求19所述的方法,其中針對各聲道,依賴該恒定速率來選擇該輸出塊的該起頭的位置。
22.依據(jù)權利要求14所述的方法,其更包括以可變速率獲得該多聲道數(shù)字輸入信號。
23.依據(jù)權利要求14所述的方法,其中步驟(b)(i)是獨立于該輸入聲道的音調周期。
24.依據(jù)權利要求14所述的方法,其中該多聲道數(shù)字音頻輸入信號和該多聲道數(shù)字音頻輸出信號是立體信號。
25.一種數(shù)字信號處理器,包括經(jīng)配置的處理單元來實施針對包括輸入樣本的數(shù)字音頻輸入信號的時間標度改變的方法步驟,以形成包括輸出樣本的數(shù)字音頻輸出信號,該方法步驟包括a)選擇N/2個輸入樣本的輸入塊;b)選擇N/2個輸出樣本的輸出塊;c)確定用來把該輸入塊的起頭與該輸出塊的起頭重疊的最優(yōu)偏移量T;其中-N/2≤T≤N/2,其中該偏移量確定步驟包括計算在該N/2個輸入樣本的離散頻率變換和該N/2個輸出樣本的離散頻率變換間的相關函數(shù),其中該相關函數(shù)的離散頻率反變換的最大值發(fā)生在該最優(yōu)偏移量T;和d)把該輸入塊與該輸出塊重疊來形成該輸出信號,其中該輸入塊起頭與輸出塊起頭偏移T個樣本。
26.依據(jù)權利要求25所述的數(shù)字信號處理器,其中該偏移量確定步驟更包括在進行該輸入頻率變換前把N/2個零樣本附于該N/2個輸入樣本,且在進行該輸出頻率變換前把N/2個零樣本附于該N/2個輸出樣本。
27.依據(jù)權利要求25所述的數(shù)字信號處理器,其中該離散頻率變換是離散傅立葉變換,且其中該離散頻率反變換是離散傅立葉反變換。
28.依據(jù)權利要求27所述的數(shù)字信號處理器,其中該偏移量確定步驟包括i)對該輸入樣本進行離散傅立葉變換,以獲得X(k),其中k=0,…,N/2-1;ii)對該輸出樣本進行離散傅立葉變換,以獲得Y(k),其中k=0,…,N/2-1;iii)對X(k)取共軛復數(shù),以獲得X*(k),其中k=0,…,N/2-1;iv)計算復數(shù)乘法乘積Z(k)=X*(k)·Y(k),其中k=0,…,N/2-1;v)對Z(k)的離散傅立葉反變換,以獲得z(t);和vi)確定z(T)為最大值時的T。
29.依據(jù)權利要求25所述的數(shù)字信號處理器,其中該離散頻率變換是從由離散余弦變換、離散正弦變換、離散哈特雷變換、和根據(jù)維夫雷特式函數(shù)的離散變換組成的組中選出。
30.依據(jù)權利要求25所述的數(shù)字信號處理器,其中該相關函數(shù)是經(jīng)標稱化的相關函數(shù)。
31.依據(jù)權利要求25所述的數(shù)字信號處理器,其中該方法步驟更包括以恒定速率輸出該輸出信號。
32.依據(jù)權利要求31所述的數(shù)字信號處理器,其中該恒定速率是實時速率。
33.依據(jù)權利要求31所述的數(shù)字信號處理器,其中按照該恒定速率選擇該輸出塊的該起頭的位置。
34.依據(jù)權利要求25所述的數(shù)字信號處理器,其中該方法步驟更包括以可變的速率獲得該輸入信號。
35.依據(jù)權利要求25所述的數(shù)字信號處理器,其中步驟(a)獨立于該輸入信號的音調周期。
36.依據(jù)權利要求25所述的數(shù)字信號處理器,其中該重疊步驟包括將加權函數(shù)應用到該輸出塊和該輸入塊。
37.依據(jù)權利要求36所述的數(shù)字信號處理器,其中該加權函數(shù)是線性方程。
全文摘要
一種用于數(shù)字音頻信號的時間標度改變的方法產(chǎn)生不同播放率的、而相同音調的輸出信號作為輸入數(shù)字音頻信號。該方法使輸入信號中的樣本塊與輸出信號中的樣本塊重疊以壓縮信號。針對各可能重疊來計算相關函數(shù),且選擇產(chǎn)生最大相關度的重疊。對于計算相關函數(shù)有效的計算方法計算輸入和輸出樣本塊的離散頻率變換、計算相關、然后對于在最優(yōu)重疊處具有最大值的相關函數(shù)進行頻率變換反變換。一種針對多聲道數(shù)字音頻信號的時間縮放改變的方法獨立地處理每個聲道,聽者合成不同的聲道并感知高質量的多聲道信號。
文檔編號G10L21/04GK1440549SQ01812205
公開日2003年9月3日 申請日期2001年7月17日 優(yōu)先權日2000年7月26日
發(fā)明者羅杰·塞利 申請人:Ssi株式會社, 羅杰·塞利