波表音乐合成系统 【技术领域】
本发明涉及一种音乐合成系统,特别涉及一种应用于通讯装置中的音乐合成系统。
背景技术
请参阅图1,图1为已知的波表(wavetable)音乐合成系统10的示意图。已知波表合成系统10包含一音乐档案库11、一分析模块12、一音乐生成器14、一数模转换放大装置20与一扬声器22。已知波表音乐合成系统10在合成一音乐档案13时,是由音乐档案库11传送音乐档案13至分析模块12,音乐档案13将由分析模块12进行音符数据与控制命令(包含乐器的选择,音量与特效的设定…等等)的撷取,进而获得相关音乐档案13的分析数据。
音乐生成器14进一步包含一乐器数据库16与一合成模块18,并在得到由分析模块12所提供的分析数据后,根据分析数据自乐器数据库16提供所需使用的乐器数据24,再由合成模块18进行音乐的合成。合成模块18是根据分析数据以及乐器数据合成一脉冲编码调制数据,数模转换放大装置20则将该脉冲编码调制数据转换为一模拟信号并加以放大,并输出至扬声器22以发出声音。
在已知的波表合成系统中,基本的乐器数据库记录包含有128种弦律乐器数据及47种打击乐器数据。在已知的波表音乐合成系统中,一般以非易失性存储器(Non-Volatile Memory),例如只读存储器(Read Only Memory,ROM),加以存放128种弦律乐器及47种打击乐器的乐器数据,作为乐器数据库。当需要合成乐曲时,再由合成模块18从乐器数据库16中取出所需的乐器数据24以合成乐曲。此法虽然能保持合成音乐时品质的完善,但由于需要大量的存储器容量,因此制造成本通常偏高。
已知的低成本波表音乐合成系统,是利用许多乐器之间具有某种程度相似性的特性,只取较常使用的乐器数据加以储存,以降低存放128+47种乐器数据时所需付出的储存成本。
请参照图2,图2为一已知的低成本波表音乐合成系统30的示意图。已知低成本波表合成系统30包含一音乐档案库11、一分析模块12、一音乐生成器34、一数字模拟转换与放大装置20与一扬声器22。已知低成本波表合成系统30地作法是以一较低容量的非易失性存储器中存放M0种弦律乐器及P0种打击乐器的乐器数据26,所储存的M0与P0种乐器是较常使用的代表性乐器。因(M0+P0)种乐器数据储存空间远小于(128+47)种乐器数据储存空间,因此,得以使用低容量的非易失性存储器以达到降低成本的目的。
如图2所示,已知低成本波表合成系统30是先从音乐档案库11中取出音乐档案13,再由分析模块12对音乐档案13进行分析而得到一分析数据。音乐生成器34之中包含一存储器36、一乐器更换模块38与一合成模块18,并在得到由分析模块12所提供的分析数据后,经由乐器更换模块38执行一乐器更换程序。乐器更换模块38记录有128种弦律乐器和M0种代表性乐器的匹配表,以及47种打击乐器和P0种代表性乐器的匹配表。并经由乐器更换程序,将分析数据中指定的乐器转换成M0及P0种代表性乐器中的乐器。合成模块18则自存储器36中取出乐器数据26以进行音乐的合成。
在此已知的低成本的波表声音合成系统中,存储器36与乐器更换程序38所需使用的数据记录储存在非易失性存储器(通常是只读存储器(ROM))上,故所能使用的乐器种类是固定的,因而在实际使用上常有因乐器遭筛选之后,音乐特性失真的缺点。
【发明内容】
本发明的目的是提供一低成本设计的音乐合成系统,用以执行波表音乐合成(wavetable audio synthesis)。此系统是在低成本的情况下,利用有限存储器数据,希望在使乐曲特性因乐器种类改变所造成的不协调性得以减到最低,并达到音乐合成的目的。
本发明的音乐合成系统包含:一乐器数据库、一分析模块、一存储器以及一判断模块。乐器数据库用以储存第一预定数量种乐器数据。分析模块用以分析输入的音乐档案,而得出该音乐档案所包含的第二预定数量种乐器数据。存储器,具有一预定容量,用以储存合成该音乐档案所需的乐器数据。判断模块,用以判断该第二预定数量种乐器数据的总和数据量是否大于存储器的预定容量。若判断结果为否,则自该乐曲数据库中取出该第二预定数量种乐器数据储存至该存储器中。若判断结果为是,则执行一乐器更换程序,将该第二预定数量种乐器数据更换为一第三预定数量种乐器数据,该第三预定数量种乐器数据的总和数据量不大于该预定容量,该判断模块并自该乐器数据库中取出该第三预定数量乐器数据储存至该存储器中。至于合成模块,则是用以根据该存储器中所储存的乐器数据合成一数字音乐信号。
本发明藉由可动态存取的存储器存取合成乐曲所需乐器的乐器数据,由于使用低容量的存储器,因此降低了应用庞大存储器所需花费的成本。虽然可动态存取的存储器(例如:DRAM)通常单位成本较高,但由于所需容量较小,因此整体来说其储存成本还是较图2的已知技术便宜。此外,本发明储存在存储器中的乐器数据,并非固定的乐器数据,而是随着乐曲所需乐器不同选取最接近的乐器数据,因此大幅改善了已知技术在使用低容量非易失性存储器(例如:ROM)储存固定乐器数据时合成音乐的表现品质。
关于本发明的优点与精神可以藉由以下结合附图的详细说明得到进一步的了解。
【附图说明】
图1为已知的波表(wavetable)音乐合成系统的示意图。
图2为一已知的低成本波表音乐合成系统的示意图。
图3是本发明的波表音乐合成系统40的示意图。
图4是图3中判断模块的示意图。
图5为图4中匹配表41的示意图。
图6是图4中匹配模块的另一实施例的示意图。
图7是本发明的乐器选择方法流程图。
图式标号说明
40:波表音乐合成系统 41、49:匹配表
42:更换模块 43、45:次表格
44:载入模块 46:匹配模块
47:分组表 51:音乐档案库
53:音乐档案 52:分析模块
54:判断模块 56:乐器数据库
60:存储器 66:合成模块
68:数模转换放大装置 70:扬声器
【具体实施方式】
请参阅图3,图3是本发明的波表音乐合成系统40的示意图。本发明的波表音乐合成系统40包含一音乐档案库51、一分析模块52、一判断模块54、一乐器数据库56、一存储器60、一合成模块66、一数模转换放大装置68与一扬声器70。在此先阐明本发明各种数据库中所储存的数据,音乐档案库51中储存有许多乐曲,乐器数据库56中则储存有预定数量(M1+P1)种乐器数据,其中包含M1种旋律乐器数据以及P1种打击乐器数据。举例而言,乐器数据库中可包含128种旋律乐器数据以及47种打击乐器数据。在本实施例中,乐器数据库56是一高容量、低成本、低存取速度的储存装置,因此并不适合直接取代图1已知技术中的乐器数据库16,而直接为合成模块所使用。
接着详述本实施例的操作过程。本发明的波表音乐合成系统40是先由分析模块52,分析自音乐档案库51输入的一音乐档案53,而得出合成音乐档案53所需的一预定数量(M2+P2)种乐器数据。举例而言,假设想要合成某一特定音乐档案53需要8种旋律乐器以及3种打击乐器的乐器数据,则M2为8、P2为3。
判断模块54接着判断(M2+P2)种乐器数据所需使用的储存空间是否大于存储器60的预定容量。该预定容量可为存储器60的可储存空间、或是一预设的特定容量大小。若判断结果为否,则判断模块54由乐器数据库56中取出(M2+P2)种乐器数据存至存储器60中。若判断结果为是,则执行一乐器更换程序,将(M2+P2)种乐器数据更换为另一预定数量(M3+P3)种类器数据,(M3+P3)种乐器数据的总和数据量是不大于存储器60的预定容量。最后根据判断模块54的判断,由乐器数据库56中取出(M3+P3)种进行波表音乐合成时所需的乐器数据62储存至存储器60中。
合成模块66根据存储器60所储存的乐器数据合成数字音乐信号,经由数模转换放大装置68,输出至扬声器70以输出该音乐档案53。
由上述可知,本发明的特点在于可随着波表合成系统内建的存储器的容量大小,选择性的挑选最适合的乐器数据以替代原先波表乐器合成所需的乐器数据。因此,如何选择合适的乐器数据为本发明的重心所在。
请参阅图4。本发明的判断模块54进一步包含一匹配模块46、一更换模块42以及一载入模块44。匹配模块46中进一步包含有一匹配表41,用以记录(M1+P1)种乐器数据之间的相似程度,更换模块42用以在所需使用的乐器数据量大于存储器60的预定容量时进行使用乐器种类的更换程序,以减少数据量。载入模块44则用以在确定所需使用的在数据量不大于存储器60的预定容量时,进行从外部乐器数据库60将所需使用的(M2+P2)种或(M3+P3)种乐器数据载入存储器60的动作。
请参阅图5,图5为图4中匹配表41的示意图,判断模块54中的匹配模块40在实施上进一步包含一匹配表41,用以记录(M1+P1)种乐器数据中每一种乐器数据与其他种乐器数据两两相较的一乐器相似值,对于不同乐器之间的相似程度给予量化标准。匹配表41中包含两个次表格,表格43是针对乐器数据库56中M1种弦律乐器建立M1×M1的表格。表格45是针对P1种打击乐器建立P1×P1的表格。通过匹配表的建立,直接查表即可得任二种乐器之间的相似程度。举例而言,在表格43中D0,1即代表第1种乐器与第2种乐器的乐音的相似度,D2,3即第3种乐器与第4种乐器的乐音的相似度。因此,如D0,0、D1,1……这些同种乐器之间的差距为0。如果当用以合成的M2+P2种乐器数据的总数据量大于存储器60的预定容量时,则可根据匹配表41,循序找出欲合成的波表乐曲所需使用的(M2+P2)种乐器数据中乐器相似值最小的一对乐器,假设乐器数据M对乐器数据N的乐器相似值最大,则将乐器数据M以乐器数据N取代。当进行更换程序后,此时所需的乐器数据已进一步缩减为(M3+P3)种乐器数据,其总数据量将不大于该预定容量。
然而在上述匹配表41中,当M1及P1很大时,表格建立不易且可能需占用许多空间。举例而言,在有128种弦律乐器及47种打击乐器的情况下,则需建立一128×128的表格及一47×47的表格。因此有另一实施方法如下,请参阅图6,图6是图4中匹配模块46的第二实施例的示意图。第二实施例的实施方法使用一分组表47及一配合分组表使用的匹配表49,其中分组表47用以记录(M1+P1)种乐器数据依相似程度进行分组后所得的多个乐器数据群组(M4+P4)组。如图6所示,分组表47是将M1种弦律乐器分为M4组,将P1种打击乐器分为P4组,m1、m2、m3……则代表各别的弦律乐器,p1、p2、p3……则代表个别的打击乐器,每一个乐器数据群组包含多种乐器数据、并且以一代表乐器数据代表该乐器数据群组所包含的各种乐器数据。亦即当所需合成的一乐器数据属于第一乐器群组G1时,则直接以第一乐器群组的代表乐器取代该乐器数据。
如果经过查询分组表47而减少乐器种类后,总数据量仍大于该预定容量时,此时可透过配合分组表使用的匹配表49再进一步选择可供代换的乐器数据。如图6所示,匹配表49是用以记录每一代表乐器与其他群组的代表乐器两两相较的一乐器相似值。由于匹配表49仅记录各乐器数据群组的代表乐器的两两相似值,相较于建立(M1+P1)种乐器的匹配表,此种代表乐器的匹配表较容易建立且不占空间。举例而言,将128种弦律乐器先行分类为30组,将47种打击乐器进一步分类为10组,根据此分组表,则只需要建立一30×30的弦律乐器匹配表,以及10×10的打击乐器匹配表。
在此特别强调一点,在以匹配表查找乐器特性最相像的两项乐器时,在表格中乐器M对乐器N的乐器相似值与乐器N对乐器M的乐器相似值可以是不同的,这是因为在听觉经验中,乐器M取代乐器N的效果不错,但乐器N取代乐器M时的效果却不一定良好,因此在表格的定义上可以表现此弹性。
接下来以具体数字为例来加以解释本实施例。经过分析模块52的分析,合成音乐档案53需8种弦律乐器ma、mb、mc、md、me、mf、mg、mh,及3种打击乐器pa、pb、pc。此时判断模块54将判断(8+3)种乐器数据是否超过存储器所能提供的预定容量大小,如果为否的话,判断模块54中的载入模块44将载入(8+3)种乐器数据至存储器60中。如果(8+3)种乐器数据超过存储器所提供的预定容量大小,则启动更换模块42以执行更换程序。在判断模块54中,先经由匹配模块46查表得以mb去更换ma的乐器相似值最高,经更换模块42舍去mb的音乐数据后,(7+3)种乐器数据若不超过存储器的预定容量,则载入模块44由乐器数据库56存取此(7+3)种乐器数据至存储器60,以利合成模块66进行音乐档案53的合成,而mb乐器的弦律则以ma乐器的乐音演奏之。如果(7+3)种乐器数据仍超过存储器的预定容量,则继续进行更换程序,直到所选的乐器数据的总数据料不大于该预定容量。
请参阅图7,图7是本发明的乐器选择方法流程图,结合图5,包含下列步骤:
步骤500:开始。
步骤502:由分析模块52取得乐器使用数量(M2+P2)。
步骤504:判断(M2+P2)种乐器所需使用的乐器数据是否大于存储器60
的预定容量,若判断结果为是,则进行步骤506;若答案为
否,则进行步骤510。
步骤506:启动匹配模块40,找出最相似的乐器以及合适的更换方式。
步骤508:启动更换模块42,以减少乐器的使用数量,再重复进行步
骤504的判断。
步骤510:启动载入模块44,将所需使用的乐器数据62由乐器数据库
56载入存储器60中,
步骤510:结束。
综上所述,本发明藉由可动态存取的存储器存取合成乐曲所需乐器的乐器数据,由于使用低容量的存储器,因此降低了应用庞大存储器所需花费的成本。此外,本发明储存于存储器中的乐器数据,并非固定的乐器数据,是随着乐曲所需乐器不同选取最接近的乐器数据,因此大幅改善了已知技术的使用低容量非易失性存储器(例如:ROM)储存固定乐器数据时合成音乐的表现品质。
藉由以上较佳实施例的详述,是希望能更加清楚描述本发明的特征与精神,而并非以上述所披露的较佳实施例来对本发明的范畴加以限制。相反地,其目的是希望能涵盖各种改变及具相等性的安排于本发明所欲申请的权利要求的范畴内。