專利名稱:用樂器為演唱者伴奏的自動演奏器和自動演奏器樂器的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種自動演奏器和自動演奏器樂器,用于在沒有人類演奏者的任何手指彈奏的情況下順著樂曲的節(jié)(passage)產(chǎn)生音調(diào)。
背景技術(shù):
“卡拉OK(karaoke)”受到樂迷們的喜愛??ɡ璒K用順著樂曲的節(jié)產(chǎn)生樂器音調(diào)的電氣或電子音調(diào)生成器來為演唱者伴奏,并在顯示板上產(chǎn)生文字。換句話說,演唱者在卡拉OK的伴奏下演唱歌曲。所述樂器音調(diào)不依賴于人類的語音(voice),并且演唱者需要控制他或她的發(fā)音。
現(xiàn)有技術(shù)卡拉OK識別演唱者的語音音調(diào),并且電子地產(chǎn)生用于和聲(harmony)的語音音調(diào)。在日本專利申請公開第Hei 8-234771中公開了現(xiàn)有技術(shù)卡拉OK的典型示例。在該日本專利申請公開中公開的現(xiàn)有技術(shù)卡拉OK通過麥克風(fēng)拾取人類的語音,并分析從在麥克風(fēng)中產(chǎn)生的模擬信號轉(zhuǎn)換的數(shù)字信號,以便確定所述音調(diào)的音高?,F(xiàn)有技術(shù)卡拉OK將該音調(diào)的音高從檢測值轉(zhuǎn)換為用于和聲的某些值,并產(chǎn)生代表電子語音音調(diào)的數(shù)字信號。將代表電子語音音調(diào)的數(shù)字信號與代表人類語音音調(diào)的數(shù)字信號相混合,并從中輸出數(shù)字混合信號。然而,電子的人類語音不能使對音樂具有敏銳聽力的樂迷滿意。
自動演奏器鋼琴可用于伴奏。自動演奏器鋼琴是原聲鋼琴和自動演奏器的組合。自動演奏器分析以樂曲數(shù)據(jù)代碼存儲的樂曲數(shù)據(jù),并在沒有人類演奏者的任何手指彈奏的情況下有選擇地引起原聲鋼琴中的鍵運動。原聲鋼琴音調(diào)使樂迷滿意。然而,演唱者必須為伴奏準備表示樂曲節(jié)的一個聲部(part)的一組樂曲數(shù)據(jù)代碼。在市場上不銷售這組樂曲數(shù)據(jù)代碼的情況下,演唱者必須通過具有內(nèi)置記錄系統(tǒng)的自動演奏器鋼琴來順著樂器節(jié)的這一聲部記錄他或她的演奏。此外,通過自動演奏器鋼琴進行的重放獨立于演唱者的主旋律歌曲。即使演唱者為了他或她的藝術(shù)表現(xiàn)而希望改變節(jié)拍,自動演奏器鋼琴也將伴奏保持為原始節(jié)拍。因此,在現(xiàn)有技術(shù)卡拉OK的伴奏和自動演奏器鋼琴的伴奏之間存在折衷選擇。
發(fā)明內(nèi)容
因此,本發(fā)明的一個重要目的是提供一種自動演奏器,其與演唱者協(xié)調(diào)一致地在原聲樂器上演奏樂曲節(jié)的一個聲部。
本發(fā)明的另一重要目的是提供一種其中合并了自動演奏器的自動演奏器樂器。
為了達到所述目的,本發(fā)明提出利用表示內(nèi)部聲音的音高的樂曲數(shù)據(jù)來驅(qū)動原聲樂器,所述內(nèi)部聲音的音高與通過聲音識別確定的外部聲音的期望音高有關(guān)。
根據(jù)本發(fā)明的一個方面,提供一種用于在原聲樂器上演奏樂曲的一個聲部的自動演奏器,包括聲音識別器,至少分析在所述原聲樂器的外部產(chǎn)生的外部聲音的音高,基于外部聲音的音高確定期望音高,并產(chǎn)生至少表示與外部聲音的期望音高有關(guān)的內(nèi)部聲音的音高的樂曲數(shù)據(jù);多個致動器,與所述原聲樂器的操縱器相關(guān)聯(lián),并且響應(yīng)驅(qū)動信號,以獨立地驅(qū)動相關(guān)聯(lián)的操縱器,用于在沒有人類演奏者的任何動作的情況下以給定音高產(chǎn)生內(nèi)部聲音;以及控制器,連接于聲音識別器和所述多個致動器,并將所述驅(qū)動信號提供給與要被驅(qū)動的操縱器相關(guān)聯(lián)的致動器,用于以由所述樂曲數(shù)據(jù)表示的音高產(chǎn)生內(nèi)部聲音。
根據(jù)本發(fā)明的另一方面,提供一種用于演奏樂曲的至少一個聲部的自動演奏器樂器,包括原聲樂器,其包含被驅(qū)動用于指定內(nèi)部聲音的音高的操縱器,和連接于操縱器、并以通過操縱器指定的音高產(chǎn)生內(nèi)部聲音的音調(diào)生成器;以及自動演奏器,其被與所述原聲樂器相關(guān)聯(lián)地提供,并且包含聲音識別器,至少分析在所述原聲樂器的外部產(chǎn)生的外部聲音的音高,基于外部聲音的音高確定至少期望音高,并產(chǎn)生至少表示與期望音高有關(guān)的內(nèi)部聲音的音高的樂曲數(shù)據(jù),用于演奏所述樂曲的所述聲部;多個致動器,與所述操縱器相關(guān)聯(lián),并且響應(yīng)驅(qū)動信號,以便獨立地移動相關(guān)聯(lián)的操縱器,從而使音調(diào)生成器在沒有人類演奏者的任何動作的情況下產(chǎn)生內(nèi)部聲音;以及控制器,連接于聲音識別器和所述多個致動器,并將所述驅(qū)動信號提供給與要被驅(qū)動的操縱器相關(guān)聯(lián)的致動器,用于以由所述樂曲數(shù)據(jù)表示的音高產(chǎn)生內(nèi)部聲音。
根據(jù)結(jié)合附圖進行的以下描述,將更清楚地理解自動演奏器和自動演奏器樂器的特征及優(yōu)點,其中圖1是示出根據(jù)本發(fā)明的自動演奏器鋼琴的結(jié)構(gòu)的側(cè)視圖,圖2是示出合并在自動演奏器鋼琴中的自動演奏器的系統(tǒng)配置的方框圖,圖3是示出要在自動演奏器中處理的樂曲數(shù)據(jù)代碼的格式的視圖,圖4A和4B是示出在語音識別器上運行的計算機程序的流程圖,圖5A和5B是示出在鋼琴控制器上運行的計算機程序的流程圖,圖6是示出根據(jù)本發(fā)明的另一自動演奏器鋼琴的結(jié)構(gòu)的側(cè)視圖,圖7A和7B是示出在根據(jù)本發(fā)明合并于另一自動演奏器鋼琴中的語音識別器上運行的計算機程序的流程圖,以及圖8A和8B是示出根據(jù)本發(fā)明在另一自動演奏器鋼琴中采用的用于語音識別的計算機程序的流程圖。
具體實施例方式
實施本發(fā)明的自動演奏器樂器主要包括原聲樂器和自動演奏器。自動演奏器在原聲樂器上演奏樂曲,而沒有人類演奏者的任何手指彈奏。當(dāng)用戶指示自動演奏器用原聲樂器為他或她的歌曲伴奏時,自動演奏器分析由音頻信號代表的外部聲音中的歌唱(vocal)音調(diào)的音高,并提供表示包含在內(nèi)部聲音中的音調(diào)音高的樂曲數(shù)據(jù)以演奏伴奏。
原聲樂器包括操縱器和連接到該操縱器的音調(diào)生成器。人類演奏者或自動演奏器有選擇地驅(qū)動操縱器,使得音調(diào)生成器以由演奏者通過操縱器指定的音高產(chǎn)生音調(diào)。
自動演奏器包括聲音識別器、多個致動器和控制器??刂破鬟B接到聲音識別器和多個致動器,并且所述多個致動器與操縱器相互關(guān)聯(lián),以便有選擇地驅(qū)動操縱器以指定要產(chǎn)生的音調(diào)的音高。
當(dāng)演唱者開始演唱歌曲時,歌唱音調(diào)被連續(xù)地轉(zhuǎn)換為音頻信號,并且該音頻信號被提供給聲音識別器。聲音識別器通過對音頻信號的分析來確定每個音調(diào)的音高和響度,并且由于演唱者有時無意地以略微不同于樂譜上的音符音高的音高發(fā)出音調(diào),而假定演唱者期望的音調(diào)的音高。
隨后,聲音識別器確定要產(chǎn)生用于伴奏的音調(diào)的音高。要產(chǎn)生的音調(diào)的音高可以和歌唱音調(diào)的期望音高相同。在演唱者指示自動演奏器產(chǎn)生一系列和弦以進行伴奏的情況下,聲音識別器確定形成每個和弦的音調(diào)的音高。聲音識別器產(chǎn)生表示要產(chǎn)生用于伴奏的音調(diào)的樂曲數(shù)據(jù),并將該樂曲數(shù)據(jù)提供給控制器。
控制器指定要驅(qū)動用于產(chǎn)生音調(diào)的操縱器,并將驅(qū)動信號提供給與要驅(qū)動的操縱器相關(guān)聯(lián)的致動器。致動器被驅(qū)動信號激勵,并引起相關(guān)聯(lián)的操縱器的運動。作為結(jié)果,音調(diào)生成器以進行伴奏的音高產(chǎn)生音調(diào)。
如將理解的那樣,根據(jù)本發(fā)明的自動演奏器用原聲樂器為演唱者伴奏,使得演唱者可以練習(xí)歌曲,仿佛他或她站在音樂廳里的舞臺上一樣。
在以下描述中,術(shù)語“前面”表示比用術(shù)語“后面”修飾的位置更靠近演奏者的位置,所述演奏者正坐著用手指彈奏。在前面位置和對應(yīng)的后面位置之間畫的線沿“縱向”延伸,并且“橫向”以直角與縱向相交?!吧舷隆狈较虼怪庇谟煽v向和橫向定義的平面。在沒有任何外力的情況下,組成部件停留在各自的“靜止位置”,并且在運動的終點到達各自的“終點位置”。
第一實施例參考附圖的圖1,實施本發(fā)明的自動演奏器鋼琴主要包括自動演奏器1、原聲鋼琴30和靜音系統(tǒng)35。盡管還將記錄系統(tǒng)合并在自動演奏器鋼琴中,但是該記錄系統(tǒng)對于本領(lǐng)域技術(shù)人員來說是眾所周知的,并且為簡單起見而在上文中沒有合并進一步的描述。
自動演奏器1安裝在原聲鋼琴30中,并且在沒有人類演奏者的任何手指彈奏的情況下在原聲鋼琴30上演奏樂曲。自動演奏器1響應(yīng)存儲在一組樂曲數(shù)據(jù)代碼中的樂曲數(shù)據(jù),以便與現(xiàn)有技術(shù)的自動演奏器相似地在原聲鋼琴30上重演原始演奏。在此實例中,以MIDI(樂器數(shù)字接口)協(xié)議定義樂曲數(shù)據(jù)代碼的格式。
根據(jù)本發(fā)明的自動演奏器1識別順著樂曲的節(jié)發(fā)音的人類語音,并確定要產(chǎn)生用于伴奏的音調(diào)。由自動演奏器1識別的人類語音的屬性至少是音高和響度,使得自動演奏器可以確定要通過原聲鋼琴產(chǎn)生的音調(diào)的音符編號和速度。自動演奏器1產(chǎn)生表示要產(chǎn)生的音調(diào)的MIDI樂曲數(shù)據(jù)代碼,并驅(qū)動原聲鋼琴30產(chǎn)生用于伴奏的音調(diào)。這樣,自動演奏器1通過以實時方式對人類語音進行數(shù)據(jù)處理而及時地產(chǎn)生用于伴奏的音調(diào)。
靜音系統(tǒng)35包括弦槌阻擋器(stopper)35a和電動機61,并且通過電動機61在自由位置和阻擋位置之間改變弦槌阻擋器35a。當(dāng)弦槌阻擋器35a停留在自由位置時,弦槌阻擋器35a不是弦槌運動的障礙物,使得原聲鋼琴30照常產(chǎn)生原聲音調(diào)。當(dāng)弦槌阻擋器35a被改變到阻擋位置時,弦槌阻擋器35a被移動到弦槌軌跡上,以便在撞擊之前中斷弦槌運動。這樣,在阻擋位置處,在原聲鋼琴30中不產(chǎn)生任何原聲音調(diào)。
原聲鋼琴原聲鋼琴30包括具有黑鍵31a和白鍵31b的鍵盤31、弦槌32、動作單元33、弦34、制音器36、鋼琴箱體37和踏瓣系統(tǒng)PD。黑鍵31a和白鍵31b沿橫向布置,并以眾所周知的模式放置。在此實例中,88個鍵31a/31b形成該眾所周知的圖案。鍵盤31安裝在鋼琴箱體37的前部,并被暴露給人類演奏者。動作單元33、弦槌32、弦34和制音器37裝在鋼琴箱體37中,并通過利用蓋板(未示出)打開和關(guān)閉的鋼琴箱體的上部開口而被暴露到環(huán)境中。
在黑鍵和白鍵31a/31b后部的上方提供動作單元33,并且其分別與相關(guān)聯(lián)的黑鍵和白鍵31a/31b相鏈接。出于此原因,利用彼此獨立的相關(guān)聯(lián)的黑鍵和白鍵31a/31b來驅(qū)動動作單元33。弦槌32被保持與形成動作單元33的一部分的頂桿33a相接觸,并由動作單元33上方空間中的被驅(qū)動的動作單元33驅(qū)動以進行旋轉(zhuǎn)。
弦34在弦槌32的上方拉緊,并且弦槌32在旋轉(zhuǎn)的終點與相關(guān)聯(lián)的弦34碰撞。然后,弦34振動,并且通過振動的弦34產(chǎn)生原聲鋼琴音調(diào)。然而,當(dāng)弦槌阻擋器35a停留在阻擋位置時,弦槌32在撞擊弦34之前在弦槌阻擋器35a上回彈。這樣,弦槌阻擋器35a防止弦34與弦槌32撞擊,并且不允許弦34產(chǎn)生原聲鋼琴音調(diào)。
制音器36在其下端與黑鍵和白鍵31a/31b的后部相鏈接。當(dāng)黑鍵和白鍵31a/31b停留在靜止位置時,制音器36被保持與弦34相接觸,并且禁止弦34與其它振動的弦34諧振。當(dāng)演奏者開始按下黑鍵和白鍵31a/31b時,被按下的鍵31a/31b的前部開始向下的運動。黑鍵和白鍵31a/31b的后部引起制音器36的向上運動,并且使制音器36與弦34隔開。這樣,在相關(guān)聯(lián)的黑鍵和白鍵31a/31b的鍵軌跡上的中間點處,制音器36允許弦34振動。
踏瓣系統(tǒng)PD包括延音踏瓣P(guān)d、弱音踏瓣P(guān)s、選擇踏瓣(未示出)和用于這些踏瓣P(guān)s/Ps的鏈接構(gòu)件Lw。如本領(lǐng)域技術(shù)人員所公知的那樣,延音踏瓣P(guān)d通過保持制音器36被隔開來使原聲鋼琴音調(diào)被延長,并且弱音踏瓣P(guān)s通過減少與弦槌32撞擊的弦的數(shù)目來使鋼琴音調(diào)的音量較小。
當(dāng)人類演奏者在鍵盤31上用手指彈奏一首樂曲時,被按下的鍵31a/31b使相關(guān)聯(lián)的動作單元33被驅(qū)動,并且被驅(qū)動的動作單元33使相關(guān)聯(lián)的弦槌32被驅(qū)動以進行旋轉(zhuǎn),使得弦槌32在旋轉(zhuǎn)的終點撞擊弦34。振動的弦34順著這首樂曲產(chǎn)生原聲鋼琴音調(diào)。這樣,原聲鋼琴30表現(xiàn)得像本領(lǐng)域技術(shù)人員公知的原聲鋼琴一樣。
自動演奏器自動演奏器1包括語音識別器10、麥克風(fēng)21、聲音系統(tǒng)22、鋼琴控制器50、具有內(nèi)置活塞傳感器59a的電磁控制的(solenoid-operated)鍵致動器59、具有內(nèi)置活塞傳感器60a的電磁控制的踏瓣致動器60。鋼琴控制器50具有用于伴奏以及自動演奏的數(shù)據(jù)處理能力,并且語音識別器11具有用于對歌唱進行語音識別的數(shù)據(jù)處理能力。
鋼琴控制器50連接到電磁控制的鍵致動器59、內(nèi)置活塞傳感器59a、電磁控制的踏瓣致動器60和內(nèi)置活塞傳感器60a。鋼琴控制器50與電磁控制的鍵致動器59和用于黑鍵和白鍵31a/31b的內(nèi)置活塞傳感器59a一起形成伺服控制環(huán),并且與電磁控制的踏瓣致動器60和內(nèi)置活塞傳感器60a一起形成另一個伺服控制環(huán)。
語音識別器10連接到麥克風(fēng)21、聲音系統(tǒng)22和鋼琴控制器50。麥克風(fēng)21將表示歌曲的人類語音轉(zhuǎn)換為語音信號,并且,通過放大器(未示出)將該語音信號提供給語音識別器10。語音識別器10分析該語音,并確定要產(chǎn)生用于伴奏的歌唱音調(diào)。語音識別器10將表示該歌唱音調(diào)的樂曲數(shù)據(jù)存儲在樂曲數(shù)據(jù)代碼中,并將該樂曲數(shù)據(jù)代碼與從表示這首樂曲的這組樂曲數(shù)據(jù)代碼中復(fù)制的樂曲數(shù)據(jù)代碼一起提供給鋼琴控制器50。語音識別器10將語音信號提供給聲音系統(tǒng)22。作為結(jié)果,與伴奏同步地從聲音系統(tǒng)22放出歌曲。
電磁控制的鍵致動器59懸掛于中盤(key bed)37a,并且具有各自的活塞59b,所述活塞59b的頂端位于處于靜止位置的相關(guān)聯(lián)的黑鍵和白鍵31a/31b的后部的下表面附近。當(dāng)鋼琴控制器50利用驅(qū)動信號uk(t)激勵電磁控制的鍵致動器59時,活塞59b開始向上伸出,以便推動黑鍵和白鍵31a/31b的后部。當(dāng)從電磁控制的鍵致動器59移除驅(qū)動信號uk(t)時,動作單元33的自重使黑鍵和白鍵31a/31b返回靜止位置。這樣,利用電磁控制的鍵致動器59而不是人類演奏者來彈奏黑鍵和白鍵31a/31b。內(nèi)置活塞傳感器59a監(jiān)控活塞59b,并產(chǎn)生代表等于當(dāng)前鍵位置的當(dāng)前活塞位置的活塞位置信號xk。
在三個踏瓣P(guān)d/Ps和鏈接構(gòu)件Lw之間提供電磁控制的踏瓣致動器60,并且其具有各自的活塞60b,所述活塞60b的頂端處于這三個踏瓣P(guān)d/Ps的上表面附近。當(dāng)鋼琴控制器50利用驅(qū)動信號up(t)激勵這三個踏瓣P(guān)d/Ps時,活塞60b開始向下伸出,并向下推動踏瓣P(guān)d/Ps。由于與活塞60b相關(guān)聯(lián)地提供了復(fù)位彈簧(未示出),因此活塞60b在沒有驅(qū)動信號up(t)時返回其靜止位置。內(nèi)置活塞傳感器60a監(jiān)控相關(guān)聯(lián)的踏瓣P(guān)d/Ps,并且產(chǎn)生代表等于距靜止位置的踏瓣行程的當(dāng)前活塞位置的活塞位置信號xp。這樣,利用電磁控制的踏瓣致動器60而不是人類演奏者來壓下這三個踏瓣P(guān)d/Ps。
轉(zhuǎn)到附圖的圖2,語音識別器10包括被簡寫為“CPU”的中央處理單元11、計時器12、被簡寫為“ROM”的只讀存儲器13、被簡寫為“RAM”的隨機存取存儲器14、操縱板15、具有用于麥克風(fēng)21的模擬-數(shù)字轉(zhuǎn)換器16的信號接口、通信接口17、存儲單元18、音調(diào)生成器19、數(shù)字-模擬轉(zhuǎn)換器23和共享總線系統(tǒng)20。這些系統(tǒng)組件11、12、13、14、15、16、17、18、19和23連接到共享總線系統(tǒng)20,使得中央處理單元11能夠通過共享總線系統(tǒng)20與其它系統(tǒng)組件11至19和23通信。音調(diào)生成器19連接到聲音系統(tǒng)22,并且,通過聲音系統(tǒng)22將音頻信號轉(zhuǎn)換為電子音調(diào)。
中央處理單元11是語音識別器10的數(shù)據(jù)處理能力的源,并且順次執(zhí)行指令代碼以便完成給定任務(wù)。所述指令代碼形成在中央處理單元11上運行的計算機程序,并被存儲在只讀存儲器13中。在用于語音識別的數(shù)據(jù)處理期間讀出的其它參數(shù)也被存儲在只讀存儲器13中。
計算機程序被分解為主例程和子例程。當(dāng)用戶激勵語音識別器10時,中央處理單元11順次開始執(zhí)行主例程的指令代碼,并首先將語音識別器10初始化。當(dāng)中央處理單元11重復(fù)主例程時,用戶可與中央處理單元11通信,并向中央處理單元11給出用戶的指令。所述子例程之一被分配給語音識別,而另一個子例程被分配給從模擬-數(shù)字轉(zhuǎn)換器16的數(shù)據(jù)取出。主例程通過計時器中斷有選擇地周期性分支到這些子例程。這樣,中央處理單元11獲得語音數(shù)據(jù)、分析該語音數(shù)據(jù)、產(chǎn)生樂曲數(shù)據(jù)并將該樂曲數(shù)據(jù)傳送給鋼琴控制器50。
隨機存取存儲器14向中央處理單元11提供充當(dāng)臨時數(shù)據(jù)存儲區(qū)(storage)、標志和寄存器的大量可尋址存儲位置。語音數(shù)據(jù)、所分析的數(shù)據(jù)和表示要產(chǎn)生用于伴奏的電子音調(diào)的樂曲數(shù)據(jù)被存儲在這些臨時數(shù)據(jù)存儲區(qū)中。若干標志被分配給用戶的指令。
計時器12測量從開始語音識別起的時間經(jīng)過以及用于計數(shù)器中斷的時間間隔。當(dāng)子例程在中央處理單元11上運行以進行語音識別時,計時器中斷周期性地發(fā)生,并且中央處理單元11從模擬-數(shù)字轉(zhuǎn)換器16中提取(fetch)語音數(shù)據(jù)。該語音數(shù)據(jù)被存儲在隨機存取存儲器14中的臨時數(shù)據(jù)存儲區(qū)內(nèi)。
各種開關(guān)、鍵、指示器和顯示窗布置在用于用戶和中央處理單元之間的通信的操縱板15上。用戶通過這些開關(guān)和鍵向中央處理單元11給出他們的指令。用戶還通過操縱板15向鋼琴控制器50給出他們的指令,并且中央處理單元11通過通信接口17將用戶的指令傳送給鋼琴控制器50。中央處理單元11通過指示器和顯示窗向用戶報告當(dāng)前狀態(tài),并且通過顯示窗將提示消息傳達給用戶。
模擬-數(shù)字轉(zhuǎn)換器16周期性地采樣關(guān)于語音信號的離散值,并將該離散值轉(zhuǎn)換為語音數(shù)據(jù)代碼。如在上文中結(jié)合隨機存取存儲器14所述,語音數(shù)據(jù)代碼被存儲在臨時數(shù)據(jù)存儲區(qū)中,并隨后由中央處理單元11進行分析。
語音識別器10通過通信接口16連接到鋼琴控制器50,并且,將表示要產(chǎn)生用于伴奏的電音調(diào)的樂曲數(shù)據(jù)J、以及表示用戶的指令和要在鋼琴控制器50內(nèi)部完成的任務(wù)的控制數(shù)據(jù)CTL從中央處理單元11通過通信接口17傳送給鋼琴控制器50。所述控制數(shù)據(jù)之一表示對伴奏的請求,并被存儲在控制數(shù)據(jù)代碼中。
當(dāng)用戶演唱歌曲時,中央處理單元11通過對語音信號的分析來產(chǎn)生樂曲數(shù)據(jù)J,并將樂曲數(shù)據(jù)J與從存儲在隨機存取存儲器中的樂曲數(shù)據(jù)代碼復(fù)制的樂曲數(shù)據(jù)J一起提供給通信接口16。
存儲單元18以非易失的方式具有大量數(shù)據(jù)保存能力。在此實例中,利用硬盤驅(qū)動器單元來實現(xiàn)存儲單元18。然而,可以將諸如例如閃速存儲器的另一種類的非易失性存儲器用于語音識別器10。表示多首樂曲的多組樂曲數(shù)據(jù)代碼被存儲在存儲單元18中。以MIDI協(xié)議定義樂曲數(shù)據(jù)代碼的格式,并且要產(chǎn)生的音調(diào)和要衰減的音調(diào)被表示為音符開(note-on)事件和音符關(guān)(note-off)事件。術(shù)語“事件”代表音符開事件和音符關(guān)事件二者。
可以將計算機程序存儲在存儲單元18而不是只讀存儲器13中,使得在系統(tǒng)的初始化期間將計算機程序從存儲單元18傳送到隨機存取存儲器14。多組樂曲數(shù)據(jù)代碼被存儲在存儲單元18中。當(dāng)用戶指示中央處理單元11重演一首樂曲時,中央處理單元11通過通信接口17將表示這首樂曲的一組樂曲數(shù)據(jù)傳送給鋼琴控制器50。另一方面,當(dāng)用戶指示中央處理單元11用原聲鋼琴30來為他或她的歌曲伴奏時,中央處理單元通過對語音信號的分析來產(chǎn)生表示要由用戶演唱的旋律上的音調(diào)的樂曲數(shù)據(jù)J,并且從一組樂曲數(shù)據(jù)中復(fù)制表示其它聲部上的音調(diào)的樂曲數(shù)據(jù)J。這樣,所述多組樂曲數(shù)據(jù)代碼充當(dāng)樂曲數(shù)據(jù)J以及語音信號的源。當(dāng)然,用戶可以請求中央處理單元11僅僅將用于所述旋律上的音調(diào)的樂曲數(shù)據(jù)J傳送到通信接口17。
音調(diào)生成器19響應(yīng)樂曲數(shù)據(jù)代碼,以便從波形數(shù)據(jù)電子地產(chǎn)生音頻信號,并且將該音頻信號從音調(diào)生成器19提供給聲音系統(tǒng)22。中央處理單元11將語音數(shù)據(jù)代碼傳送給數(shù)字-模擬轉(zhuǎn)換器23,并且通過數(shù)字-模擬轉(zhuǎn)換器23將該語音數(shù)據(jù)代碼轉(zhuǎn)換為模擬信號。還將該模擬信號從數(shù)字-模擬轉(zhuǎn)換器23提供給聲音系統(tǒng)22,并且順著歌曲的旋律從聲音系統(tǒng)22發(fā)出電音調(diào)。
鋼琴控制器50包括通信接口51、信號接口51a、也被簡寫為“CPU”的中央處理單元52、計時器53、也被簡寫為“ROM”的只讀存儲器54、也被簡寫為“RAM”的隨機存取存儲器55、被簡寫為“PWM”的脈沖寬度調(diào)制器56/57、電動機驅(qū)動器58和共享總線系統(tǒng)64。這些系統(tǒng)組件51、51a、52、53、54、55、56、57和58連接到共享總線系統(tǒng)64,使得中央處理單元52可以通過共享總線系統(tǒng)64與其它系統(tǒng)組件51、51a和53至58通信。
中央處理單元52是鋼琴控制器50的數(shù)據(jù)處理能力的源,并且計算機程序和參數(shù)被存儲在只讀存儲器54中。中央處理單元52從只讀存儲器54中順次取出計算機程序的指令代碼,并完成由該指令代碼表示的任務(wù)。在隨機存取存儲器55中定義臨時數(shù)據(jù)存儲區(qū)、標志和寄存器。
計時器53測量從開始自動演奏起的時間經(jīng)過,以及用于計時器中斷的時間間隔。通信接口51連接到通信接口17,并從語音識別器10接收樂曲數(shù)據(jù)代碼和控制數(shù)據(jù)代碼。信號接口51a包括模擬-數(shù)字轉(zhuǎn)換器,其被有選擇地連接到內(nèi)置活塞傳感器59a和60a。信號接口51a周期性地采樣關(guān)于鍵位置信號xk的離散值和關(guān)于踏瓣位置信號xp的離散值,并且,將所述離散值存儲在鍵位置數(shù)據(jù)代碼和踏瓣位置數(shù)據(jù)代碼中。中央處理單元52周期性地取出樂曲數(shù)據(jù)代碼、控制數(shù)據(jù)代碼、鍵位置數(shù)據(jù)代碼和踏瓣位置數(shù)據(jù)代碼,并且,將其存儲在隨機存取存儲器55中。
脈沖寬度調(diào)制器56和57響應(yīng)從中央處理單元52通過共享總線系統(tǒng)64提供的控制數(shù)據(jù)代碼,以便將驅(qū)動信號uk(t)和up(t)調(diào)整為占空比的目標值,并將驅(qū)動信號uk(t)和up(t)提供給電磁控制的鍵致動器59和電磁控制的踏瓣致動器60。這樣,鋼琴控制器50利用驅(qū)動信號uk(t)up(t)有選擇地激勵電磁控制的鍵致動器59和電磁控制的踏瓣致動器60,以便在沒有人類演奏者的任何手指彈奏和腳踏(footwork)的情況下引起鍵運動和踏瓣運動。
電動機驅(qū)動器58連接到電動機61,并且響應(yīng)從中央處理單元52通過共享總線系統(tǒng)64提供的控制數(shù)據(jù)代碼,以便雙向地旋轉(zhuǎn)弦槌阻擋器35a。這樣,鋼琴控制器50在自由位置和阻擋位置之間改變弦槌阻擋器35a。
主例程和子例程形成在中央處理單元52上運行的計算機程序。所述子例程之一被分配給用于重演原始演奏的自動演奏,并且另一子例程被分配給用于實時伴奏的自動演奏。再一子例程被分配給從通信接口51和信號接口51a的數(shù)據(jù)取出,并且樂曲數(shù)據(jù)代碼、控制數(shù)據(jù)代碼和活塞位置數(shù)據(jù)代碼被存儲在隨機存取存儲器55中的臨時數(shù)據(jù)存儲區(qū)內(nèi)。主例程通過計時器中斷周期性地分支到子例程。
當(dāng)主例程開始在中央處理單元52上運行時,中央處理單元52首先將鋼琴控制器50初始化。主例程周期性地分支到用于數(shù)據(jù)取出(data fetch)的子例程。當(dāng)中央處理單元52進入用于數(shù)據(jù)取出的子例程時,中央處理單元52檢查通信接口51和信號接口51a,以查看控制數(shù)據(jù)、樂曲數(shù)據(jù)和位置數(shù)據(jù)中的任何一個是否到達通信接口51。如果任何控制數(shù)據(jù)都沒有到達通信接口51,則中央處理單元52返回主例程。當(dāng)中央處理單元52發(fā)現(xiàn)控制數(shù)據(jù)時,中央處理單元52解釋該控制數(shù)據(jù),并有選擇地增大或減小所述標志。另一方面,中央處理單元52將樂曲數(shù)據(jù)和位置數(shù)據(jù)傳送到隨機存取存儲器55,并將它們寫入分配給它們的臨時數(shù)據(jù)存儲區(qū)。
當(dāng)中央處理單元52進入用于自動演奏的子例程時,中央處理單元52檢查隨機存取存儲器55中的標志,以查看用戶是否已經(jīng)請求重演演奏。如果發(fā)現(xiàn)所述標志被減小,則中央處理單元52返回主例程。當(dāng)答案給出為肯定時,中央處理單元52請求中央處理單元11將表示要重演的樂曲的一組樂曲數(shù)據(jù)代碼從存儲單元18通過通信接口17傳送到通信接口51。通過用于數(shù)據(jù)取出的子例程將該樂曲數(shù)據(jù)代碼從通信接口51傳送到隨機存取存儲器55。當(dāng)這組樂曲數(shù)據(jù)代碼被積存在隨機存取存儲器55中時,中央處理單元52順次讀出該樂曲數(shù)據(jù)代碼,以便有選擇地驅(qū)動電磁控制的鍵致動器59和電磁控制的踏瓣致動器60。這樣,黑鍵和白鍵31a/31b以及踏瓣P(guān)d/Ps被有選擇地按下和釋放,使得鋼琴控制器50在原聲鋼琴30上重演這首樂曲。
當(dāng)中央處理單元52進入用于伴奏的子例程時,中央處理單元52首先檢查隨機存取存儲器55中的標志,以查看用戶是否已經(jīng)請求了伴奏。如果答案給出為否定,則中央處理單元52返回主例程。當(dāng)中央處理單元52發(fā)現(xiàn)標志已經(jīng)被增大時,中央處理單元52訪問臨時數(shù)據(jù)存儲區(qū),并讀出表示要產(chǎn)生用于伴奏的原聲鋼琴音調(diào)的樂曲數(shù)據(jù)代碼。中央處理單元分析存儲在所讀出的樂曲數(shù)據(jù)代碼中的樂曲數(shù)據(jù),并有選擇地驅(qū)動電磁控制的鍵致動器59和電磁控制的踏瓣致動器60以進行伴奏。
返回附圖的圖1,示出了語音識別器10的功能和鋼琴控制器50的功能。這些功能是通過執(zhí)行上文所述的計算機程序來實現(xiàn)的。在下文中,將由于所述歌曲而要發(fā)生的事件稱為“歌唱事件J(v)”,并且將從樂曲數(shù)據(jù)代碼復(fù)制的事件稱為“順序(sequential)事件J(s)”。
語音識別器10實現(xiàn)被稱為“音量分析”、“音高分析”、“音名(pitch name)分析”、“數(shù)據(jù)準備”和“順序事件搜索”的功能23、24、25、26和27。語音識別器10通過功能23分析音量信號的音量或響度,并確定演唱者的語音響度。語音識別器10還通過功能24分析音量信號的語音的音高,并確定該語音的音高。當(dāng)確定了音高時,語音識別器10通過功能25確定在平均律中什么音名N最接近該語音的音高,并隨后通過功能26來準備表示被分配了音名N的音調(diào)的樂曲數(shù)據(jù)。將該樂曲數(shù)據(jù)存儲在表示歌唱事件J(v)的樂曲數(shù)據(jù)代碼中,并且將該樂曲數(shù)據(jù)從語音識別器10提供給鋼琴控制器50。語音識別器10還通過功能27準備用于一個或多個順序事件J(s)的一個或多個樂曲數(shù)據(jù)代碼(如果有的話),并將所述一個或多個樂曲數(shù)據(jù)代碼提供給鋼琴控制器50。
方框62和63代表鋼琴控制器50的功能,鋼琴控制器50確定黑/白鍵31a/31b的基準軌跡、即一系列目標鍵位置值,并通過功能62改變平均電流量,以便強迫黑/白鍵31a/31b在基準軌跡上行進。如果樂曲數(shù)據(jù)代碼表示歌唱事件J(v),則鋼琴控制器50在沒有任何延遲的情況下將驅(qū)動信號uk(t)/up(t)調(diào)整為所述平均電流量。由于這一原因,電磁控制的鍵致動器59或電磁控制的踏瓣致動器60在樂曲數(shù)據(jù)代碼到達之后立即開始移動黑/白鍵31a/31b或踏瓣P(guān)d/Ps。
另一方面,如果樂曲數(shù)據(jù)代碼表示順序事件J(s),則鋼琴控制器50通過功能63將延遲時間引入驅(qū)動信號uk(t)或up(t)到平均電流量的調(diào)整中。這是由于活塞59a上的負載不同的事實?;钊?9a上的大部分負載歸因于隨著分配給黑/白鍵31a/31b的音名一起變化的動作單元33和弦槌32的自重。出于此原因,基于音名和速度來確定延遲時間。在只讀存儲器54中準備延遲表,并且中央處理單元52訪問用于順序事件j(s)的延遲表。所述平均電流量等效于驅(qū)動信號的占空比,并且通過脈沖寬度調(diào)制器56/57來進行所述調(diào)整。這樣,鋼琴控制器50通過電磁控制的鍵致動器59或電磁控制的踏瓣致動器60引起鍵運動或踏瓣運動,好像人類演奏者用原聲鋼琴30為歌曲伴奏一樣。由于人類演唱者一次只產(chǎn)生一個音調(diào),因此將連續(xù)發(fā)生歌唱事件J(v)。當(dāng)然,多于一個順序事件J(s)同時發(fā)生是有可能的。
當(dāng)自動演奏器1用原聲鋼琴30為歌曲伴奏時,順序事件J(s)被延遲。然而,歌唱事件J(v)不會被延遲,以便使鋼琴音調(diào)與歌曲良好地同步。
圖3示出了用于事件、即歌唱事件和順序事件二者的樂曲數(shù)據(jù)代碼的格式。用于事件的樂曲數(shù)據(jù)代碼包括數(shù)據(jù)字段FL1、FL2、FL3和FL4,所述數(shù)據(jù)字段被分別分配給類別數(shù)據(jù)、事件種類即音符開或音符關(guān)、音符編號Kn和速度vel。類別數(shù)據(jù)表示歌唱事件J(v)或順序事件J(s),并且音符開和音符關(guān)分別代表音調(diào)的生成和音調(diào)的衰減。音符編號Kn表示將以其產(chǎn)生音調(diào)的音名,并且等于音名N。用于音符開事件J(v)的速度vel與語音的響度成比例,并且用于音符關(guān)事件J(v)的速度vel被調(diào)整為缺省值。另一方面,從樂曲數(shù)據(jù)代碼中復(fù)制事件種類、音符編號Kn和用于順序事件J(s)的速度vel。
在下文中,參考圖4A、4B、5A和5B對所述計算機程序進行描述。
圖4A和4B示出了用于語音識別的子例程。中央處理單元11周期性地進入用于語音識別的子例程,順序執(zhí)行工作,并返回主例程。換句話說,在每個計時器中斷處,中央處理單元11重復(fù)進入子例程,執(zhí)行工作和返回主例程。
假設(shè)用戶指示自動演奏器1用原聲鋼琴30為他或她的歌曲伴奏。該伴奏將由用戶所演唱的聲部的音調(diào)以及通過從一組樂曲數(shù)據(jù)代碼中選擇的樂曲數(shù)據(jù)代碼表示的另一聲部的音調(diào)構(gòu)成。
當(dāng)確認了用戶的指令時,中央處理單元11將“-1”寫入在隨機存取存儲器14中創(chuàng)建的音符寄存器。值“-1”表示無聲狀態(tài),即用戶尚未開始演唱歌曲、以及音調(diào)之間的過渡(transit)狀態(tài)。中央處理單元11開始測量時間的經(jīng)過,并確定主例程將分支到子例程的定時。盡管中央處理單元11在預(yù)定時間周期的執(zhí)行之后返回主例程,但是在下文中將子例程中的任務(wù)描述為好像中央處理單元11連續(xù)地重復(fù)子例程一樣。
當(dāng)中央處理單元11進入子例程時,中央處理單元11首先從隊列的前部讀出語音數(shù)據(jù)代碼,并且確定由該語音數(shù)據(jù)代碼表示的語音的響度,如步驟S401,其中語音數(shù)據(jù)代碼通過用于數(shù)據(jù)取出的子例程周期性地進入該隊列。
隨后,中央處理單元11將響度值與閾值相比較,以查看該語音是否超過了預(yù)定的響度,如步驟S402。如果用戶尚未開始演唱歌曲,則樂曲數(shù)據(jù)代碼僅表示噪聲,其響度低于閾值,并且答案給出為否定“否”。然后,中央處理單元11進行到步驟S411,并檢查音符寄存器以查看音名V是否由“-1”表示。在用戶開始演唱歌曲之前,步驟S411處的答案給出為肯定“是”。
對于步驟S411處的肯定答案,中央處理單元11進行到步驟S410,并在這組樂曲數(shù)據(jù)代碼中搜索當(dāng)前要處理的樂曲數(shù)據(jù)代碼。如果中央處理單元11沒有發(fā)現(xiàn)任何當(dāng)前要處理的樂曲數(shù)據(jù)代碼,則中央處理單元11返回步驟S401。另一方面,當(dāng)中央處理單元11發(fā)現(xiàn)一個或多個樂曲數(shù)據(jù)代碼時,中央處理單元11從所述一個或多個樂曲數(shù)據(jù)代碼中將鍵編號Kn和速度vel復(fù)制到圖3示出的一個或多個樂曲數(shù)據(jù)代碼,并將該一個或多個樂曲數(shù)據(jù)代碼提供給鋼琴控制器50。當(dāng)完成步驟S410處的工作時,中央處理單元11返回步驟S401。因此,中央處理單元11重復(fù)由步驟S401、S402、S411和412組成的循環(huán),直到步驟S402處的答案改變?yōu)榭隙ā笆恰睘橹埂?br>
假設(shè)用戶開始演唱歌曲。所述響度超過了閾值,并且步驟S402處的答案改變?yōu)榭隙ā笆恰?。對于肯定答案“是”,中央處理單?1確定歌唱音調(diào)的音高,如步驟S403。盡管用戶試圖演唱由樂譜上的音符表示的歌曲,但是語音的音高并不總是與音符的音高一致。出于此原因,中央處理單元11將該語音的音高與候選(者)音高相比較,以查看用戶希望發(fā)出什么音調(diào),并確定最接近該語音的音高的音名N,如步驟S404。所述候選者是被分配給所有黑/白鍵31a/31b的音名。
隨后,中央處理單元11檢查音符寄存器,以查看該音名N是否與存儲在音符寄存器中的音名V相同,如步驟S406。如果已經(jīng)以音名N產(chǎn)生了音調(diào),則該音名N被寫入音符寄存器,并且答案給出為肯定“是”。在此情形中,用戶在采樣時間周期內(nèi)連續(xù)地以音高N發(fā)出歌唱音調(diào)。出于此原因,中央處理單元11丟棄該語音數(shù)據(jù)代碼,并進行到步驟S410。步驟S410處的工作已經(jīng)被描述過。
然而,如果尚未產(chǎn)生音調(diào)N,則步驟S405處的答案給出為否定“否”。然后,中央處理單元11檢查音符寄存器,以查看是否已經(jīng)將“-1”寫入了音符寄存器,如步驟S406。當(dāng)發(fā)現(xiàn)音調(diào)N處于樂曲節(jié)的前部時,答案給出為肯定“是”。類似地,當(dāng)用戶進入一音調(diào)和另一音調(diào)之間的過渡狀態(tài)時,步驟S406處的答案也給出為肯定“是”。然而,當(dāng)用戶將歌唱音調(diào)改變?yōu)橐裘鸑時,先前的音名V被存儲在音符寄存器中,并且步驟S406處的答案給出為否定“否”。
假設(shè)步驟S406處的答案給出為肯定。對于肯定答案“是”,中央處理單元11進行到步驟S408。中央處理單元11產(chǎn)生表示被分配了音名N的鍵31a/31b的歌唱音符開事件J(v)的樂曲數(shù)據(jù)代碼,并通過通信接口17將該樂曲數(shù)據(jù)代碼提供給鋼琴控制器50。中央處理單元在音名和響度的基礎(chǔ)上確定鍵編號Kn和速度vel,并將表示歌唱事件J(v)的代碼、表示音符開的代碼、鍵編號Kn和速度vel分別存儲在數(shù)據(jù)字段FL1、F12、FL3和FL4中。當(dāng)完成步驟S408處的工作時,中央處理單元11將音名N寫入音符寄存器,如步驟S409。這樣,通過原聲鋼琴30產(chǎn)生的音符的音名被作為音名V寄存在音符寄存器中。
當(dāng)用戶將音調(diào)從音高V改變?yōu)橐舾逳時,步驟S406處的答案給出為否定“否”,并且中央處理單元11產(chǎn)生表示被分配了音名V的鍵31a/31b的歌唱音符關(guān)事件的樂曲數(shù)據(jù)代碼,以便請求鋼琴控制器50衰減音高V的音調(diào),如步驟S407。表示歌唱事件J(v)、音符關(guān)、鍵編號Kn和預(yù)定速度vel的代碼被分別存儲在數(shù)據(jù)字段FL1、FL2、FL3和FL4中。隨后,中央處理單元11請求被分配了音名N的鍵31a/31b的歌唱音符開事件J(v),如步驟S408,并將音符寄存器從音名V重寫為音名N,如步驟S409。當(dāng)完成步驟S409處的工作時,中央處理單元11進行到步驟S410,并在這組樂曲數(shù)據(jù)代碼中搜索要復(fù)制用于順序事件J(s)的樂曲數(shù)據(jù)代碼。
因此,當(dāng)用戶演唱歌曲時,中央處理單元11重復(fù)由步驟S401至S410組成的循環(huán),并將表示歌唱事件J(v)和順序事件J(s)的樂曲數(shù)據(jù)代碼發(fā)送給鋼琴控制器50。
假定用戶進入樂譜上的音符之間的休止符。響度被減小到閾值以下,并且在音符寄存器中發(fā)現(xiàn)了先前音調(diào)的音名V。在此情形中,步驟S402處的答案給出為否定“否”,并且步驟S411處的答案也給出為否定“否”。然后,中央處理單元11產(chǎn)生表示被分配了音名V的鍵31a/31b的歌唱音符關(guān)事件J(v)的樂曲數(shù)據(jù)代碼,如步驟S412,并將該樂曲數(shù)據(jù)代碼發(fā)送給鋼琴控制器50,使得被分配了音名V的音調(diào)被衰減。隨后,中央處理單元11將音符寄存器從音名V重寫為-1,如步驟S413。作為結(jié)果,當(dāng)用戶從休止符中退出時,中央處理單元11通過具有肯定答案“是”的步驟S402和S406前進到步驟S408,并產(chǎn)生表示被分配了音名N的音調(diào)的歌唱音符開事件(v)的樂曲數(shù)據(jù)代碼。
如將從前面的描述理解的那樣,語音識別器10從語音信號產(chǎn)生表示歌唱事件J(v)的樂曲數(shù)據(jù)代碼、以及通過從所述樂曲數(shù)據(jù)代碼的復(fù)制產(chǎn)生表示順序事件J(s)的樂曲數(shù)據(jù)代碼,并將該樂曲數(shù)據(jù)代碼提供給鋼琴控制器50。
圖5A和5B圖示了用于伴奏的子例程。當(dāng)用戶指示自動演奏器1用原聲鋼琴30為歌曲伴奏時,中央處理單元11將表示用戶指令的控制數(shù)據(jù)代碼通過通信接口17提供給鋼琴控制器50。中央處理單元52增大表示伴奏的標志,并將-1寫入在隨機存取存儲器55中創(chuàng)建以便指示歌唱事件J(v)的鍵編號Kn的寄存器VoKey。中央處理單元52啟動計時器53以測量時間的經(jīng)過。主例程通過計時器中斷周期性地分支到用于伴奏的子例程。主例程還分支到用于數(shù)據(jù)取出的子例程,并且中央處理單元52將樂曲數(shù)據(jù)代碼傳送到隨機存取存儲器55,以便使該樂曲數(shù)據(jù)代碼進入臨時數(shù)據(jù)存儲區(qū)中的隊列尾部。
當(dāng)中央處理單元52進入用于伴奏的子例程時,中央處理單元52首先從隊列前部讀出樂曲數(shù)據(jù)代碼,并檢查該樂曲數(shù)據(jù)代碼,以查看歌唱識別器10是否請求鋼琴控制器50產(chǎn)生歌唱事件J(v),如步驟S501。如上文所述,所述事件被劃分為兩組,即歌唱事件J(v)和順序事件J(s)。如果要產(chǎn)生順序事件J(s),則步驟S501處的答案給出為否定“否”,并且中央處理單元52進行到步驟S502。另一方面,如果要產(chǎn)生歌唱事件J(v),則步驟S501處的答案給出為肯定“是”,并且中央處理單元52進行到步驟S506。
首先,假設(shè)樂曲數(shù)據(jù)代碼表示順序事件J(s)。中央處理單元52進行到步驟S502,并且分析表示順序事件J(s)的樂曲數(shù)據(jù)。中央處理單元52確定基準鍵軌跡,即一系列目標鍵位置值、以及到達第一目標鍵位置值將需要的平均電流量。如果樂曲數(shù)據(jù)代碼表示順序音符開事件J(s),則基準鍵軌跡將黑/白鍵31a/31b引導(dǎo)到終點位置。另一方面,如果樂曲數(shù)據(jù)代碼表示順序音符關(guān)事件,則基準鍵軌跡將被按下的鍵31a/31b引導(dǎo)到靜止位置。這樣,中央處理單元52確定用于被按下或被釋放的、被分配了鍵編號Kn的鍵31a/31b的目標占空比,如步驟S502。
隨后,中央處理單元52訪問延遲表,并從延遲表讀出用于被分配了鍵編號Kn的黑/白鍵31a/31b的延遲時間。中央處理單元52啟動計時器53,并將表示目標占空比的控制數(shù)據(jù)保存在寄存器中,直到延遲時間到期為止。這樣,中央處理單元52將延遲引入由樂曲數(shù)據(jù)代碼表示的工作的執(zhí)行中,如步驟S503。
隨后,中央處理單元52檢查寄存器VoKey,以查看用于順序事件J(s)的鍵編號Kn是否與當(dāng)前存儲在寄存器VoKey中的鍵編號相同,如步驟S504。
如果已經(jīng)為歌唱事件J(v)移動了被分配了鍵編號Kn的黑/白鍵31a/31b,則中央處理單元52必須忽略用于順序事件J(s)的樂曲數(shù)據(jù)代碼,并且步驟S504處的答案給出為肯定“是”。然后,中央處理單元52停止執(zhí)行順序事件J(s)將需要的工作,并且立即返回主例程。這樣,順序事件J(s)不會干擾用于歌唱事件J(v)的鍵運動。
另一方面,當(dāng)被分配了鍵編號Kn的黑/白鍵31a/31b不同于存儲在寄存器voKey中的鍵編號和-1時,在樂譜的另一聲部中發(fā)現(xiàn)要產(chǎn)生的音調(diào),并且步驟S504處的答案給出為否定“否”。然后,如步驟S505,中央處理單元52在1和0之間改變寄存器fSeKey[Kn],所述寄存器fSeKey[Kn]表示被分配了鍵編號Kn的黑/白鍵31a/31b的當(dāng)前狀態(tài)。寄存器fSeKey[Kn]充當(dāng)分別被分配給88個黑鍵和白鍵31a/31b的標志。當(dāng)樂曲數(shù)據(jù)代碼表示歌唱音符開事件時,寄存器FSeKey[Kn]被改變?yōu)?。另一方面,如果樂曲數(shù)據(jù)代碼表示歌唱音符關(guān)事件,則寄存器FSeKey[Kn]被改變?yōu)?。這樣,寄存器FSeKey[Kn]代表關(guān)于順序事件J(s)的黑/白鍵31a/31b的當(dāng)前鍵狀態(tài)。
當(dāng)完成步驟S505處的工作時,中央處理單元52將表示目標占空比的控制數(shù)據(jù)代碼提供給脈沖寬度調(diào)制器56,使得伺服控制環(huán)開始強迫黑/白鍵31a/31b在基準鍵軌跡上行進,如步驟S512。由于如步驟S503中央處理單元52已經(jīng)引入了延遲,因此原聲鋼琴音調(diào)被延遲。
當(dāng)樂曲數(shù)據(jù)代碼表示順序音符開事件J(s)時,黑/白鍵31a/31b在基準鍵軌跡上向終點位置行進,并且使弦槌32在自由旋轉(zhuǎn)的終點撞擊弦34。原聲鋼琴音調(diào)被以相當(dāng)于速度vel的響度產(chǎn)生。另一方面,當(dāng)樂曲數(shù)據(jù)代碼表示順序音符關(guān)事件J(s)時,黑/白鍵31a/31b在基準鍵軌跡上向靜止位置行進,并且使原聲鋼琴音調(diào)被衰減。
另一方面,當(dāng)樂曲數(shù)據(jù)代碼表示歌唱事件J(v)時,步驟S501處的答案給出為肯定“是”,并且中央處理單元52檢查樂曲數(shù)據(jù)代碼,以查看歌唱事件J(v)是否表示音符開,如步驟S506。
當(dāng)為黑/白鍵31a/31b請求歌唱音符開事件J(v)時,步驟S506處的答案給出為肯定“是”,并且中央處理單元52將鍵編號Kn寫入音符寄存器VoKey,如步驟S507。中央處理單元52檢查寄存器fSeKey[Kn],以查看被分配了鍵編號Kn的黑/白鍵31a/31b是否已經(jīng)被移動,即被改變?yōu)椤?”,如步驟S508。
如果已經(jīng)為順序音符開事件J(s)移動了被分配了鍵編號Kn的黑/白鍵31a/31b,則中央處理單元52指示脈沖寬度調(diào)制器56使黑/白鍵31a/31b立即返回靜止位置,如步驟S509,并等待到達靜止位置,如步驟S510。當(dāng)?shù)却龝r間到期時,中央處理單元52進行到步驟S511。這樣,自動演奏器1使伴奏與歌曲同步。
當(dāng)寄存器fSeKey[Kn]中的鍵編號與存儲在樂曲數(shù)據(jù)代碼中的鍵編號Kn不同時,被分配了鍵編號Kn的黑/白鍵31a/31b仍然停留在靜止位置,并且步驟S508處的答案給出為否定“否”。然后,中央處理單元52在不經(jīng)步驟S509和S510處的任何執(zhí)行的情況下進行到步驟S511。
當(dāng)中央處理單元52到達步驟S511時,中央處理單元52確定黑/白鍵31a/31b的基準鍵軌跡,并向脈沖寬度調(diào)制器56通知第一目標占空比值。伺服控制環(huán)開始強迫被分配了鍵編號Kn的黑/白鍵31a/31b在基準鍵軌跡上向終點位置行進,如步驟S512。黑/白鍵31a/31b使弦槌32向弦34旋轉(zhuǎn),以便產(chǎn)生原聲鋼琴音調(diào)。
假設(shè)樂曲數(shù)據(jù)代碼表示歌唱音符關(guān)事件J(v)。步驟S506處的答案給出為否定“否”。對于否定答案“否”,中央處理單元52確定被釋放的鍵31a/31b的基準鍵軌跡,如步驟S513,并將寄存器VoKey改變?yōu)?1,如步驟S514。
在步驟S512,中央處理單元52將表示目標占空比的控制數(shù)據(jù)代碼提供給脈沖寬度調(diào)制器56,使得伺服控制環(huán)強迫黑/白鍵31a/31b在基準鍵軌跡上向靜止位置行進。
如將理解的那樣,鋼琴控制器50將歌唱事件J(s)列入優(yōu)先地位,使得自動演奏器1不提前或延遲伴奏。自動演奏器1響應(yīng)人類演唱者的歌唱音調(diào),以便用諸如鋼琴30的原聲樂器為歌曲伴奏。因此,人類歌唱者在沒有用原聲樂器伴奏的任何人類演奏者的情況下練習(xí)歌曲。
此外,盡管歌唱事件J(v)與歌唱音調(diào)同時發(fā)生,但是將順序事件J(s)從標準定時延遲。延遲時間與鍵致動器59上的負載成比例,使得順序事件J(s)以間隔發(fā)生,好像人類演奏者用原聲樂器為歌曲伴奏一樣。因此,用戶覺得該伴奏很自然。
自動演奏器1將歌唱事件J(v)列為優(yōu)先于順序事件J(s)。即使用戶比記錄在一組樂曲數(shù)據(jù)代碼中的歌曲更慢或更快地演唱歌曲,自動演奏器1也會略去與歌唱事件J(v)相同的順序事件J(s)(參見從步驟S504的路徑“是”和步驟S508到S510),使得順序事件J(s)處的音調(diào)跟隨歌唱音調(diào)。這樣,伴奏與演唱良好地同步。
第二實施例轉(zhuǎn)到附圖的圖6,實施本發(fā)明的另一自動演奏器鋼琴主要包括自動演奏器1A和原聲鋼琴30A。原聲鋼琴30A在結(jié)構(gòu)上與原聲鋼琴30相似,從而用指示原聲鋼琴30的對應(yīng)組成部件的附圖標號和標記來標注組成部件。
另一方面,自動演奏器1A在數(shù)據(jù)處理上與自動演奏器1不同,并且為多個演唱者準備了多個麥克風(fēng)21a和21b。由于語音信號被并行地輸入語音識別器10A,因此對分別從該語音信號采樣的多組語音數(shù)據(jù)進行音量分析23A、音高分析24A、音名分析25A和數(shù)據(jù)準備26A。
鋼琴控制器50A在系統(tǒng)配置上與控制器50相似。然而,用于伴奏的子例程與圖5A和5B示出的子例程略微不同。盡管在第一實施例中將歌唱事件J(v)中的鍵編號Kn存儲在音符寄存器VoKey中,但是用標志寄存器fVoKey[Kn]來代替音符寄存器VoKey,所述標志寄存器fVoKey[Kn]的標志被分別分配給黑鍵和白鍵31a/31b。當(dāng)黑/白鍵31a/31b對于歌唱音符開事件J(v)開始行進時,相關(guān)聯(lián)的標志被增大,即被改變?yōu)椤?”。如果黑/白鍵31a/31b停留在靜止位置或者被發(fā)現(xiàn)位于前往靜止位置的途中,則減小所述標志。在初始化中,減小所有標志fVoKey[Kn]。與第一實施例中的事件相似,所述事件被分類為歌唱事件J(v)或順序事件j(s)。盡管在鋼琴控制器50中連續(xù)地處理歌唱事件J(v),但是鋼琴控制器50A將同時響應(yīng)請求以產(chǎn)生多于一個的歌唱事件J(v)。在下文中,對用于伴奏的子例程進行描述。
圖7A和7B圖示了用于伴奏的子例程。步驟S601至S603、S606和S608至S613處的工作與步驟S501至S503、S506和S508至S513處的工作相同,并且為了避免重復(fù)而省略描述。
當(dāng)完成步驟S603處的工作時,中央處理單元52檢查標志寄存器fVoKey[Kn],以查看是否已經(jīng)為歌唱音符開事件J(s)移動了被分配了鍵編號Kn的黑/白鍵,如步驟S604。如果與鍵編號Kn相關(guān)聯(lián)的標志已經(jīng)被增大或改變?yōu)椤?”,則答案給出為肯定“是”,并且中央處理單元52立即返回主例程。換句話說,中央處理單元52忽略被分配了鍵編號Kn的鍵31a/31b的順序事件J(s)。
如果中央處理單元52發(fā)現(xiàn)與被分配了鍵編號Kn的黑/白鍵31a/31b相關(guān)聯(lián)的標志被減小,即為“0”,則步驟S604處的答案給出為否定“否”,并且中央處理單元52將標志fSeKey[Kn]從“0”改變?yōu)椤?”,或者反之亦然,如步驟S605。更詳細地說,當(dāng)順序事件J(s)表示音符開時,中央處理單元52增大與鍵編號Kn相關(guān)聯(lián)的標志,即將該標志改變?yōu)椤?”。另一方面,如果順序事件J(s)表示音符關(guān),則中央處理單元52減小該標志,即將其改變?yōu)椤?”。
當(dāng)中央處理單元52發(fā)現(xiàn)樂曲數(shù)據(jù)代碼表示音符關(guān)事件時,步驟S601處的答案給出為肯定“是”,并且中央處理單元52進行到步驟S606。步驟S606處的工作與步驟S506處的工作相同。當(dāng)中央處理單元52發(fā)現(xiàn)歌唱事件J(v)用于音符開時,步驟S606處的答案給出為肯定“是”,并且中央處理單元52將標志寄存器fVoKey[Kn]中的標志改變?yōu)椤?”,如步驟S607。這樣,鋼琴控制器50A將分配給已被驅(qū)動產(chǎn)生鋼琴音調(diào)的黑/白鍵31a/31b的鍵編號Kn存儲在標志寄存器fVoKey[Kn]中。這樣,步驟S607處的工作允許中央處理單元52在步驟S604做出決定。
如將從前面的描述意識到的,當(dāng)演唱者練習(xí)二重唱時,自動演奏器1A用原聲鋼琴30A與歌唱音調(diào)良好同步地為二重唱伴奏。實現(xiàn)第二實施例的自動演奏器實現(xiàn)了第一實施例的全部優(yōu)點。
第三實施例實施本發(fā)明的另一自動演奏器鋼琴也主要包括原聲鋼琴和自動演奏器。該原聲鋼琴在結(jié)構(gòu)上與原聲鋼琴30類似,并且除了用于語音識別的子例程以外,該自動演奏器與自動演奏器1相似。出于此原因,為簡單起見,將描述集中在用于語音識別的子例程上。
語音識別器順著由人類演唱者演唱的樂曲的節(jié)確定和弦,并將表示形成該和弦的音調(diào)的樂曲數(shù)據(jù)代碼提供給鋼琴控制器。然而,不從存儲在存儲單元中的MIDI樂曲數(shù)據(jù)代碼復(fù)制任何樂曲數(shù)據(jù)。
圖8A和8B圖示了用于語音識別的子例程。由于該語音識別器在系統(tǒng)配置上與語音識別器10相似,因此利用與指示語音識別器10的對應(yīng)系統(tǒng)組件的附圖標記相同的附圖標記來標注該系統(tǒng)組件。
假設(shè)用戶指示自動演奏器用原聲鋼琴為他或她的歌曲伴奏。當(dāng)確認了用戶的指令時,中央處理單元11將“-1”寫入在隨機存取存儲器14中創(chuàng)建的音符寄存器。值“-1”表示無聲狀態(tài),即用戶尚未開始演唱歌曲、以及音調(diào)之間的過渡狀態(tài)。中央處理單元11開始測量時間的經(jīng)過,并確定主例程將分支到子例程的定時。盡管中央處理單元11在預(yù)定時間周期的執(zhí)行之后返回主例程,但是在下文中將子例程中的工作描述為好像中央處理單元11連續(xù)地重復(fù)該子例程一樣。
當(dāng)中央處理單元11進入子例程時,如步驟S701,中央處理單元11首先從隊列的前部讀出語音數(shù)據(jù)代碼,并且確定由該語音數(shù)據(jù)代碼表示的語音的響度,其中語音數(shù)據(jù)代碼通過用于數(shù)據(jù)取出的子例程周期性地進入該隊列。
隨后,中央處理單元11將響度值與閾值相比較,以查看該歌唱音調(diào)是否超過了預(yù)定的響度,如步驟S702。如果用戶尚未開始演唱歌曲,則樂曲數(shù)據(jù)代碼僅表示噪聲,其響度低于閾值,并且步驟S702處的答案給出為否定“否”。然后,中央處理單元11進行到步驟S711,并檢查音符寄存器,以查看音名V和V1是否由“-1”表示。在用戶開始演唱歌曲之前,步驟S711處的答案給出為肯定“是”。
對于步驟S711處的肯定答案“是”,中央處理單元11立即返回步驟S701。這樣,中央處理單元11重復(fù)由步驟S701、S702和S711組成的循環(huán),直到步驟S702處的答案給出為肯定為止。
假設(shè)用戶開始演唱歌曲。所述響度超過了閾值,并且步驟S702處的答案改變?yōu)榭隙ā笆恰?。對于肯定答案“是”,中央處理單?1確定語音的音高,如步驟S703。盡管用戶試圖演唱由樂譜上的音符表示的歌曲,但是語音的音高并不總是與音符的音高一致。出于此原因,中央處理單元11將語音的音高與候選(者)音高相比較,以查看用戶希望發(fā)出什么音調(diào),并確定最接近語音音高的音名N,如步驟S704。所述候選者是被分配給所有黑鍵和白鍵31a/31b的音名。
隨后,中央處理單元11查找存儲在只讀存儲器13中的和弦表,并確定與被分配了音名N的音調(diào)一起形成和弦的音調(diào),如步驟S705。利用“N1”來標注所述音調(diào)的一個或多個音名。
隨后,中央處理單元11檢查音符寄存器,以查看音名N和N1是否與存儲在音符寄存器中的音名V和V1相同,如步驟S706。被分配了音名V和V 1的音調(diào)形成已經(jīng)為其按下黑鍵和白鍵31a/31b的和弦。如果已經(jīng)或者很快將以音名N和N1產(chǎn)生音調(diào),則音名N和N1作為音名V和V1而被寫入了音符寄存器,并且步驟S706處的答案給出為肯定“是”。在此情形中,中央處理單元11確定丟棄用于音名N處的歌唱音符開事件的樂曲數(shù)據(jù)代碼,并立即返回步驟S701。
然而,如果尚未產(chǎn)生被分配了音名N和N1的音調(diào),則步驟S706處的答案給出為否定“否”。隨后,中央處理單元11檢查音符寄存器,以查看是否已經(jīng)將“-1”寫入了音符寄存器,如步驟S707。當(dāng)在樂曲節(jié)的前部發(fā)現(xiàn)要產(chǎn)生的音調(diào)N時,答案給出為肯定“是”。類似地,當(dāng)用戶進入一音調(diào)和另一音調(diào)之間的過渡狀態(tài)時,步驟S707處的答案也給出為肯定“是”。然而,當(dāng)用戶將歌唱音調(diào)改變?yōu)橐裘鸑時,先前的音名V和V1被存儲在音符寄存器中,并且步驟S707處的答案給出為否定“否”。
假設(shè)步驟S707處的答案給出為肯定。對于肯定答案“是”,中央處理單元11進行到步驟S709。中央處理單元11產(chǎn)生表示用于和弦,即被分配了音名N和N1的音調(diào)的樂曲數(shù)據(jù)代碼,并將該樂曲數(shù)據(jù)代碼通過通信接口17提供給鋼琴控制器50。中央處理單元在音名N和響度的基礎(chǔ)上確定鍵編號Kn和速度vel的值,并將表示歌唱事件J(v)的代碼、表示音符開的代碼、鍵編號Kn和速度vel分別存儲在數(shù)據(jù)字段Fl1、FL2、FL3和FL4中。當(dāng)完成步驟S709處的工作時,中央處理單元11將音名N和N1寫入音符寄存器,如步驟S710。這樣,作為音名V和V1來寄存通過原聲鋼琴30產(chǎn)生的音調(diào)的音名。
當(dāng)用戶將和弦從音名V和V1改變?yōu)橐裘鸑和N1時,步驟S707處的答案給出為否定“否”,并且中央處理單元11產(chǎn)生表示被分配了音名V和V1的鍵31a/31b的歌唱音符關(guān)事件的樂曲數(shù)據(jù)代碼,以便請求鋼琴控制器50衰減音高V和V1的音調(diào),如步驟S708。表示歌唱事件J(v)、音符關(guān)、鍵編號Kn和預(yù)定速度vel的代碼被分別存儲在數(shù)據(jù)字段FL1、FL2、FL3和FL4中。隨后,中央處理單元11請求被分配了音名N和N1的鍵31a/31b的歌唱音符開事件J(v),如步驟S709,并將音符寄存器從音名V和V1重寫為音名N和N1,如步驟S710。當(dāng)完成步驟S710處的工作時,中央處理單元11返回步驟S701。
因此,當(dāng)用戶演唱歌曲時,中央處理單元重復(fù)由步驟S701至S710組成的循環(huán),并將表示和弦的樂曲數(shù)據(jù)代碼發(fā)送給鋼琴控制器50。
假設(shè)用戶進入樂譜上的音符之間的休止符。所述響度被減小到閾值以下,并且在音符寄存器中發(fā)現(xiàn)了先前和弦的音名。在此情形中,步驟S702處的答案給出為否定“否”,并且步驟S711處的答案也給出為否定“否”。然后,中央處理單元11產(chǎn)生表示被分配了音名V和V1的鍵31a/31b的音符關(guān)事件的樂曲數(shù)據(jù)代碼,如步驟S712,并將該樂曲數(shù)據(jù)代碼發(fā)送給鋼琴控制器50,使得音名為V和V1的音調(diào)被衰減。
隨后,中央處理單元11將音符寄存器從音名V和V1重寫為-1,如步驟S713。結(jié)果,當(dāng)用戶從休止符中退出時,中央處理單元11從步驟S701通過步驟S702、S703、S704、S705、S706和S707前進到步驟S709,并產(chǎn)生表示被分配了音名N和N1的音調(diào)的音符開事件的樂曲數(shù)據(jù)代碼。
如將從前面的描述意識到的那樣,語音識別器在歌唱音調(diào)的基礎(chǔ)上產(chǎn)生表示和弦的樂曲數(shù)據(jù)代碼,并使自動演奏器用原聲鋼琴為歌曲伴奏。
盡管示出和描述了本發(fā)明的特定實施例,但是對本領(lǐng)域技術(shù)人員來說將清楚的是,在不脫離本發(fā)明的精神和范圍的情況下,可以進行各種改變和修改。
可以將這組樂曲數(shù)據(jù)代碼從合適的數(shù)據(jù)源通過公共或?qū)S猛ㄐ啪W(wǎng)絡(luò)加載到鋼琴控制器中。在此實例中,該通信網(wǎng)絡(luò)連接到通信接口17。
樂曲數(shù)據(jù)代碼中的音符編號Kn可以與音名N隔開“三度(third)”或“五度(fifth)”。另外,該間隔可以由用戶指定??梢詫⒁舴_事件J(v)的速度vel調(diào)整為由用戶指定的值。另一方面,音符關(guān)事件J(v)的速度vel可以根據(jù)響度而變化。
可以用除了被分配給黑鍵和白鍵31a/31b的鍵編號Kn以外的另一個值來表示無聲狀態(tài)。在n為88的情況下,可以用89來表示無聲狀態(tài)。
可以為超過兩個演唱者準備超過兩個麥克風(fēng)。換句話說,麥克風(fēng)的數(shù)目不對本發(fā)明的技術(shù)范圍設(shè)置任何限制。
自動演奏器可以僅以與歌唱音調(diào)的音名相同的音名來產(chǎn)生音調(diào),以進行伴奏。
可以與由MIDI樂曲數(shù)據(jù)代碼表示的音調(diào)一起產(chǎn)生所述和弦。
在第一和第二實施例中,可以將優(yōu)選權(quán)給予比對應(yīng)事件更早到達鋼琴控制器的事件。在此控制序列中,如果黑/白鍵31a/31b的順序事件J(s)比相同鍵的歌唱事件J(v)更早到達鋼琴控制器,則基于順序事件J(s)來產(chǎn)生音調(diào)。圖5A和5B示出的計算機程序可被修改用于如下控制序列。在步驟S504處的答案給出為肯定“是”的情況下,中央處理單元11進行與步驟S509和S510處的工作相同的工作,并隨后返回主例程。
可以在鋼琴30上以及通過音調(diào)生成器19演奏所述伴奏。當(dāng)演唱者不希望打擾鄰居時,他或她將弦槌阻擋器35a改變到阻擋位置,并且指示自動演奏器1/1A通過音調(diào)生成器19為歌曲伴奏。
鋼琴控制器50/50A還可以驅(qū)動踏瓣P(guān)D。例如,如果速度vel超過閾值,則鋼琴控制器PD可以壓下延音踏瓣P(guān)d。另一方面,如果速度vel低于另一閾值,則鋼琴控制器PD可以壓下弱音踏瓣P(guān)s。因此,黑鍵和白鍵31a/31b不對本發(fā)明的技術(shù)范圍設(shè)置任何限制。
可以為直立式鋼琴提供所述自動演奏器。然而,原聲鋼琴不對本發(fā)明的技術(shù)范圍設(shè)置任何限制。自動演奏器可以在例如管風(fēng)琴和大鍵琴的另一種類的鍵盤樂器、例如吉他的弦樂器以及例如鋼片琴的打擊樂器上演奏所述伴奏。
歌曲不對本發(fā)明的技術(shù)范圍設(shè)置任何限制。用戶可以在樂器上演奏樂曲,以便提供代表通過該樂器產(chǎn)生的音調(diào)的音頻信號。
在實施例中描述的自動演奏器鋼琴的組成部件與權(quán)利要求語言相關(guān)如下。
原聲鋼琴音調(diào)對應(yīng)“內(nèi)部聲音”,并且歌唱音調(diào)相當(dāng)于“外部聲音”。原聲鋼琴30/30A充當(dāng)“原聲樂器”,并且語音識別器10/10A對應(yīng)于“聲音識別器”。語音信號對應(yīng)于“音頻信號”。黑鍵和白鍵31a/31b以及踏瓣P(guān)D充當(dāng)“操縱器”,并且電磁控制的鍵致動器59和電磁控制的踏瓣致動器對應(yīng)于“多個致動器”。鋼琴控制器50/50A充當(dāng)“控制器”。
表示順序事件J(s)的樂曲數(shù)據(jù)或表示另一麥克風(fēng)上的語音事件J(v)的樂曲數(shù)據(jù)對應(yīng)于“附加樂曲數(shù)據(jù)”。在“附加樂曲數(shù)據(jù)”充當(dāng)表示其它麥克風(fēng)上的語音事件J(v)的樂曲數(shù)據(jù)的情況下,表示順序事件J(s)的樂曲數(shù)據(jù)充當(dāng)“其它樂曲數(shù)據(jù)”。
動作單元33、弦槌32、弦34、制音器36、音調(diào)生成器19和聲音系統(tǒng)22作為整體構(gòu)成“音調(diào)生成器”。
權(quán)利要求
1.一種用于在原聲樂器(30;30A)上演奏樂曲的一個聲部的自動演奏器(1;1A),包括多個致動器(59/60),與所述原聲樂器(30;30A)的操縱器(31a/31b/PD)相關(guān)聯(lián),并且響應(yīng)驅(qū)動信號(uk(t)/up(t)),以便獨立地驅(qū)動相關(guān)聯(lián)的操縱器(31a/31b/PD),用于在沒有人類演奏者的任何動作的情況下以給定音高產(chǎn)生內(nèi)部聲音;以及控制器(50;50A),連接于所述多個致動器(59/60),并將所述驅(qū)動信號(uk(t)/up(t))提供給與要被驅(qū)動的操縱器(31a/31b/PD)相關(guān)聯(lián)的致動器(59/60),其特征在于還包括聲音識別器(10;10A),連接于所述控制器(50;50A),至少分析在所述原聲樂器(30;30A)的外部(21;21a)產(chǎn)生的外部聲音的音高,基于所述外部聲音的所述音高確定期望音高(N),并將表示至少與所述期望音高(N)有關(guān)的所述內(nèi)部聲音的音高(Kn)的樂曲數(shù)據(jù)(J(v))提供給所述控制器(50;50A),使得所述控制器(50;50A)驅(qū)動所述操縱器(31a/31b/PD),用于以由所述樂曲數(shù)據(jù)(J(v))表示的所述音高(Kn)產(chǎn)生所述內(nèi)部聲音。
2.如權(quán)利要求1所述的自動演奏器,所述內(nèi)部聲音的所述音高(Kn)與所述外部聲音的所述期望音高(N)相同。
3.如權(quán)利要求1所述的自動演奏器,其中,所述聲音識別器(10;10A)還產(chǎn)生附加樂曲數(shù)據(jù)(J(s);J(v)),所述附加樂曲數(shù)據(jù)(J(s);J(v))至少表示要與由所述樂曲數(shù)據(jù)(J(v))表示的所述內(nèi)部聲音一起產(chǎn)生的所述內(nèi)部聲音的音高(Kn),使得所述控制器(50;50A)還將所述驅(qū)動信號(uk(t)/up(t))提供給與要被驅(qū)動的操縱器(31a/31b/PD)相關(guān)聯(lián)的致動器(59/60),用于以由所述附加樂曲數(shù)據(jù)(J(s);J(v))表示的音高(Kn)產(chǎn)生所述內(nèi)部聲音。
4.如權(quán)利要求3所述的自動演奏器,其中,基于從表示所述樂曲的一組樂曲數(shù)據(jù)代碼中選擇的樂曲數(shù)據(jù)代碼來產(chǎn)生所述附加樂曲數(shù)據(jù)(J(s))。
5.如權(quán)利要求3所述的自動演奏器,其中,如果所述附加樂曲數(shù)據(jù)(J(s))中的所選擇的一些表示與由已經(jīng)為其驅(qū)動了相關(guān)聯(lián)的操縱器(59;60)的所述樂曲數(shù)據(jù)(J(v))表示的音高(VoKey;fVoKey[Kn])相同的音高(Kn),則在將所述驅(qū)動信號(uk(t)/up(t))提供給所述致動器(59/60)之前,丟棄所述附加樂曲數(shù)據(jù)(J(s))中的所述所選擇的一些。
6.如權(quán)利要求3所述的自動演奏器,其中,基于在所述原聲樂器(30A)的外部(21b)產(chǎn)生的其它外部聲音來產(chǎn)生所述附加樂曲數(shù)據(jù)(J(v))。
7.如權(quán)利要求6所述的自動演奏器,其中,所述聲音識別器(10A)還產(chǎn)生至少表示所述內(nèi)部聲音的音高(Kn)的其它樂曲數(shù)據(jù)(J(s)),使得所述控制器(50A)還將所述驅(qū)動信號(uk(t)/up(t))提供給與要被驅(qū)動的操縱器(31a/31b/PD)相關(guān)聯(lián)的致動器(59;60),用于以由所述其它樂曲數(shù)據(jù)(J(s))表示的音高(Kn)產(chǎn)生所述內(nèi)部聲音。
8.如權(quán)利要求7所述的自動演奏器,其中,基于從表示所述樂曲的一組樂曲數(shù)據(jù)代碼中選擇的樂曲數(shù)據(jù)代碼來產(chǎn)生所述其它樂曲數(shù)據(jù)(J(s))。
9.如權(quán)利要求1所述的自動演奏器,其中,所述內(nèi)部聲音的所述音高(Kn)與所述外部聲音的所述期望音高(N)隔開一個或多個預(yù)定間隔。
10.如權(quán)利要求1所述的自動演奏器,其中,所述內(nèi)部聲音的所述音高(Kn)部分與所述外部聲音的所述期望音高(N)相同,并且部分與所述期望音高(N1)隔開預(yù)定間隔。
11.如權(quán)利要求1所述的自動演奏器,其中,所述外部聲音(12;21a)包含由人類演唱者演唱的歌唱音調(diào)。
12.如權(quán)利要求11所述的自動演奏器,其中,所述多個致動器(59;60)有選擇地驅(qū)動所述操縱器(31a/31b/PD),以便用所述原聲樂器(30;30A)為所述人類演唱者伴奏。
13.一種用于演奏樂曲的至少一個聲部的自動演奏器樂器,包括原聲樂器(30;30A),包含操縱器(31a/31b/PD),被驅(qū)動用于指定內(nèi)部聲音的音高(Kn),和音調(diào)生成器(32/33/34/36),連接于所述操縱器(31a/31b/PD),并以通過所述操縱器(31a/31b/PD)指定的所述音高(Kn)產(chǎn)生所述內(nèi)部聲音;以及自動演奏器(1;1A),被與所述原聲樂器(30;30A)相關(guān)聯(lián)地提供,并且包含多個致動器(59;60),與所述操縱器(31a/31b/PD)相關(guān)聯(lián),并且響應(yīng)驅(qū)動信號(uk(t)/up(t)),以便獨立地驅(qū)動相關(guān)聯(lián)的操縱器(31a/31b/PD),從而使所述音調(diào)生成器(32/33/34/36)在沒有人類演奏者的任何動作的情況下產(chǎn)生所述內(nèi)部聲音,和控制器(50;50A),連接于所述多個致動器(59/60),并且將所述驅(qū)動信號(uk(t)/up(t))有選擇地提供給與要被驅(qū)動的操縱器(31a/31b/PD)相關(guān)聯(lián)的致動器(59/60),用于產(chǎn)生所述內(nèi)部聲音,其特征在于所述自動演奏器(1;1A)還包括聲音識別器(10;10A),其連接于所述控制器(50;50A),至少分析在所述原聲樂器(30;30A)的外部(21;21a)產(chǎn)生的外部聲音的音高,基于所述外部聲音的所述音高確定至少期望音高(N),并將至少表示與所述期望音高(N)有關(guān)的所述內(nèi)部聲音的音高(Kn)的樂曲數(shù)據(jù)(J(v))提供給所述控制器(50;50A),從而使所述控制器(50;50A)利用所述多個致動器(59/60),以由所述樂曲數(shù)據(jù)(J(v))表示的所述音高(Kn)產(chǎn)生所述內(nèi)部聲音。
14.如權(quán)利要求13所述的自動演奏器樂器,其中,所述音調(diào)生成器(32/33/34/36)通過弦(34)的振動產(chǎn)生所述內(nèi)部聲音,其中所述多個致動器(59/60)通過所述操縱器(31a/31b/PD)的運動而有選擇地引起所述弦(34)的振動。
15.如權(quán)利要求14所述的自動演奏器樂器,其中,所述音調(diào)生成器(32/33/34/36)和所述操縱器(31a/31b/PD)形成充當(dāng)所述原聲樂器的原聲鋼琴(30;30A)的多個部分。
16.如權(quán)利要求13所述的自動演奏器樂器,其中,所述聲音識別器(10;10A)還產(chǎn)生附加樂曲數(shù)據(jù)(J(s);J(v)),所述附加樂曲數(shù)據(jù)(J(s);J(v))至少表示要與由所述樂曲數(shù)據(jù)(J(v))表示的所述內(nèi)部聲音一起產(chǎn)生的所述內(nèi)部聲音的音高(Kn),使得所述控制器(50;50A)還將所述驅(qū)動信號(uk(t)/up(t))提供給與要被驅(qū)動的操縱器(31a/31b/PD)相關(guān)聯(lián)的致動器(59/60),用于以由所述附加樂曲數(shù)據(jù)(J(s);J(s))表示的音高(Kn)產(chǎn)生所述內(nèi)部聲音。
17.如權(quán)利要求16所述的自動演奏器樂器,其中,基于從表示所述樂曲的一組樂曲數(shù)據(jù)代碼中選擇的樂曲數(shù)據(jù)代碼來產(chǎn)生所述附加樂曲數(shù)據(jù)(J(s))。
18.如權(quán)利要求16所述的自動演奏器樂器,其中,如果所述附加樂曲數(shù)據(jù)(J(s))中的所選擇的一些表示與由已經(jīng)為其驅(qū)動了相關(guān)聯(lián)的操縱器(31a/31b/PD)的所述樂曲數(shù)據(jù)(J(s))表示的音高(VoKey;fVoKey[Kn])相同的音高(N),則在將所述驅(qū)動信號(uk(t)/up(t))提供給所述致動器(59/60)之前,丟棄所述附加樂曲數(shù)據(jù)(J(s))中的所述所選擇的一些。
19.如權(quán)利要求16所述的自動演奏器樂器,其中,基于在所述原聲樂器(30)的外部(21b)產(chǎn)生的其它外部聲音來產(chǎn)生所述附加樂曲數(shù)據(jù)(J(v))。
20.如權(quán)利要求13所述的自動演奏器樂器,其中,所述內(nèi)部聲音的所述音高(Kn)與所述外部聲音的所述期望音高(N)隔開預(yù)定間隔。
全文摘要
一種自動演奏器鋼琴,包括語音識別器(10)和鋼琴控制器(50);當(dāng)用戶演唱歌曲時,語音識別器(10)分析代表歌唱音調(diào)的語音信號,以便確定每個歌唱音調(diào)的響度和音高,并且將各自表示音符開事件、最接近于歌唱音調(diào)的音高的鍵編號(Kn)和速度(vel)的樂曲數(shù)據(jù)代碼(J(v))、以及各自表示音符關(guān)和鍵編號(Kn)的樂曲數(shù)據(jù)代碼(J(v))與從存儲在存儲器中的一組樂曲數(shù)據(jù)代碼復(fù)制的樂曲數(shù)據(jù)代碼一起提供給鋼琴控制器(50);并且鋼琴控制器(50)利用基于所述樂曲數(shù)據(jù)代碼(J(v))產(chǎn)生的驅(qū)動信號(uk(t))有選擇地驅(qū)動黑鍵和白鍵(31a/31b),以便演奏該歌曲的伴奏。
文檔編號G10K15/04GK1828719SQ20061000712
公開日2006年9月6日 申請日期2006年2月9日 優(yōu)先權(quán)日2005年3月4日
發(fā)明者大場保彥, 古川令 申請人:雅馬哈株式會社