一种基于哼唱输入的乐曲合成方法及装置的制作方法

文档序号:2836149阅读:323来源:国知局
专利名称:一种基于哼唱输入的乐曲合成方法及装置的制作方法
技术领域
本发明涉及哼唱识别技术领域,尤其涉及一种基于哼唱输入的乐曲合成方法及装置。
背景技术
随着数字音效处理以及音乐呈现技术的进步,音乐创作和保存方式也不断更新。 对于专业的音乐人,常常会突发灵感而即兴哼唱,想用某种乐器演奏这段旋律但一时找不到这种乐器;对于没有任何乐理知识的普通人,往往也会在兴致来临时随意哼唱,当他想用某种乐器比如钢琴再现之前哼唱的曲调时,却因为缺乏钢琴演奏技能而无法尽兴。此时,就需要一种能够将接收到的语音信号迅速转换为电子音乐,并模拟任意的指定乐器的演奏效果得到乐曲输出的可随身携带的设备。目前,人们已经能够通过哼唱识别技术将哼唱的信号改编成音乐乐谱并通过一个简易装置进行回放。但是现有技术存在下列缺点哼唱识别的精确度不高;识别算法过于复杂,需要占用较大的系统内存;不能独立完成乐曲的合成,需要输入其它播放器才能进行合成。如在申请号为200610086470. X的专利公开文件中,公开了一种音高跟踪和播放方法和系统,其主要通过在音高检测的预处理时采用两阶低通滤波器进行滤波,隔点进行互相关函数的计算,缩小基音频率的搜索范围等措施达到适用于嵌入式系统的目的,但由于算法精度不够高且较为复杂,依然存在着识别精度低,计算速度慢的缺点。另一方面,这种音高跟踪和播放方法和系统也没能提供独立的乐曲合成功能。

