專利名稱:一種聲音信號的篩選系統(tǒng)及方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種聲音信號的篩選系統(tǒng)及方法,尤其是關(guān)于一種將聲音信號經(jīng)過音高偵測,以計算檻值條件,篩選出具有參考價值的音高參考點的篩選系統(tǒng)及方法。
背景技術(shù):
近年來,由于科技快速發(fā)展,電腦提升同時也帶動了聲音信號處理在歌唱系統(tǒng)、語言學(xué)習(xí)、音樂制作及聲音傳輸?shù)葢?yīng)用。而音高偵測算法是針對聲音信號的音高作演算的演算法,主要是在估算及偵測聲音波形的基頻。在時域上的音高偵測算法,是從輸入的聲音信號變動的聲音波形中找出充分出現(xiàn)的波形,利用聲音波形相似特征找出基本周期。當(dāng)位移時間距離等于音高頻率倒數(shù)時,聲音信號和其位移信號必有最大相似度,便可求出基本周期。即在尋找聲音波形基本周期上,由于聲音波形中的信號點非常多,往往必須先找出在聲音波形中的音高參考點,然后再從這些音高參考點中找出基本周期的音高點,然而在以往獲取音高參考點的方式中,多半依照音高偵測曲線特性來決定出音高參考點,而在 ACF算法中則以所有局部最大值作為音高參考點。
發(fā)明內(nèi)容
本發(fā)明為解決背景技術(shù)中存在的上述技術(shù)問題,而提出一種聲音信號的篩選系統(tǒng)及方法。本發(fā)明的技術(shù)解決方案是本發(fā)明為一種聲音信號篩選系統(tǒng),其特殊之處在于該系統(tǒng)包括聲音獲取模塊,用來獲取聲音信號;音高偵測算法模塊,用來對聲音信號進行音高偵測算法后,將聲音信號轉(zhuǎn)換為信號點;檻值算法模塊,用來獲取信號點的音高算法值, 根據(jù)算法值取得檻值;比對模塊,用來將音高算法符合檻值條件的信號點進行局部值對比, 當(dāng)檻值條件小于檻值時,取出信號點的音高算法為局部最小值加入音高參考陣列中,當(dāng)檻值條件大于檻值時,取出信號點的音高算法為局部最大值加入?yún)⒖季仃囍?。上述聲音獲取模塊根據(jù)取樣頻率獲取聲音信號。上述檻值為音高算法平均值。上述特性為求取局部最小值的音高偵測算法包含平均振幅差異函數(shù)算法。上述特性為求取局部最大值的音高偵測算法包含ACF算法。一種聲音信號篩選方法,其特殊之處在于該方法包含下列步驟1)對聲音信號進行音高偵測算法后,將聲音信號轉(zhuǎn)換為信號點;2)利用檻值算法模塊,獲取信號點的音高算法值,根據(jù)該值獲取檻值,根據(jù)特性建立檻值條件,當(dāng)特性為局部最小值時,檻值條件小于檻值,當(dāng)特性為局部最大值時,檻值條件大于檻值;3)將信號點與檻值條件進行對比;4)將音高算法符合檻值條件的信號點進行局部值對比,當(dāng)檻值條件小于檻值時,取出信號點的音高算法值為局部最小值加入音高參考矩陣中,當(dāng)檻值條件大于檻值時,取出信號點的音高算法值為局部最大值加入音高參考矩陣中。上述聲音獲取模塊根據(jù)取樣頻率獲取聲音信號。上述檻值為音高算法平均值。上述特性為求取局部最小值的音高偵測算法包含平均振幅差異函數(shù)算法。上述特性為求取局部最大值的音高偵測算法包含ACF算法。
圖1為本發(fā)明信號傳送的網(wǎng)絡(luò)架構(gòu)圖;圖2為本發(fā)明信號傳送系統(tǒng)的系統(tǒng)架構(gòu)圖;圖3為本發(fā)明信號傳送方法的流程圖。其中,100-服務(wù)端,200-客戶端,200a-客戶端,200b-客戶端,200c_客戶端, 210-接收器,222-控制模塊,228-網(wǎng)絡(luò)狀態(tài)偵測模塊,230-解碼器,240-聲音接收模塊, 250-聲音轉(zhuǎn)換模塊,260-合成器,270-聲音提供模塊,280-字幕提供模塊,290-傳送器;。
具體實施例方式參見圖1,本發(fā)明包括有音訊獲取模塊201、音高偵測算法模塊202、檻值算法模塊203、對比模塊204。聲音獲取模塊201,用來獲取聲音信號205。獲取時可根據(jù)取樣頻率獲取聲音信號,聲音信號可來自麥克風(fēng)取得。音高偵測算法模塊202,用來對聲音信號205進行音高偵測算法后,將聲音信號 205轉(zhuǎn)換為信號點,其中,信號點具有對應(yīng)得坐標(biāo)(X,y)。在音高偵測算法可以是平均振幅差異函數(shù)、自相關(guān)函數(shù)等算法。服務(wù)器100可儲存多首歌曲的編碼文件,服務(wù)器100所儲存的編碼文件中可包含比如樂譜數(shù)據(jù)(或可稱伴奏數(shù)據(jù))及字幕原始數(shù)據(jù),且可包含時間數(shù)據(jù)。其中,樂譜數(shù)據(jù)、 字幕原始數(shù)據(jù)以及時間數(shù)據(jù)都是數(shù)據(jù)量小的數(shù)據(jù)。在實施例中,上述編碼文件的檔案格式可相似于標(biāo)準(zhǔn)MIDI格式,并且將字幕原始數(shù)據(jù)儲存到標(biāo)準(zhǔn)MIDI格式的一個通道中,也就是將字幕原始數(shù)據(jù)視為一個MIDI格式的聲音通道,因此,相較于一般多媒體檔案,編碼文件可大幅節(jié)省檔案大小。服務(wù)器100也提供各個客戶端連線。不同客戶端在連線到服務(wù)器100后,可以建立如點對點(Peer-to-Peer,P2P)等直接連線,或是建立通過服務(wù)器100轉(zhuǎn)送數(shù)據(jù)給對方的間接連線。以下方便說明,建立連線的兩客戶端將以圖1的200a及200b為例說明。服務(wù)器100可負責(zé)接收客戶端200a在客戶端200a點歌后所傳送的點歌資料,并負責(zé)依據(jù)所接收的點歌資料,將客戶端200a所點的歌曲加入與點歌的客戶端200a對應(yīng)得點歌清單中。一般各客戶端可分別點播多首歌曲,而服務(wù)器100則可代為排序及篩選相同的歌曲,并形成列表,該列表通常為點歌清單。服務(wù)器100還提供客戶端200a以及與客戶端200a合唱得其他客戶端下載點歌清單中的歌曲的編碼文件。一般服務(wù)器100可以在判斷點歌清單中的歌曲將被客戶端200a點播時,傳送下載與被點播的歌曲對應(yīng)得文件下載信息至客戶端200a以及與客戶端200a合唱的客戶端200b,使客戶端200a以及客戶端200b依據(jù)所接收到的與被點播歌曲對應(yīng)得文件下載信息至服務(wù)器100下載被播放的歌曲的編碼文件。服務(wù)器100也可以在判斷客戶端200a可以播放點歌清單中的歌曲后,傳送與可播放的歌曲對應(yīng)得播放控制信號之客戶端200a,使得客戶端200a在傳送起始信號至客戶端 200b后,客戶端200a與客戶端200b同步播放被點播的歌曲。參見圖2,本發(fā)明系統(tǒng)包含接收器210、解碼器230、聲音接收模塊240、聲音轉(zhuǎn)換模塊250、合成器260、聲音提供模塊270、字幕提供模塊280及傳送器290。接收器210負責(zé)接收其他客戶端所傳送的起始信號(第一起始信號或第二起始信號,從客戶端200a或客戶端200b的不同觀點看)。若客戶端與合唱得其他客戶端以傳輸控制協(xié)定(Transmission Control Protocol, TCP)建立直接連線,則接收器210會接收到一次其他客戶端所傳送的起始信號,或客戶端與合唱得其他客戶端以使用者數(shù)據(jù)包協(xié)定 (User Datagram Protocol, UDP)建立直接連線,則其他客戶端可連續(xù)傳送多次起始信號, 即接收器210可能接收到一次以上由同一其他客戶端所傳送的起始信號,而若客戶端與合唱得其他客戶端通過服務(wù)器100建立間接連線,則接收器210會接收到服務(wù)器100所傳送的由其他客戶端傳送的起始信號。接收器210也負責(zé)接收其他客戶端所傳送的非本地聲音信號,在實施例中,接收器210所接收的非本地聲音信號中并沒有包含時間數(shù)據(jù),所以進一步節(jié)省檔案大小及處理時間。在本發(fā)明中,以客戶端200a為例,客戶端200a的聲音接收模塊240所采集的聲音信號對客戶端200a而言為“本地聲音信號”,比如采集到客戶端200a的人聲語音信號。而不是“本地聲音信號”對應(yīng)其他客戶端(比如客戶端200b)而言,則為“非本地聲音信號”。接收器210還負責(zé)接收來自服務(wù)器100的編碼文件。由于所述編碼文件的檔案并不包含多媒體檔案,其關(guān)于音樂部分是提供演奏的樂譜數(shù)據(jù)(比如MIDI樂譜),以供聲音轉(zhuǎn)換模塊250 (比如MIDI演奏器)自行轉(zhuǎn)換成聲音信號(比如MIDI音樂),所以編碼文件的檔案并不大,適合利用接收器210快速地從服務(wù)器100下載整份編碼文件。而并不需要像先前技術(shù)一樣,在提供使用者合唱時使用串流的技術(shù)來下載多媒體檔案,如此,可以節(jié)省客戶端的頻寬、減少數(shù)據(jù)傳送時間,可避免因為串流所造成的延遲或錯誤。另外,接收器210 也可以接收服務(wù)器100所傳送的播放控制信號。解碼器230耦合接收器210,負責(zé)將接收器210所接收的編碼文件解碼,并在解碼編碼文件后獲得時間節(jié)奏同步的樂譜數(shù)據(jù)與字幕原始數(shù)據(jù)。由于編碼文件的檔案格式與標(biāo)準(zhǔn)MIDI格式相似,因此,解碼器230也可以使用與解碼標(biāo)準(zhǔn)MIDI格式相似的方式解碼編碼文件。一般,解碼器230會在接收器210接收到其他客戶端所傳送的起始信號后才解碼編碼文件。聲音轉(zhuǎn)換模塊250耦合解碼器230,負責(zé)將解碼器230所獲得的樂譜數(shù)據(jù)轉(zhuǎn)換為伴
奏聲音信號。合成器260耦合接收器、解碼器230以及聲音提供模塊270,負責(zé)將解碼器230所獲得的樂譜數(shù)據(jù)提供給聲音提供模塊270。合成器260在接收器210接收到其他客戶端所傳送的起始信號才會將樂譜數(shù)據(jù)提供給聲音提供模塊270。其中,聲音提供模塊270可包含輸出界面,供連接揚聲器。合成器260中可包含計時器及暫存器,其中,計時器可以計算時間,暫存器可以儲存伴奏聲音信號,合成器260會在計時器計算的時間達到后,由暫存器中讀出演奏時間與計時器所計算的時間的長度相同的伴奏聲音信號。在本發(fā)明中,計時器每一次計算的時間被稱為“間隔時間”。如上所述,可利用聲音轉(zhuǎn)換模塊250先根據(jù)樂譜數(shù)據(jù)得到伴奏聲音信號,并儲存在上述暫存器中,可選擇性的利用上述暫存器暫存樂譜數(shù)據(jù),并在需要伴奏聲音信號時利用聲音轉(zhuǎn)換模塊250得到。合成器260也耦合聲音接收模塊240,負責(zé)將聲音信號轉(zhuǎn)換為合成聲音信號,從而將合成聲音信號提供給聲音提供模塊270供輸出。合成器260會將聲音接收模塊240所采集的本地聲音信號轉(zhuǎn)換成本地合成聲音信號,及將接收器210所接收的非本地聲音信號轉(zhuǎn)換為非本地合成聲音信號,例如,將本地聲音信號/非本地聲音信號加上回音效果(Echo)。合成器260中除了上述暫存器外,還包含兩個暫存器(第二及第三暫存器),分別用來儲存接收器210所接收的非本地聲音信號、及儲存聲音接收模塊240所采集的本地聲音信號。合成器260會在計時器計算的間隔時間達到后,分別從儲存本地聲音信號及儲存非本地聲音信號的兩個暫存器中獲取出在這一段間隔時間內(nèi)被暫存的本地聲音信號及非本地聲音信號,并分別將所獲取的本地聲音信號及非本地聲音信號轉(zhuǎn)換為本地合成聲音信號及非本地合成聲音信號。合成器260也可以將本地聲音信號、非本地聲音信號、及伴奏音樂信號合成,合成后產(chǎn)生的新信號在本發(fā)明中被稱為“歌曲信號”。由于合成器260會持續(xù)的從儲存伴奏音樂信號的暫存器中讀出演奏長度與間隔時間相同的伴奏音樂信號,因此,合成器260也會分別從儲存本地聲音信號及非本地聲音信號的兩個暫存器中獲取在這段間隔時間內(nèi)被暫存的本地聲音信號及非本地聲音信號,并將所讀出的伴奏聲音信號、本地聲音信號、及非本地聲音信號合成為歌曲信號,提供給聲音提供模塊270。字幕提供模塊280耦合解碼器230,負責(zé)根據(jù)解碼器230所獲得的字幕原始數(shù)據(jù)提供字幕信號。由于解碼器230解碼所獲得的字幕原始數(shù)據(jù)與樂譜數(shù)據(jù)的時間節(jié)奏同步對應(yīng)。因此,字幕提供模塊280所提供的字幕信號大體上也會與伴奏聲音信號的時間節(jié)奏同步對應(yīng)。—般,客戶端200還包含一個視頻輸出界面,使字幕提供模塊280可以提供影像輸出以顯示字幕信號輸出于比如電視、電腦屏幕等影像輸出裝置。傳送器290耦合接收器210,可以在接收器210接收到服務(wù)器100所傳送的播放控制信號后,傳送第一起始信號至與客戶端合唱的其他客戶端,傳送器290也負責(zé)在接收器210接收到其他客戶端所傳送的第一起始信號后,傳回第二起始信號至傳送第一起始信號的其他客戶端。其中,若客戶端與合唱的其他客戶端以TCP建立直接連線,則因為TCP大體上可以確保封包一定會被傳送到目的地的特性,所以傳送器290只需要傳送一次第二起始信號至與客戶端合唱的其他客戶端,即可確定與客戶端合唱的其他客戶端一定會收到第二起始信號,若客戶端與合唱的其他客戶端以UDP建立直接連線,則因為UDP無法確定封包一定會被傳送到目的地,因此傳送器290會連續(xù)傳送多次第二起始信號至與客戶端合唱的其他客戶端,從而提高讓與客戶端合唱的其他客戶端接收到第二起始信號的機率,避免因為封包遺失而造成與客戶端合唱的其他客戶端無法接收到第二起始信號,而若客戶端與合唱的其他客戶端通過服務(wù)器100建立間接連線,則傳送器290會傳送第二起始信號至服務(wù)器100,使服務(wù)器100轉(zhuǎn)送所接收到的第二起始信號至與客戶端合唱得其他客戶端,其中,由于客戶端與服務(wù)器100間都會以TCP建立連線,因此,傳送器290只需要傳送一次第二起始信號給服務(wù)器100。傳送器290也耦合聲音接收模塊240,負責(zé)傳送聲音接收模塊240所采集的本地聲音信號至與客戶端合唱得其他客戶端。其中,由于播放聲音信號并不一定需要接收到所有封包的特性,再加上網(wǎng)絡(luò)狀態(tài)在正常狀態(tài)下,封包并不容易被丟棄,因此,傳送器290可使用P2P或UDP等方式,將本地聲音信號直接傳送給與客戶端合唱得其他客戶端,而與客戶端合唱的其他客戶端可以不進行包含本地聲音信號的封包遺失的額外處理動作,使得客戶端及與其合唱的其他客戶端播放客戶端的聲音接收模塊240所采集的本地聲音信號的時間差縮短,以達到兩客戶端同步播放的功效。在實施例中,傳送器290所傳送的本地聲音信號與聲音接收模塊240所采集的本地聲音信號相同,即在傳送器290傳送聲音接收模塊240所采集的本地聲音信號前,聲音接收模塊240所采集的本地聲音信號不會經(jīng)過任何處理,從而更進一步縮短了本地聲音信號被傳送到合唱得其他客戶端的時間,使得客戶端及與其合唱的其他客戶端可以同步播放客戶端的聲音接收模塊240所采集的本地聲音信號,即同步播放客戶端的使用者所發(fā)出的聲
曰°同一客戶端中的接收器210與傳送器290可以使用不同的數(shù)據(jù)傳輸通道(頻道) 接收來自其他客戶端的數(shù)據(jù)及傳送數(shù)據(jù)至其他客戶端。此外,本發(fā)明客戶端中,還可以包含控制模塊222及網(wǎng)絡(luò)狀態(tài)偵測模塊228??刂颇K222可以選擇性的與接收器210、解碼器230、合成器260、及傳送器290 耦合,負責(zé)在接收器210接收到與客戶端合唱的其他客戶端所傳送的起始信號后,致能 (enable)解碼器230解碼編碼文件,致能合成器260合成本地聲音信號、非本地聲音信號、 或歌曲信號,及/或致能傳送器290傳送本地聲音信號至與客戶端合唱的其他客戶端??刂颇K222也可以在接收器210接收到服務(wù)器100所傳送的播放控制信號后, 致能傳送器290傳送第一起始信號至與客戶端合唱的其他客戶端。網(wǎng)絡(luò)狀態(tài)偵測模塊228耦合接收器210及傳送器290,負責(zé)偵測客戶端與合唱的其他客戶端間的網(wǎng)絡(luò)狀態(tài)。一般,網(wǎng)絡(luò)狀態(tài)偵測模塊228會計算客戶端與合唱的其他客戶端間的封包傳遞時間是否高于預(yù)定值,當(dāng)網(wǎng)絡(luò)狀態(tài)偵測模塊228所計算出的封包傳遞時間高于預(yù)定值時,表示客戶端與合唱的其他客戶端間的網(wǎng)絡(luò)狀態(tài)不佳,不容易讓不同客戶端的使用者的聲音同步的在其他客戶端上播放,即此時兩客戶端不適合合唱,但網(wǎng)絡(luò)狀態(tài)偵測模塊228負責(zé)偵測客戶端與合唱的其他客戶端間的網(wǎng)絡(luò)狀態(tài)的方式不限于此。接收器210可以在網(wǎng)絡(luò)狀態(tài)偵測模塊228偵測網(wǎng)絡(luò)狀態(tài)正常時,例如,封包傳遞時間低于或等于預(yù)定值時,才接收其他客戶端傳來的非本地聲音信號,傳送器290也可以在網(wǎng)絡(luò)狀態(tài)偵測模塊228偵測網(wǎng)絡(luò)狀態(tài)正常時,才傳送本地聲音信號至其他客戶端。參見圖3,當(dāng)客戶端200a的使用者欲使用服務(wù)器100所提供的網(wǎng)絡(luò)伴唱服務(wù)與客戶端200b的使用者合唱時,客戶端200a及客戶端200b的使用者需要分別操作客戶端200a 及客戶端200b連線到服務(wù)器100,客戶端200a的使用者需要在服務(wù)器100所提供的使用者界面進行操作,比如在服務(wù)器100所提供的使用者界面中選擇客戶端200b的使用者,讓客戶端200a與客戶端200b建立連線。在客戶端200a與客戶端200b建立連線后,客戶端200a及客戶端200b的使用者可以在服務(wù)器100所提供的使用者界面上點播歌曲。在客戶端200a/客戶端200b的使用者點歌后,客戶端200a/客戶端200b可以傳送與被點播的歌曲對應(yīng)的點歌數(shù)據(jù)至服務(wù)器100,服務(wù)器100在接收到客戶端200a或客戶端 200b所傳送的點歌數(shù)據(jù)后,可以記錄傳送點歌數(shù)據(jù)的客戶端,并依據(jù)接收到的點歌數(shù)據(jù),將與點歌數(shù)據(jù)對應(yīng)得被點播的歌曲加入點歌清單中,使得被點播的歌曲被顯示在使用者界面的點歌清單中。在服務(wù)器100將被點播的歌曲加入點歌清單后,服務(wù)器100可以依據(jù)點歌清單中所記錄的被點播歌曲的順序,依序傳送與被點播的歌曲對應(yīng)的文件下載信息至客戶端200a 及客戶端200b,從而通知客戶端200a及客戶端200b下載被點播的歌曲的編碼文件??蛻舳?00a及客戶端200b在接收到服務(wù)器100所傳送的文件下載信息后,可以從服務(wù)器100下載被點播的歌曲的編碼文件,即客戶端200a及客戶端200b的接收器210 可以接收來自服務(wù)器100的編碼文件(步驟310)。參見圖3,客戶端200a的接收器210在接收到客戶端200b所傳送的第二起始信號或客戶端200b的傳送器290在傳送第二起始信號至客戶端200a(步驟325)后,客戶端 200a/客戶端200b的解碼器230便可以開始解碼接收器210所接收的第一首被點播歌曲的編碼文件,由編碼文件中獲得第一首被點播歌曲的樂譜數(shù)據(jù)及字幕原始數(shù)據(jù)(步驟330)。 其中,客戶端200a及客戶端200b的解碼器230開始解碼編碼文件的時間差非常的小,可以視為客戶端200a及客戶端200b的解碼器230同時開始解碼編碼文件。在客戶端200a及客戶端200b的解碼器230解碼編碼文件(步驟330)后,客戶端200a及客戶端200b的聲音提供模塊270可以將解碼器230所獲得的樂譜數(shù)據(jù)轉(zhuǎn)換為伴奏音樂信號,并提供轉(zhuǎn)換后的伴奏音樂信號給聲音提供模塊270 (步驟381),使得與聲音提供模塊270連接的喇叭等聲音輸出裝置播放出第一首被點播歌曲的旋律。同時,在客戶端 200a及客戶端200b的解碼器230解碼編碼文件(步驟330)后,客戶端200a及客戶端200b 的字幕提供模塊280也可以根據(jù)解碼器230所獲得的與樂譜數(shù)據(jù)對應(yīng)得字幕原始數(shù)據(jù)提供字幕信號(步驟383),使得與字幕提供模塊280連接的電視等影像輸出裝置顯示出與被播放出的旋律同步對應(yīng)得字幕。在與客戶端200a及客戶端200b的聲音提供模塊270連接的聲音輸出裝置同步播放出本地合成聲音信號、非本地合成聲音信號、及伴奏音樂信號,且在與客戶端200a及客戶端200b的字幕提供模塊280連接的影像輸出裝置顯示與伴奏的旋律同步對應(yīng)得字幕后, 客戶端200a及客戶端200b將可以在無法察覺的短暫時間內(nèi)同步提供第一首被點播的歌曲的旋律與字幕、及客戶端200a及客戶端200b的使用者跟唱的歌聲,使得客戶端200a及客戶端200b達成聲文同步而能夠讓客戶端200a及客戶端200b進行合唱。綜上,本發(fā)明與先前技術(shù)之間的差異在于具有客戶端接收到起始信號后,解碼來自服務(wù)器的編碼文件以獲得樂譜數(shù)據(jù)與字幕原始數(shù)據(jù)、采集本地聲音信號、及接收來自其他客戶端的非本地聲音信號,并在將樂譜數(shù)據(jù)、字幕原始數(shù)據(jù)、本地聲音信號與非本地聲音信號分別轉(zhuǎn)換為伴奏音樂信號、字幕信號、本地合成聲音信號與非本地合成聲音信號后,提供同步播放伴奏聲音信號、本地合成聲音信號、非本地合成聲音信號、及字幕信號的技術(shù)手段,通過此技術(shù)手段可以解決先前技術(shù)所存在具有網(wǎng)絡(luò)伴唱服務(wù)的不同數(shù)位電視或機頂盒無法提供使用者合唱的問題,進而達成同步歌曲的旋律與字幕、及多個跟唱得人聲,并提供合唱得技術(shù)功效。在本實施例中,客戶端200a及客戶端200b還包含網(wǎng)絡(luò)狀態(tài)偵測模塊228,則在客戶端200a及客戶端200b的傳送器290將客戶端200a及客戶端200b的聲音接收模塊240 所采集的聲音信號(本地聲音信號)傳送至客戶端200b及客戶端200a (步驟360)前,網(wǎng)絡(luò)狀態(tài)偵測模塊228可以先偵測客戶端200a及客戶端200b間的網(wǎng)絡(luò)狀態(tài)??蛻舳?00a及客戶端200b的網(wǎng)絡(luò)狀態(tài)偵測模塊228可以如圖3. 3所示,通過客戶端200a及客戶端200b 的傳送器290傳送封包至客戶端200b及客戶端200a,使得客戶端200b及客戶端200a傳回封包,并在客戶端200a及客戶端200b的接收器210接收到客戶端200b及客戶端200a所傳回的封包后,計算傳送器290傳送封包至接收器接收到封包所經(jīng)過的時間(步驟352),此時間也是客戶端200a及客戶端200b間的封包傳遞時間,并在計算出封包傳遞時間后,判斷計算出的封包傳遞時間是否低于預(yù)定值(步驟356),例如100毫秒,若網(wǎng)絡(luò)狀態(tài)偵測模塊 228計算出的封包傳遞時間低于預(yù)定值,則傳送器290將可以傳送聲音接收模塊240所采集的本地聲音信號至客戶端200b及客戶端200a (步驟360),而若網(wǎng)絡(luò)狀態(tài)偵測模塊228計算出的封包傳遞時間高于或等于預(yù)定值,則傳送器290將不會傳送聲音接收模塊240所采集的本地聲音信號,而是直接讓客戶端200a及客戶端200b的合成器260將本地聲音信號轉(zhuǎn)換為本地合成聲音信號,從而提供與客戶端200a及客戶端200b的聲音提供模塊270連接的聲音輸出裝置播放(步驟385)。類似的,若網(wǎng)絡(luò)狀態(tài)偵測模塊228計算出的封包傳遞時間低于預(yù)定值,則接收器210才會接收來自客戶端200b及客戶端200a的聲音信號(非本地聲音信號)(步驟370),而若網(wǎng)絡(luò)狀態(tài)偵測模塊228計算出的封包傳遞時間高于預(yù)定值, 則接收器210將不會接收來自客戶端200b及客戶端200a的非本地聲音信號。服務(wù)器100 可儲存多首歌曲的編碼文件,服務(wù)器100所儲存的編碼文件中可包含比如樂譜數(shù)據(jù)(或可稱伴奏數(shù)據(jù))及字幕原始數(shù)據(jù),且可包含時間數(shù)據(jù)。其中,樂譜數(shù)據(jù)、字幕原始數(shù)據(jù)以及時間數(shù)據(jù)都是數(shù)據(jù)量小的數(shù)據(jù)。在實施例中,上述編碼文件的檔案格式可相似于標(biāo)準(zhǔn)MIDI格式,并且將字幕原始數(shù)據(jù)儲存到標(biāo)準(zhǔn)MIDI格式的一個通道中,也就是將字幕原始數(shù)據(jù)視為一個MIDI格式的聲音通道,因此,相較于一般多媒體檔案,編碼文件可大幅節(jié)省檔案大小。服務(wù)器100也提供各個客戶端連線。不同客戶端在連線到服務(wù)器100后,可以建立如點對點(Peer-to-Peer,P2P)等直接連線,或是建立通過服務(wù)器100轉(zhuǎn)送數(shù)據(jù)給對方的間接連線。服務(wù)器100可負責(zé)接收客戶端200a在客戶端200a點歌后所傳送的點歌資料, 并負責(zé)依據(jù)所接收的點歌資料,將客戶端200a所點的歌曲加入與點歌的客戶端200a對應(yīng)得點歌清單中。一般各客戶端可分別點播多首歌曲,而服務(wù)器100則可代為排序及篩選相同的歌曲,并形成一列表,該列表通常為點歌清單。服務(wù)器100還提供客戶端200a以及與客戶端200a合唱得其他客戶端(例如客戶端200b)下載點歌清單中的歌曲的編碼文件。一般服務(wù)器100可以在判斷點歌清單中的歌曲將被客戶端200a點播時,傳送下載與被點播的歌曲對應(yīng)得文件下載信息至客戶端200a 以及與客戶端200a合唱的客戶端200b,使客戶端200a以及客戶端200b依據(jù)所接收到的與被點播歌曲對應(yīng)得文件下載信息至服務(wù)器100下載被播放的歌曲的編碼文件,但客戶端至服務(wù)器100下載被點播的歌曲的編碼文件的方式并以此為限。服務(wù)器100也可以在判斷客戶端200a可以播放點歌清單中的歌曲后,傳送與可播放的歌曲對應(yīng)得播放控制信號之客戶端200a,使得客戶端200a在傳送起始信號至客戶端200b后,客戶端200a與客戶端200b同步播放被點播的歌曲。接收器210負責(zé)接收其他客戶端所傳送的起始信號(第一起始信號或第二起始信號,從客戶端200a或客戶端200b的不同觀點看)。若客戶端與合唱得其他客戶端以傳輸控制協(xié)定(Transmission Control Protocol, TCP)建立直接連線,則接收器210會接收到一次其他客戶端所傳送的起始信號,或客戶端與合唱得其他客戶端以使用者數(shù)據(jù)包協(xié)定 (User Datagram Protocol, UDP)建立直接連線,則其他客戶端可連續(xù)傳送多次起始信號, 即接收器210可能接收到一次以上由同一其他客戶端所傳送的起始信號,而若客戶端與合唱得其他客戶端通過服務(wù)器100建立間接連線,則接收器210會接收到服務(wù)器100所傳送的由其他客戶端傳送的起始信號。接收器210也負責(zé)接收其他客戶端所傳送的非本地聲音信號,在實施例中,接收器210所接收的非本地聲音信號中并沒有包含時間數(shù)據(jù),所以進一步節(jié)省檔案大小及處理時間。在本發(fā)明中,以客戶端200a為例,客戶端200a的聲音接收模塊240所采集的聲音信號對客戶端200a而言為“本地聲音信號”,比如采集到客戶端200a的人聲語音信號。而不是“本地聲音信號”對應(yīng)其他客戶端(比如客戶端200b)而言,則為“非本地聲音信號”。接收器210還負責(zé)接收來自服務(wù)器100的編碼文件。由于所述編碼文件的檔案并不包含多媒體檔案,其關(guān)于音樂部分是提供演奏的樂譜數(shù)據(jù)(比如MIDI樂譜),以供聲音轉(zhuǎn)換模塊250 (比如MIDI演奏器)自行轉(zhuǎn)換成聲音信號(比如MIDI音樂),所以編碼文件的檔案并不大,適合利用接收器210快速地從服務(wù)器100下載整份編碼文件。而并不需要像先前技術(shù)一樣,在提供使用者合唱時使用串流的技術(shù)來下載多媒體檔案,如此,可以節(jié)省客戶端的頻寬、減少數(shù)據(jù)傳送時間,可避免因為串流所造成的延遲或錯誤。另外,接收器210 也可以接收服務(wù)器100所傳送的播放控制信號。解碼器230耦合接收器210,負責(zé)將接收器210所接收的編碼文件解碼,并在解碼編碼文件后獲得時間節(jié)奏同步的樂譜數(shù)據(jù)與字幕原始數(shù)據(jù)。由于編碼文件的檔案格式與標(biāo)準(zhǔn)MIDI格式相似,因此,解碼器230也可以使用與解碼標(biāo)準(zhǔn)MIDI格式相似的方式解碼編碼文件。一般,解碼器230會在接收器210接收到其他客戶端所傳送的起始信號后才解碼編碼文件。聲音轉(zhuǎn)換模塊250耦合解碼器230,負責(zé)將解碼器230所獲得的樂譜數(shù)據(jù)轉(zhuǎn)換為伴
奏聲音信號。合成器260耦合接收器、解碼器230以及聲音提供模塊270,負責(zé)將解碼器230所獲得的樂譜數(shù)據(jù)提供給聲音提供模塊270。合成器260在接收器210接收到其他客戶端所傳送的起始信號才會將樂譜數(shù)據(jù)提供給聲音提供模塊270。其中,聲音提供模塊270可包含輸出界面,供連接揚聲器。合成器260中可包含計時器及暫存器,其中,計時器可以計算時間,暫存器可以儲存伴奏聲音信號,合成器260會在計時器計算的時間達到后,由暫存器中讀出演奏時間與計時器所計算的時間的長度相同的伴奏聲音信號。在本發(fā)明中,計時器每一次計算的時間被稱為“間隔時間”。如上所述,可利用聲音轉(zhuǎn)換模塊250先根據(jù)樂譜數(shù)據(jù)得到伴奏聲音信號,并儲存在上述暫存器中,可選擇性的利用上述暫存器暫存樂譜數(shù)據(jù),并在需要伴奏聲音信號時利用聲音轉(zhuǎn)換模塊250得到。值得一提的是,為了要讓被點播的歌曲可以持續(xù)不斷的被完整輸出,合成器260中的計時器會不斷地計算間隔時間,在間隔時間一次次被達到后,合成器260可以持續(xù)地由暫存器中讀出長度與間隔時間相同的樂譜信號。合成器260也耦合聲音接收模塊240,負責(zé)將聲音信號轉(zhuǎn)換為合成聲音信號,從而將合成聲音信號提供給聲音提供模塊270供輸出。合成器260會將聲音接收模塊240所采集的本地聲音信號轉(zhuǎn)換成本地合成聲音信號,及將接收器210所接收的非本地聲音信號轉(zhuǎn)換為非本地合成聲音信號,例如,將本地聲音信號/非本地聲音信號加上回音效果(Echo)。在實施例中,聲音提供模塊270會先提供本地聲音信號,讓使用者可快速聽到自己的歌聲。并在即時合成本地合成聲音信號及非本地合成聲音信號后,接著提供本地合成聲音信號及非本地合成聲音信號。因為使用者可先聽到本地聲音信號,接著才聽到本地合成聲音信號,因此,不會明顯感受到處理本地合成聲音信號所造成的延遲。類似地,當(dāng)接收到非本地聲音信號時,也可以先提供非本地聲音信號,再即時合成后提供非本地合成聲音信號。在實施例中,設(shè)置為會將本地聲音信號的音量相對大于本地合成聲音信號。類似地, 也設(shè)置為將非本地聲音信號的音量相對大于非本地合成聲音信號。合成器260中除了上述暫存器外,還包含兩個暫存器(第二及第三暫存器),分別用來儲存接收器210所接收的非本地聲音信號、及儲存聲音接收模塊240所采集的本地聲音信號。合成器260會在計時器計算的間隔時間達到后,分別從儲存本地聲音信號及儲存非本地聲音信號的兩個暫存器中獲取出在這一段間隔時間內(nèi)被暫存的本地聲音信號及非本地聲音信號,并分別將所獲取的本地聲音信號及非本地聲音信號轉(zhuǎn)換為本地合成聲音信號及非本地合成聲音信號。合成器260也可以將本地聲音信號、非本地聲音信號、及伴奏音樂信號合成,合成后產(chǎn)生的新信號在本發(fā)明中被稱為“歌曲信號”。由于合成器260會持續(xù)的從儲存伴奏音樂信號的暫存器中讀出演奏長度與間隔時間相同的伴奏音樂信號,因此,合成器260也會分別從儲存本地聲音信號及非本地聲音信號的兩個暫存器中獲取在這段間隔時間內(nèi)被暫存的本地聲音信號及非本地聲音信號,并將所讀出的伴奏聲音信號、本地聲音信號、及非本地聲音信號合成為歌曲信號,提供給聲音提供模塊270。字幕提供模塊280耦合解碼器230,負責(zé)根據(jù)解碼器230所獲得的字幕原始數(shù)據(jù)提供字幕信號。由于解碼器230解碼所獲得的字幕原始數(shù)據(jù)與樂譜數(shù)據(jù)的時間節(jié)奏同步對應(yīng)。因此,字幕提供模塊280所提供的字幕信號大體上也會與伴奏聲音信號的時間節(jié)奏同步對應(yīng)。一般,客戶端200還包含一個視頻輸出界面,使字幕提供模塊280可以提供影像輸出以顯示字幕信號輸出于比如電視、電腦屏幕等影像輸出裝置。傳送器290耦合接收器210,可以在接收器210接收到服務(wù)器100所傳送的播放控制信號后,傳送第一起始信號至與客戶端合唱的其他客戶端,傳送器290也負責(zé)在接收器210接收到其他客戶端所傳送的第一起始信號后,傳回第二起始信號至傳送第一起始信號的其他客戶端。其中,若客戶端與合唱的其他客戶端以TCP建立直接連線,則因為TCP大體上可以確保封包一定會被傳送到目的地的特性,所以傳送器290只需要傳送一次第二起始信號至與客戶端合唱的其他客戶端,即可確定與客戶端合唱的其他客戶端一定會收到第二起始信號,若客戶端與合唱的其他客戶端以UDP建立直接連線,則因為UDP無法確定封包一定會被傳送到目的地,因此傳送器290會連續(xù)傳送多次第二起始信號至與客戶端合唱的其他客戶端,從而提高讓與客戶端合唱的其他客戶端接收到第二起始信號的機率,避免因為封包遺失而造成與客戶端合唱的其他客戶端無法接收到第二起始信號,而若客戶端與合唱的其他客戶端通過服務(wù)器100建立間接連線,則傳送器290會傳送第二起始信號至服務(wù)器100,使服務(wù)器100轉(zhuǎn)送所接收到的第二起始信號至與客戶端合唱得其他客戶端,其中, 由于客戶端與服務(wù)器100間都會以TCP建立連線,因此,傳送器290只需要傳送一次第二起始信號給服務(wù)器100。傳送器290也耦合聲音接收模塊M0,負責(zé)傳送聲音接收模塊240所采集的本地聲音信號至與客戶端合唱得其他客戶端。其中,由于播放聲音信號并不一定需要接收到所有封包的特性,再加上網(wǎng)絡(luò)狀態(tài)在正常狀態(tài)下,封包并不容易被丟棄,因此,傳送器290可使用P2P或UDP等方式,將本地聲音信號直接傳送給與客戶端合唱得其他客戶端,而與客戶端合唱的其他客戶端可以不進行包含本地聲音信號的封包遺失的額外處理動作,使得客戶端及與其合唱的其他客戶端播放客戶端的聲音接收模塊240所采集的本地聲音信號的時間差縮短,以達到兩客戶端同步播放的功效。在實施例中,傳送器290所傳送的本地聲音信號與聲音接收模塊240所采集的本地聲音信號相同,即在傳送器290傳送聲音接收模塊240所采集的本地聲音信號前,聲音接收模塊240所采集的本地聲音信號不會經(jīng)過任何處理,從而更進一步縮短了本地聲音信號被傳送到合唱得其他客戶端的時間,使得客戶端及與其合唱的其他客戶端可以同步播放客戶端的聲音接收模塊240所采集的本地聲音信號,即同步播放客戶端的使用者所發(fā)出的聲
音°同一客戶端中的接收器210與傳送器290可以使用不同的數(shù)據(jù)傳輸通道(頻道) 接收來自其他客戶端的數(shù)據(jù)及傳送數(shù)據(jù)至其他客戶端。此外,本發(fā)明客戶端中,還可以包含控制模塊222及網(wǎng)絡(luò)狀態(tài)偵測模塊228??刂颇K222可以選擇性的與接收器210、解碼器230、合成器沈0、及傳送器290 耦合,負責(zé)在接收器210接收到與客戶端合唱的其他客戶端所傳送的起始信號后,致能 (enable)解碼器230解碼編碼文件,致能合成器260合成本地聲音信號、非本地聲音信號、 或歌曲信號,及/或致能傳送器290傳送本地聲音信號至與客戶端合唱的其他客戶端。控制模塊222也可以在接收器210接收到服務(wù)器100所傳送的播放控制信號后, 致能傳送器290傳送第一起始信號至與客戶端合唱的其他客戶端。網(wǎng)絡(luò)狀態(tài)偵測模塊2 耦合接收器210及傳送器四0,負責(zé)偵測客戶端與合唱的其他客戶端間的網(wǎng)絡(luò)狀態(tài)。一般,網(wǎng)絡(luò)狀態(tài)偵測模塊2 會計算客戶端與合唱的其他客戶端間的封包傳遞時間是否高于預(yù)定值,當(dāng)網(wǎng)絡(luò)狀態(tài)偵測模塊2 所計算出的封包傳遞時間高于預(yù)定值時,表示客戶端與合唱的其他客戶端間的網(wǎng)絡(luò)狀態(tài)不佳,不容易讓不同客戶端的使用者的聲音同步的在其他客戶端上播放,即此時兩客戶端不適合合唱,但網(wǎng)絡(luò)狀態(tài)偵測模塊2 負責(zé)偵測客戶端與合唱的其他客戶端間的網(wǎng)絡(luò)狀態(tài)的方式不限于此。接收器210可以在網(wǎng)絡(luò)狀態(tài)偵測模塊2 偵測網(wǎng)絡(luò)狀態(tài)正常時,例如,封包傳遞時間低于或等于預(yù)定值時,才接收其他客戶端傳來的非本地聲音信號,傳送器290也可以在網(wǎng)絡(luò)狀態(tài)偵測模塊2 偵測網(wǎng)絡(luò)狀態(tài)正常時,才傳送本地聲音信號至其他客戶端。
權(quán)利要求
1.一種聲音信號篩選系統(tǒng),其特征在于該系統(tǒng)包括聲音獲取模塊,用來獲取聲音信號;音高偵測算法模塊,用來對聲音信號進行音高偵測算法后,將聲音信號轉(zhuǎn)換為信號點; 檻值算法模塊,用來獲取信號點的音高算法值,根據(jù)算法值取得檻值;比對模塊,用來將音高算法符合檻值條件的信號點進行局部值對比,當(dāng)檻值條件小于檻值時,取出信號點的音高算法為局部最小值加入音高參考陣列中,當(dāng)檻值條件大于檻值時,取出信號點的音高算法為局部最大值加入?yún)⒖季仃囍小?br>
2.根據(jù)權(quán)利要求1所述的一種聲音信號篩選系統(tǒng),其特征在于所述聲音獲取模塊根據(jù)取樣頻率獲取聲音信號。
3.根據(jù)權(quán)利要求2所述的一種聲音信號篩選系統(tǒng),其特征在于所述檻值為音高算法平均值。
4.根據(jù)權(quán)利要求1所述的一種聲音信號篩選系統(tǒng),其特征在于所述特性為求取局部最小值的音高偵測算法包含平均振幅差異函數(shù)算法。
5.根據(jù)權(quán)利要求4所述的一種聲音信號篩選系統(tǒng),其特征在于所述特性為求取局部最大值的音高偵測算法包含ACF算法。
6.一種聲音信號篩選方法,其特征在于該方法包含下列步驟1)對聲音信號進行音高偵測算法后,將聲音信號轉(zhuǎn)換為信號點;2)利用檻值算法模塊,獲取信號點的音高算法值,根據(jù)該值獲取檻值,根據(jù)特性建立檻值條件,當(dāng)特性為局部最小值時,檻值條件小于檻值,當(dāng)特性為局部最大值時,檻值條件大于檻值;3)將信號點與檻值條件進行對比;4)將音高算法符合檻值條件的信號點進行局部值對比,當(dāng)檻值條件小于檻值時,取出信號點的音高算法值為局部最小值加入音高參考矩陣中,當(dāng)檻值條件大于檻值時,取出信號點的音高算法值為局部最大值加入音高參考矩陣中。
7.根據(jù)權(quán)利要求6所述的一種聲音信號篩選方法,其特征在于所述聲音獲取模塊根據(jù)取樣頻率獲取聲音信號。
8.根據(jù)權(quán)利要求7所述的一種聲音信號篩選方法,其特征在于所述檻值為音高算法平均值。
9.根據(jù)權(quán)利要求8所述的一種聲音信號篩選方法,其特征在于所述特性為求取局部最小值的音高偵測算法包含平均振幅差異函數(shù)算法。
10.根據(jù)權(quán)利要求9所述的一種聲音信號篩選方法,其特征在于所述特性為求取局部最大值的音高偵測算法包含ACF算法。
全文摘要
本發(fā)明提供一種聲音信號的篩選系統(tǒng)及方法,目的在于解決以往計算聲音信號的基本周期時,所獲取到的音高參數(shù)點易參雜非音高點干擾運算的問題,通過將聲音信號經(jīng)過音高偵測運算,保留音框中符合檻值得音高參考點,從而達到提高計算聲音信號的基本周期時的運算效率及求值精確性。
文檔編號G10L11/00GK102411928SQ201110447020
公開日2012年4月11日 申請日期2011年12月17日 優(yōu)先權(quán)日2011年12月17日
發(fā)明者陳淮琰 申請人:無敵科技(西安)有限公司