- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
小提琴音准练习软件设计
小提琴音准练习软件设计
小提琴音准练习软件设计
引言
音准是小提琴的灵魂和生命,是小提琴学习过程中最难突破的问题。小提琴与其它乐器不同,没有确定音准的键盘,也没有品位,而是根据演奏者手指按弦的位置决定。传统小提琴音准练习一般都是反复练习音阶,或通过对比钢琴声音,提高人耳的分辨能力,进而帮助练习者判断音准情况。这样的训练方式需要有专业人员实时指导,不断纠正,逐渐提高。对于普通练习者来说,无法保证随时都能够得到指导,只能自己揣摩,经常事倍功半。
音高是人耳区分声音振动频率高本文由论文联盟http://www.LWLM.Com收集整理低的一个度量。虽然音高和频率并不成正比关系(近似对数关系), 但音高与频率仍然有一一对应的关系。小提琴的音高分析即估计每个音的基频。基频估计方法很多,有时域的短时自相关法[1]、短时平均幅度差(AMDF)法,有频域的谐波峰值法[2],还有时频域的小波分析[3],各种常用方法比较见参考文献[4]。其中,频域分析方法相对稳定,且精度高。
本文基于C#编程平台,应用Windows的低级波形音频函数实时采集音乐信号,经离散傅里叶变换后,采用带置信度的谐波峰值法初步估计基频,进而引入插值算法提高基频估计精度。
1音乐信号采集
声卡是计算机的一种多媒体设备,可以用Windows 的MCI(Media Control Interface)命令来控制声卡。MCI命令提供了一组与设备无关的控制命令,是一种访问多媒体设备的高层方法。利用MCI命令来控制声卡录音时,程序员不能在录音过程中访问内存中的采样数据,无法应用在实时性要求比较高的场合。Windows的低级波形音频函数提供了对声卡的灵活操作,允许在采样过程中实时访问内存中的采样数据。
1.1采集流程
使用波形音频函数控制声卡,应遵循以下步骤(括号内为使用函数):打开波形输入设备(wavEinOpen);为波形输入设备准备缓存区(waveInPrepareHeader);向波形输入设备添加一个输入缓冲区(waveInAddBuffer);启动波形输入设备,开始录音(waveInStart);录音结束后,清除由waveInPrepareHeader函数准备的缓存区(waveInUnprepareHeader);停止录音(waveInStop);关闭录音设备(waveInClose)。
使用波形音频函数实时录音时,应注意以下两点:
(1)如果只为波形输入设备准备和添加一个缓冲区,当该缓冲区被采样数据填满后,波形输入设备无缓冲区可用,采样就停止了。所以应至少为波形输入设备准备和添加两个或以上的缓冲区,以保证采样过程的连续性。
(2)采集的数据格式包括采样频率、采样位数等内容。由于小提琴的音域从g到a4,基频从196Hz到3 520Hz。由采样定理可知,采样频率应大于最大基频(3 520Hz)的两倍以上。采样频率越高所记录的音质就越清晰,采集的数据量也越大,本文采用一般声卡设置好的22 050Hz的采样频率。采样位数决定了采样信号幅值的精细程度,位数越高,分辨率也越高,数据运算量也越大。为了保证实时分析小提琴的音准,本文采用8位的采样位数。
1.2消息响应机制
在Windows中发生的一切都可以用消息来表示,消息用于告诉操作系统发生了什么。所有的Windows应用程序都是消息驱动的,不同的消息由应用程序的不同部分来处理。MFC库将很多底层的消息都屏蔽了,使用户更加方便、简易地处理消息。调用各个低级波形音频函数将产生相应的Windows消息,包括:MM_WIM_OPEN:表示波形输入设备开启成功,此时可以准备缓冲区,并分配给波形输入设备;MM_WIM_DATA:表示缓冲区已满,此时应该重新分配缓冲区,处理已经采集到的声音数据;MM_WIM_CLOSE:表示波形输入设备关闭成功,应当释放缓冲区内存。
2带置信度的谐波峰值法
由于小提琴的音域范围较宽,从g到a4,各个音的频谱结构也不尽相同。高音的频谱结构中基频的幅值最大,可以直接应用谐波峰值法估计基频。而低音的频谱结构中幅值最大的可能是二次谐波,直接应用谐波峰值法将导致倍频错误。综合考虑小提琴各个音的频谱结构,本文采用带置信度的谐波峰值法估计基频。
频谱结构中,幅值最大的峰要么是基频,要么是某次谐波。最大峰对应频率的1/n就是基频,称最大峰对应频率的1/n为候选基频,一般n不超过3。
式中 L(n)为候选基音, f-p为最大峰值频率。将某个候选基频视作实际基频,其各次谐波的幅值之和称为该候选基频作为实际基频的置信度。
式中B(n)为置信度, M为谐波的个数, P(i)表示某次谐波的幅度在所有候选基频中。真正基频的各次谐波多,幅值大,相应的置信度也大。比较各候选基频的置
文档评论(0)