音頻校正方法和音頻校正器的製作方法
2023-05-27 00:37:06
專利名稱:音頻校正方法和音頻校正器的製作方法
技術領域:
本發明屬於電子樂器技術領域,特別是用於聲控伴奏機的歌聲頻率作控制信號的音頻校正方法和音頻校正器。
聲控自動伴奏機是一種根據人的歌聲,不需樂器師演奏而自動伴奏的電子樂器,它的出現給人們的文娛生活帶來很多方便。但是,目前已研究出的聲控自動伴奏機其音階識別解析度低、音階少、音域範圍窄、電路複雜、對元器件要求精度高,調試難度大,不利於大批量生產。最關鍵的是現有設計方案無法解決串音現象,而串音現象是伴奏樂器中不允許出現的,因為它的出現不但不能使人們享受到歌唱帶來的美的感受,反而使人們產生不愉快。
串音現象由於歌唱者發音的不準確性以及不穩定性(包括電路的不穩定性),導致音頻之基頻頻率F。為非音階頻率或在某一範圍內抖動,由於非音階頻率和頻率的抖動現象,使得以往的聲控自動伴奏機無法正確跟蹤,而出現串音現象,即來回發出某相鄰兩個或多個音階頻率,揚聲器接受這樣的音階頻率發出的就是串音。
例如123HZ發B音,131HZ發C音,139HZ發#C音(這三個頻率為音階頻率),這三個音是相鄰的。F。為基頻頻率(採樣音頻信號得到的),如果F。落在123與131的中間(即分界線上)或者F。在F。±△F範圍內抖動,因以往聲控自動伴奏機採用一對一的跟蹤辦法,將來回往復出現B音和C音或者B、C、#C音。另外因採樣頻率較高(這是快速跟蹤需要的),這種快速的來回往復出現某兩個或多個音就形成串音。人們聽起來相當不舒服。
應該說明這種串音現象在琴鍵式電子樂器中是不存在。
本發明的目的在於提供一種聲控伴奏機中控制音源電路的歌聲頻率信號出現不標準音頻信號現象時的音頻校正方法和音頻校正器。
本發明是用如下方式完成的。音頻校正方法是採用下列步驟把十二平均律的標準音階頻率數據以及將包括各個標準音階頻率數據的頻率區段數據存入存貯器中,各相鄰的頻率區段數據之間部分重迭;
中央處理器CPU控制定時器,用定時器定時控制計數器對輸入的音頻脈衝信號進行採樣計數;
當第一次採樣完後,CPU從計數器讀取採樣頻率數據與從上述存貯器中按順序讀取的頻率區段數據進行比較,確定採樣頻率數據對應的頻率區段,並將該頻率區段數據寄存在CPU內,同時將該頻率區段數據中的標準音階頻率數據讀出送輸出口;
第二次採樣完後,CPU讀取計數器的第二次採樣頻率數據與寄存在CPU內的上次頻率區段數據進行比較,若該採樣頻率數據屬於寄存於CPU中的頻率區段,則CPU把該頻率區段數據內的標準音階頻率數據送輸出口,再進行第三次採樣比較,否則CPU就按順序讀取上述存貯器中的頻率區段數據與第二次採樣頻率數據進行比較,確定第二次採樣頻率數據對應的頻率區段,並將該頻率區段數據寄存在CPU內作第三次採樣頻率數據的比較值,同時將該頻率區段中的標準音階頻率數據讀出送輸出口;
第三次、第四次,一直下去都重複第二次採樣、比較、寄存、輸出的過程,進行音頻校正。
CPU讀取存貯器中的頻率區段數據順序是按頻率分布由小到大或由大到小或取中間某一區段數據比較後,再分別往大的方向讀取和往小的方向讀取。
存放在存貯器中的每個頻率區段數據是由一個下限頻率數據和一個上限頻率數據,以及一個標準音階頻率數據組成。
音頻校正器是由中央微處理器CPU經地址總線連接存貯器I1和解碼器I2、解碼器I2分別連接定時器CTC、計數器I3以及輸出接口電路I4、中央微處理器CPU經數據總線分別連接存貯器I4、定時器CTC、計數器I3以及輸出接口電路I4,CPU的寫入端控制定時器CTC,用定時器CTC定時控制接於計數器I3的三態與門I5的通斷,讓計數器I3對輸入的音頻脈衝信號進行採樣計數,CPU的讀出端接存貯器I1和計數器I3,讀取存貯器內的頻率數據和計數器I3的採樣數據進行比較,確定存貯器I1內的標準音階頻率數據輸出至接口電路I4,CPU的中斷信號端輸入信號由定時器CTC輸出經非門I6接供。
本發明的特點就是對聲控伴奏機的歌聲頻率信號控制音源電路,當歌唱者發音不準而可能導致音源電路發音出現串音現象時的音頻校正,克服了目前聲控伴奏機有串音的現象,提高聲控伴奏機的伴奏效果。此外本發明採用定時器控制計數器對音頻脈衝信號進行採樣、其採樣時間精確無誤,穩定性高,且不需調試。本發明採用大規模集成電路,減少了分立元件。能提高生產效率、便於大批量生產。本發明採用CPU後,其音域範圍可達20HZ-20KHZ,從理論上來說這個範圍還可以進一步擴大。
圖1是本發明電路原理圖。
圖2是本發明CPU的程序框圖。
下面結合附圖對本發明作進一步說明圖1是本發明音頻校正器的電路原理圖,音頻校正器是由中央處理器CPU、存貯器I1、解碼器I2定時器CTC、計數器I3、輸出接口電路I4、三態與門I5、非門I6構成。聲控伴奏機對歌唱者的歌聲信號經過採樣、分選後得到音頻脈衝信號F。該信號輸入至三態與門I5,中央處理器CPU在復位或開機後將時間常數送往定時器CTC,同時對計數器I3進行清零,然後啟動定時器CTC開始定時。定時器CTC輸出低電平使三態與門導通,此時音頻脈衝信號F。輸入至計數器I3進行計數。定時器CTC設定時間到,則它輸出高電平使三態與門關斷。停止計數器I3對音頻脈衝信號F。的計數,同時定時器CTC經非門I6向CPU發出(中斷信號)時間到信號,CPU響應此信號後,從計數器讀出計數值。至此在CPU的控制下完成一次採樣。存貯器I1採用只讀存貯器EPROM,當然也可用其它形式的存貯器。在存貯器中存放有按12平均率的標準音階頻率數據,以及將包括各個標準音階頻率數據的頻率區段數據也存於在存貯器I1中,且各相鄰的頻率區段數據之間部份重。CPU經解碼器I2讀出計數器I3中的採樣計數值和存貯器I1(EPROM)數據區中的標準音階頻率數據和頻率區段數據按順序進行比較,確定採樣計數值落在某個頻率區段數據區中,並將該頻率區段數據寄存在CPU內寄存器中,同時將該區段中的標準音階頻率數據送輸出口電路I4(高四位送口1低四位送口2)。同時CPU啟動定時器CTC開始下一次採樣,輸出標準音階頻率數據經接口電路I4向音源電路輸入,此音源電路發出對應的樂音信號。此樂音信號推動揚聲器發出音樂。完成上述採樣比較讀出標準音階頻率後,CPU對第二次採樣的數據的處理是先將讀出的第二次採樣數據與上次(第一次)所選定的保存在CPU內寄存器中的頻率區段數據進行比較,確定若第二次採樣數據超出上次寄存的頻率區段數據。則按順序讀出存貯器I1中的其它頻率數據進行比較,以確定第二次採樣數據對應的頻率區段數據,並將該頻率區段數據寄存在寄存器中,讀出該區段內的標準音階頻率送輸出口輸出;若第二次採樣頻率數據仍落在第一次寄存的頻率區段數據中,則仍將第一次標準音階頻率送輸出口輸出。第三次採樣比較仍重複第二次的過程,這樣一直下去。就完成了頻率校正,只發出標準音階頻率信號。
本發明音頻校正器是用地址總線和數據總線連接CPU和存貯器I1解碼器I2定時器CTC,計數器I3輸出接口電路I4。定時器CTC輸出端接非門I6控制CPUINT端(中斷請求)。定時器CTC控制接於計數器I3輸入端的三態與門I5,如圖1所示。
本發明的音頻校正方法是首先在存貯器EPROM中存入根據十二平均律表所確定的標準音階頻率數據,以及把每個標準音階頻率包括在一個頻率區段的上限和下限頻率數據存入存貯器中。例如發B音的頻率區段數據是119HZ-129HZ,標準音階頻率為123HZ,這三個頻率數據構成一個上限129HZ、下限119HZ,其中123HZ是處於上下限之中。同樣,發C音的頻率區段是下限125HZ、上限137HZ、上下限之中的標準音階頻率是131HZ,發#C音的下限133HZ、上限145HZ,上下限之中的標準音階頻率是139HZ等等。把十二平均律標準音階頻率數據劃在若干上述頻率區段數據之中。一般來說存在存貯器中的每個頻率區段數據只有三個即可,這樣可減小存貯器容量,每個頻率區段的上下限頻率數據是人為設定的,但有一個原則是每兩個相鄰頻率區段數據有部份重迭。如上述發C音的上限137HZ大於發#C音的下限133HZ,而發C音的下限125HZ小於發B音的上限129HZ等等,這樣就在存貯器中存放有按頻率大小順序頻率區段數據交錯重迭的數據以及標準音階頻率數據。
啟動中央處理器CPU,用CPU控制定時器CTC進行定時採樣,用CPU進行讀出採樣數據和上述存貯器中的數據進行比較,第一次採樣、比較、寄存、輸出,第二次採樣、比較、寄存、輸出,等等。這種方法如上所述。以下用頻率數舉例說明,如第一次採樣的歌聲頻率是128HZ,這是一個不標準音,CPU讀出後,CPU按順序從存貯器I1中搜索頻率區段數據逐個與128HZ進行比較,找出125HZ和137HZ的頻率區段數據,調出該區段中的標準音階頻率131HZ(C音)輸出至音源電路,同時將125HZ和137HZ寄存在CPU內寄存器中。若第二次採樣頻率數據是137HZ(因歌唱者發音不準確或者不穩定或者是電路產生的不穩定性,使頻率發生抖動、偏移),這時CPU讀出計數器中的137HZ與CPU內寄存的125HZ和137HZ比較,比較結果137HZ仍屬於該區段,CPU仍調出131HZ(發C音)送輸出口。這樣就消除了歌唱者發音不準確或者不穩定或者由電路產生的不穩定性而造成的頻率抖動、偏移現象。只有當採樣頻率數據大於137HZ或者小於125HZ時,CPU才按順序讀出存貯器中的數據與第二次採樣頻率數據比較,若第二次採樣頻率數據小於125HZ則往小的方向搜索,若大於137HZ則往大的方向搜索,找到第二次採樣頻率數據屬於的那個區段頻率數據則將該區段上下限頻率數據寄存在CPU內以備下次比較之用,並調出相應的標準音階頻率數據輸出。CPU的程序框圖如圖2所示。CPU對第二次以後採樣的數據處理方法和第二次採樣數據處理方法相同。上述CPU讀出存貯器中的頻率區段數據的順序可以是按頻率分布由小到大或由大到小或按照先讀出某設定的一個頻率區段數據進行比較。若不屬於該區段就按大於上限往上搜索,小於下限則往下搜索。從上述可知對於每個標準音階頻率本發明都允許歌唱者的發音有一定範圍的誤差並自動將誤差校正輸出標準音階頻率。如歌唱者發C音時是131HZ(標準音階)允許的頻率誤差範圍是125-137HZ。也就是說允許發C音時的不準確程度為137-125=12HZ。要說明的一點是允許的不準確程度在不同音階時有不同的值,音階頻率越高該值就越大,音階頻率越低該值就越小。頻率重迭部分的大小與音階頻率有關、該值越大消除串音的能力越強重迭部分值越小消除串音能力越弱。
應該指出採樣頻率原則上為32HZ,是這樣使用的,在一個周期內前半周期進行採樣,後半周期進行數據處理。由於CPU的處理速度快使得採樣頻率為非標準32HZ,前半周期(採樣周期)為標準32HZ半周期,後半周期時間長短取決於CPU的速度。因此音頻信號需經64倍頻後才能進行採樣,否則得不到正確的頻率數值。採樣頻率太高採樣的誤差越大,太低則跟不上速度的要求。所以本發明選擇了32HZ為採樣頻率是根據誤差和速度兩項指標來選定的。
權利要求
1.一種用於聲控伴奏機的音頻校正方法,其特徵是採用下列步驟把十二平均律的標準音階頻率數據以及將包括各個標準音階頻率數據的頻率區段數據存入存貯器中,各相鄰的頻率區段數據之間部份重迭;中央處理器CPU控制定時器,用定時器定時控制計數器對輸入的音頻脈衝信號進行採樣計數;當第一次採樣完後,CPU從計數器讀取採樣頻率數據與從上述存貯器中按順序讀取的頻率區段數據進行比較,確定採樣頻率數據對應的頻率區段,並將該頻率區段數據寄存在CPU內,同時將該頻率區段數據中的標準音階頻率數據讀出送輸出口;第二次採樣完後,CPU讀取計數器的第二次採樣頻率數據與寄存在CPU內的上次頻率區段數據進行比較,若該採樣頻率數據屬於寄存於CPU中的頻率區段,則CPU把該頻率區段數據內的標準音階頻率數據送輸出口再進行第三次採樣比較,否則CPU就按順序讀取上述存貯器中的頻率區段數據與第二次採樣頻率數據進行比較,確定第二次採樣頻率數據對應的頻率區段,並將該頻率區段數據寄存在CPU內,作第三次採樣頻率數據的比較值,同時將該頻率區段中的標準音階頻率數據讀出送輸出口;第三次、第四次一直下去都重複第二次採樣、比較、寄存、輸出的過程進行音頻校正。
2.根據權利要求1所述校正方法,其特徵在於CPU讀取存貯器中的頻率區段數據順序是按頻率分布由小到大或由大到小或取中間某一區段數據比較後,再分別往大的方向讀取和往小的方向讀取。
3.根據權利要求1所述校正方法,其特徵在於存放在存貯器中的每個頻率區段數據是由一個下限頻率數據和一個上限頻率數據以及一個標準音階頻率數據組成。
4.一種用於聲控伴奏機的音頻校正器,其特徵是它由中央微處理器CPU經地址總線連接存貯器I1和解碼器I2。解碼器I2分別連接定時器CTC、計數器I3以及輸出接口電路I4,中央微處理器CPU經數據總線分別連接存貯器I4、定時器CTC、計數器I3以及輸出接口電路I4。CPU的寫入端控制定時器CTC,用定時器CTC定時控制接於計數器I3的三態與門I5的通、斷、讓計數器I3對輸入的音頻脈衝信號進行採樣計數,CPU的讀出端接存貯器I1和計數器I3讀取存貯器內的頻率數據和計數器I3的採樣數據進行比較,確定存貯器I1內的標準音階頻率數據輸出至接口電路I4,CPU的中斷信號端由定時器CTC輸出經非門I6接供。
全文摘要
本發明屬於電子樂器技術領域,是一種用於聲控自動伴奏機的聲控頻率校正。它是對歌聲的頻率採用CPU技術對其作自動校正,選擇標準的音階,以消除串音現象,校正後的音階頻率數據輸入至音源電路而產生樂音,從而對歌唱進行自動伴奏。由於本發明採用CPU技術解決了以往聲控自動伴奏機所未能解決的串音以及發音不準的現象,使其性能指標得到了大幅度提高。本發明適用於聲控伴奏機。
文檔編號G10H1/36GK1076801SQ9311047
公開日1993年9月29日 申請日期1993年2月23日 優先權日1993年2月23日
發明者伍尚魁, 陳繼平 申請人:湘潭市新產品開發研究所