发明内容
本发明实施例所要解决的技术问题在于,提供一种基于哼唱输入的乐曲合成方法及装置,可以实现对哼唱输入的高精度快速识别及合成。为解决上述问题,本发明实施例提供了一种基于哼唱输入的乐曲合成方法,包括根据预设的窗函数对接收到的语音信号进行分帧处理,获得多个对应的语音帧;对每一语音帧进行静音检测,得到每一语音帧的能量;对每一语音帧进行滤波处理,并对滤波后的信号进行三电平削波处理,得到每一语音帧对应的削波信号;对每一语音帧对应的削波信号进行标准自相关计算,根据计算结果提取得到每一语音帧的音高;根据每一语音帧的能量及音高对所述语音信号进行音符切分,得到切分结果,所述切分结果包括音符、与所述音符一一对应的音符强度及音符时长;根据用户设置的乐器类型及所述切分结果,合成得到乐曲并输出。其中,在所述根据预设的窗函数对接收到的语音信号进行分帧处理,获得多个对应的语音帧的步骤,具体包括根据预设的窗函数对接收到的语音信号进行分帧处理,获得多个对应的语音帧;根据预设的帧移长度对每一语音帧进行帧移处理,使所述语音帧相互重叠。其中,所述对每一语音帧对应的削波信号进行标准自相关计算,根据计算结果提取得到每一语音帧的音高的步骤,具体包括A 采用标准自相关函数对所述每一语音帧对应的削波信号进行计算,得到每一语音帧对应的自相关函数,并根据特定的采样率在每一语音帧中选出对应的自相关函数;B 根据预设的分段值,将选出的当前语音帧的自相关函数均分;C:分别依次比较当前语音帧中每段自相关函数中的每两个自相关函数值的大小, 将每段中值最大的自相关函数值作为峰值,得到当前语音帧的自相关函数峰值序列;D 记录所述当前语音帧的自相关函数峰值序列中每一峰值所对应的位置信息;E 对所述当前语音帧的自相关函数峰值序列进行遍历,确定音高位置,将特定采样率及音高位置代入音高计算公式,得到当前语音帧的音高,重复执行所述A至E过程,直至得到每一语音帧的音高。其中,所述根据每一语音帧的能量及音高对所述语音信号进行音符切分,得到切分结果的步骤,具体包括依次比较每一语音帧的能量大小,将能量既大于前两个语音帧又大于后两个语音帧的当前语音帧的能量作为峰值,直至对比到最后一个语音帧,得到整个语音信号的能量峰值序列;根据所述能量峰值序列中每一个峰值对应的音高,计算得到音符;根据所述能量峰值序列中每一个峰值,计算得到与所述音符一一对应的音符强度;根据所述能量峰值序列中每两个峰值之间的时间间隔,得到与所述音符一一对应的音符时长。其中,所述根据用户设置的乐器类型及所述切分结果,合成得到乐曲并输出的步骤,具体包括根据用户设置的乐器类型选择对应的包络曲线,采用频率调制法逼近获得所述乐器演奏所述音符的波形;将所述波形按照与所述音符一一对应的音符时长依次叠加,合成得到乐曲并输
出ο相应地,本发明实施例还提供了一种基于哼唱输入的乐曲合成装置,所述基于哼唱输入的乐曲合成装置包括分帧模块、检测模块、处理模块、计算模块、切分模块以及合成模块,其中所述分帧模块,用于根据预设的窗函数对接收到的语音信号进行分帧处理,获得多个对应的语音帧;所述检测模块,用于对所述分帧模块得到的每一语音帧进行静音检测, 得到每一语音帧的能量;所述处理模块,用于对所述分帧模块得到的每一语音帧进行滤波处理,并对滤波后的信号进行三电平削波处理,得到每一语音帧对应的削波信号;所述计算模块,用于对所述处理模块得到的每一语音帧对应的削波信号进行标准自相关计算,根据计算结果提取得到每一语音帧的音高;所述切分模块,用于根据所述检测模块得到的每一语音帧的能量及所述计算模块得到的每一语音帧的音高对所述语音信号进行音符切分,得到切分结果,所述切分结果包括音符、与所述音符一一对应的音符强度及音符时长;所述合成模块,用于根据用户设置的乐器类型及所述切分模块得到的切分结果, 合成得到乐曲并输出。其中,所述分帧模块包括加窗单元及帧移单元,其中所述加窗单元,用于根据预设的窗函数对接收到的语音信号进行分帧处理,获得多个对应的语音帧;所述帧移单元,用于根据预设的帧移长度对所述加窗单元得到的每一语音帧进行帧移处理,使所述语音帧相互重叠。其中,所述计算模块包括采样单元、分段单元、第一对比单元、记录单元以及确定单元,其中所述采样单元,用于采用标准自相关函数对所述处理模块得到每一语音帧对应的削波信号进行计算,得到每一语音帧对应的自相关函数,并根据特定的采样率在每一语音帧中选出对应的自相关函数;所述分段单元,用于根据预设的分段值,将选出的当前语音帧的自相关函数均分;所述第一对比单元,用于分别依次比较当前语音帧中所述分段单元得到的每段自相关函数中的每两个自相关函数值的大小,将每段中值最大的自相关函数值作为峰值,得到当前语音帧的自相关函数峰值序列;所述记录单元,用于记录所述对比单元得到的当前语音帧的自相关函数峰值序列中每一峰值所对应的位置信息;所述确定单元,用于对所述对比单元得到的当前语音帧的自相关函数峰值序列进行遍历,确定音高位置,将特定采样率及音高位置代入音高计算公式,得到当前语音帧的音
尚ο其中,所述切分模块包括第二对比单元、音符单元、音符强度单元以及音符时长单元,其中所述第二对比单元,用于依次比较所述计算存储单元得到的每一语音帧的能量大小,将能量既大于前两个语音帧又大于后两个语音帧的当前语音帧的能量作为峰值,直至对比到最后一个语音帧,得到整个语音信号的能量峰值序列;所述音符单元,用于根据所述第二对比单元得到的能量峰值序列中每一个峰值对应的音高,计算得到音符;所述音符强度单元,用于根据所述第二对比单元得到的能量峰值序列中每一个峰值,计算得到与所述音符一一对应的音符强度;所述音符时长单元,用于根据所述第二对比单元得到的能量峰值序列中每两个峰值之间的时间间隔,得到与所述音符一一对应的音符时长。其中,所述合成模块包括波形单元以及叠加单元,其中所述波形单元,用于根据用户设置的乐器类型选择对应的包络曲线,采用频率调制法逼近获得所述音符单元得到的音符的波形;所述叠加单元,用于将所述波形单元得到的波形按照所述音符时长单元得到的与所述音符一一对应的音符时长依次叠加,合成得到乐曲并输出。实施本发明实施例,具有如下有益效果本发明实施例通过对接收的语音信号逐步进行包括分帧、帧移、静音检测、滤波、 三电平削波、标准自相关计算、峰值选取、中值滤波的处理方式,能得到每一语音帧的能量及音高,并通过对能量及音高的进一步切分识别,得到获取乐曲所需的音符、音符强度、音符时长、节拍和调号等信息,最后根据用户设置的乐器类型选择对应的包络曲线,采用频率调制法逼近获得所述音符单元得到的音符的波形并叠加,即可合成得到乐曲并输出,迅速, 准确,灵活,既能够得到MIDI (Musical Instrument Digital hterface,乐器数字接口)文件,又能得到简谱和五线谱。尤其,采用三电平削波,不但能消除语音信号中的共振峰对音高提取的影响,还能降低求自相关函数的计算量。


为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本发明基于哼唱输入的乐曲合成装置的第一实施例的结构示意图;图2为本发明基于哼唱输入的乐曲合成装置的第二实施例的结构示意图;图3为图2中的分帧模块的一个实施例的结构示意图;图4为图2中的检测模块的一个实施例的结构示意图;图5为图2中的计算模块的一个实施例的结构示意图;图6为图2中的切分模块的一个实施例的结构示意图;图7为图2中的合成模块的一个实施例的结构示意图;图8为本发明基于哼唱输入的乐曲合成方法的第一实施例的流程图;图9为本发明基于哼唱输入的乐曲合成方法的第二实施例的流程图;图10为本发明的基于哼唱输入的乐曲合成方法的对每一语音帧进行静音检测, 得到每一语音帧的能量的流程图;图11为本发明的基于哼唱输入的乐曲合成方法的对每一语音帧对应的削波信号进行标准自相关计算,根据计算结果提取得到每一语音帧的音高的流程图;图12为本发明的基于哼唱输入的乐曲合成方法的根据每一语音帧的能量及音高对所述语音信号进行音符切分,得到切分结果的流程图;图13为本发明的基于哼唱输入的乐曲合成方法的根据用户设置的乐器类型及所述切分结果,合成得到乐曲并输出的流程图。
具体实施例方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。下面结合附图对本发明的具体实施例进行详细说明。请参见图1,为本发明基于哼唱输入的乐曲合成装置的第一实施例的结构示意图, 所述基于哼唱输入的乐曲合成装置包括分帧模块10、检测模块20、处理模块30、计算模块 40、切分模块50以及合成模块60,其中所述分帧模块10,用于根据预设的窗函数对接收到的语音信号进行分帧处理,获得多个对应的语音帧。具体的,用户在任意时刻任意地点对着本发明实施例提供的基于哼唱输入的乐曲合成装置随意哼唱,所述分帧模块10即可接收到用户哼唱的语音信号,并采用窗函数对所述语音信号进行分帧处理。所述分帧模块10具体通过对所述语音信号加一个长度为N的窗函数,将所述语音信号分为多帧进行处理。分帧后的多个语音帧可用式2-1表达Xn (m) = w (m) X χ (n+m),0≤ m ≤ N—1 (式 2—1)其中,Xn(m)表示帧号为η的第m个采样值,N为帧长,w(m)为窗函数,在本实施例中,采用矩形窗,窗函数如式2-2
权利要求
1.一种基于哼唱输入的乐曲合成方法,其特征在于,包括根据预设的窗函数对接收到的语音信号进行分帧处理,获得多个对应的语音帧; 对每一语音帧进行静音检测,得到每一语音帧的能量;对每一语音帧进行滤波处理,并对滤波后的信号进行三电平削波处理,得到每一语音帧对应的削波信号;对每一语音帧对应的削波信号进行标准自相关计算,根据计算结果提取得到每一语音帧的音高;根据每一语音帧的能量及音高对所述语音信号进行音符切分,得到切分结果,所述切分结果包括音符、与所述音符一一对应的音符强度及音符时长;根据用户设置的乐器类型及所述切分结果,合成得到乐曲并输出。
2.如权利要求1所述的方法,其特征在于,所述根据预设的窗函数对接收到的语音信号进行分帧处理,获得多个对应的语音帧的步骤,具体包括根据预设的窗函数对接收到的语音信号进行分帧处理,获得多个对应的语音帧; 根据预设的帧移长度对每一语音帧进行帧移处理,使所述语音帧相互重叠。
3.如权利要求2所述的方法,其特征在于,所述对每一语音帧对应的削波信号进行标准自相关计算,根据计算结果提取得到每一语音帧的音高的步骤,具体包括A 采用标准自相关函数对所述每一语音帧对应的削波信号进行计算,得到每一语音帧对应的自相关函数,并根据特定的采样率在每一语音帧中选出对应的自相关函数; B 根据预设的分段值,将选出的当前语音帧的自相关函数均分; C:分别依次比较当前语音帧中每段自相关函数中的每两个自相关函数值的大小,将每段中值最大的自相关函数值作为峰值,得到当前语音帧的自相关函数峰值序列; D 记录所述当前语音帧的自相关函数峰值序列中每一峰值所对应的位置信息; E 对所述当前语音帧的自相关函数峰值序列进行遍历,确定音高位置,将特定采样率及音高位置代入音高计算公式,得到当前语音帧的音高,重复执行所述A至E过程,直至得到每一语音帧的音高。
4.如权利要求3所述的方法,其特征在于,所述根据每一语音帧的能量及音高对所述语音信号进行音符切分,得到切分结果的步骤,具体包括依次比较每一语音帧的能量大小,将能量既大于前两个语音帧又大于后两个语音帧的当前语音帧的能量作为峰值,直至对比到最后一个语音帧,得到整个语音信号的能量峰值序列;根据所述能量峰值序列中每一个峰值对应的音高,计算得到音符; 根据所述能量峰值序列中每一个峰值,计算得到与所述音符一一对应的音符强度; 根据所述能量峰值序列中每两个峰值之间的时间间隔,得到与所述音符一一对应的音符时长。
5.如权利要求4所述的方法,其特征在于,所述根据用户设置的乐器类型及所述切分结果,合成得到乐曲并输出的步骤,具体包括根据用户设置的乐器类型选择对应的包络曲线,采用频率调制法逼近获得所述乐器演奏所述音符的波形;将所述波形按照与所述音符一一对应的音符时长依次叠加,合成得到乐曲并输出。
6.一种基于哼唱输入的乐曲合成装置,其特征在于,包括分帧模块、检测模块、处理模块、计算模块、切分模块以及合成模块,其中所述分帧模块,用于根据预设的窗函数对接收到的语音信号进行分帧处理,获得多个对应的语音帧;所述检测模块,用于对所述分帧模块得到的每一语音帧进行静音检测,得到每一语音帧的能量;所述处理模块,用于对所述分帧模块得到的每一语音帧进行滤波处理,并对滤波后的信号进行三电平削波处理,得到每一语音帧对应的削波信号;所述计算模块,用于对所述处理模块得到的每一语音帧对应的削波信号进行标准自相关计算,根据计算结果提取得到每一语音帧的音高;所述切分模块,用于根据所述检测模块得到的每一语音帧的能量及所述计算模块得到的每一语音帧的音高对所述语音信号进行音符切分,得到切分结果,所述切分结果包括音符、与所述音符一一对应的音符强度及音符时长;所述合成模块,用于根据用户设置的乐器类型及所述切分模块得到的切分结果,合成得到乐曲并输出。
7.如权利要求6所述的装置,其特征在于,所述分帧模块包括加窗单元及帧移单元, 其中所述加窗单元,用于根据预设的窗函数对接收到的语音信号进行分帧处理,获得多个对应的语音帧;所述帧移单元,用于根据预设的帧移长度对所述加窗单元得到的每一语音帧进行帧移处理,使所述语音帧相互重叠。
8.如权利要求7所述的装置,其特征在于,所述计算模块包括采样单元、分段单元、第一对比单元、记录单元以及确定单元,其中所述采样单元,用于采用标准自相关函数对所述处理模块得到每一语音帧对应的削波信号进行计算,得到每一语音帧对应的自相关函数,并根据特定的采样率在每一语音帧中选出对应的自相关函数;所述分段单元,用于根据预设的分段值,将选出的当前语音帧的自相关函数均分; 所述第一对比单元,用于分别依次比较当前语音帧中所述分段单元得到的每段自相关函数中的每两个自相关函数值的大小,将每段中值最大的自相关函数值作为峰值,得到当前语音帧的自相关函数峰值序列;所述记录单元,用于记录所述对比单元得到的当前语音帧的自相关函数峰值序列中每一峰值所对应的位置信息;所述确定单元,用于对所述对比单元得到的当前语音帧的自相关函数峰值序列进行遍历,确定音高位置,将特定采样率及音高位置代入音高计算公式,得到当前语音帧的音高。
9.如权利要求8所述的装置,其特征在于,所述切分模块包括第二对比单元、音符单元、音符强度单元以及音符时长单元,其中所述第二对比单元,用于依次比较所述计算存储单元得到的每一语音帧的能量大小, 将能量既大于前两个语音帧又大于后两个语音帧的当前语音帧的能量作为峰值,直至对比到最后一个语音帧,得到整个语音信号的能量峰值序列;所述音符单元,用于根据所述第二对比单元得到的能量峰值序列中每一个峰值对应的音高,计算得到音符;所述音符强度单元,用于根据所述第二对比单元得到的能量峰值序列中每一个峰值, 计算得到与所述音符一一对应的音符强度;所述音符时长单元,用于根据所述第二对比单元得到的能量峰值序列中每两个峰值之间的时间间隔,得到与所述音符一一对应的音符时长。
10.如权利要求9所述的装置,其特征在于,所述合成模块包括波形单元以及叠加单元,其中所述波形单元,用于根据用户设置的乐器类型选择对应的包络曲线,采用频率调制法逼近获得所述音符单元得到的音符的波形;所述叠加单元,用于将所述波形单元得到的波形按照所述音符时长单元得到的与所述音符一一对应的音符时长依次叠加,合成得到乐曲并输出。
全文摘要
本发明提供了一种基于哼唱输入的乐曲合成方法及装置,所述方法包括对接收到的语音信号进行分帧处理,获得多个对应的语音帧;对每一语音帧进行静音检测,得到每一语音帧的能量;对每一语音帧进行滤波处理,并对滤波后的信号进行三电平削波,得到每一语音帧对应的削波信号;对每一语音帧对应的削波信号进行标准自相关计算,根据计算结果得到每一语音帧的音高;根据每一语音帧的能量及音高对语音信号进行切分,得到切分结果;根据用户设置的乐器类型及切分结果,合成得到乐曲并输出。本发明还提供了一种基于哼唱输入的乐曲合成装置。本发明的目的在于提供一种基于哼唱输入的乐曲合成方法及装置,可实现对哼唱输入的高精度快速识别及乐曲合成。
文档编号G10H1/00GK102568457SQ20111043749
公开日2012年7月11日 申请日期2011年12月23日 优先权日2011年12月23日
发明者赵伟峰 申请人:深圳市万兴软件有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1