admin管理员组

文章数量:1530829

2024年1月21日发(作者:)

基于 LabVIEW 的乐器数字调音系统

胡奕明;黄志刚;肖雷蕾;徐瑞阳

【摘 要】By the idea of virtual instrument,a musical instrument digital

tuning system is developed based on the graphical programming software

LabVIEW. The main contents of the system include simulation piano,pitch

detection of piano and guitar audio frequency,audio collection and

storage,audio parameter measurement,audio spectrum analysis and

graphical display. By NI module in LabVIEW,the intonation tuning of piano

and guitar is realized with cordwood programming method. The piano

simulation tuning process was achieved. The system meets the actual

needs of guitar tuning.% 该系统采用虚拟仪器思想,利用基于图形化的编程软件 LabVIEW 开发了乐器数字调音系统。主要内容包括模拟钢琴,钢琴及吉它音频的基频检测,音频的采集和存储、音频的参数测量、音频的谱分析及图形化显示等内容。该系统利用 LabVIEW 中 NI 模块通过搭积木式编程方法实现了对钢琴和吉它2种乐器的音准调音。实现钢琴模拟调律过程,满足实际吉它调音的需要。

【期刊名称】《现代电子技术》

【年(卷),期】2013(000)006

【总页数】4页(P141-144)

【关键词】LabVIEW;虚拟仪器;模拟钢琴;乐器调音;基频检测

【作 者】胡奕明;黄志刚;肖雷蕾;徐瑞阳

【作者单位】空军工程大学 信息与导航学院,陕西 西安 710077;空军工程大学 信息与导航学院,陕西 西安 710077;空军工程大学 信息与导航学院,陕西 西安

710077;空军工程大学 信息与导航学院,陕西 西安 710077

【正文语种】中 文

【中图分类】TN919-34;TM935

钢琴和吉它是人们喜闻乐见的乐器,其共同的特点是它们的琴弦都具有金属的延展性,使用过一段时间后其音准会发生变化,从而要周期性地对钢琴和吉它进行调律(调音)。

此类乐器特别是钢琴的调音,传统上都是由专业调音师来完成的。随着电脑技术的发展,寻求一种科学的,普通人可以掌握的调音工具已经受到广泛的关注。本文应用EPMC-505C嵌入式平台,设计的乐器数字调音系统可以使钢琴和吉他的调音变得简单而有趣。通过该系统用户可以准确地判断出音准是否有偏差,快速完成调音。

另外,本设计作品参加了2012全国大学生电子设计竞赛嵌入式大赛(获三等奖),为了满足现场演示需要,系统中还设计了模拟钢琴,用以模拟钢琴调音的全过程。

1.1 系统组成

本乐器数字调音系统可实现钢琴模拟调律过程,并可完成实际吉它调音的任务。

系统功能结构见图1。

1.2 系统功能

1.2.1 模拟钢琴

(1)按键发音(音高可调);

(2)琴键变色;

(3)声卡、音箱输出。

1.2.2 音频信号处理

(1)音阶校准功能:提取信号基音频率,与标准音阶信号对比,实现音阶校准。并通过表头显示差别;

(2)频谱分析图功能;

(3)示波器功能。

乐器调音系统的核心问题是乐音信号的基音频率检测(基频检测),通过检测乐音的基频,比对标准频率,从而判断钢琴和吉它的音准。

钢琴是敲击弦乐器,吉他是弹拨弦乐器。不论弹拨弦,还是敲击弦,弦的振动是由多阶谐波分量叠加而成的。弹拨和敲击位置不相同,其振动的频率分量将不同,即泛音不同,但基频是不变的。事实上,像吉他一类的乐器对于每一个音敲击弦的位置是大致固定的,所以一旦基频确定,其谐波组成分量也就确定。因此对弦乐器进行校音时,最为关心的是基波分量的频率,也就是所谓的基音频率[1-4]。

下面检测到的吉他e1弦(既第一弦、基频为330 Hz)的时域和频域波形图。如图2和图3所示。

从图2,图3中可以明显看出弦乐器声音是由基音和泛音所组成这一事实,基于以上信号的特点,可以确定只要将弦乐器的基频信号从整个乐音信号中分离,就可以很容易地得到基频信号的频率,然后可以与标准频率对照,实现精确调音。对于基频检测算法设计上,由于乐器音域很宽,使用单一算法在整个频段内进行基音检测不能满足乐器调音检测精度要求的问题[5-6],本文采用分段式乐器基频检测的方法:将乐器的音域分为低频段和高频段,在低频段采用改进的自相关算法,在高频段采用谐波峰法[7-9]。

3.1 模拟钢琴

程序响应钢琴前面板中琴键按下及释放事件,产生一个特定的标签,通过一个子Vi将输入的标签转换为对应的索引号,用以实现声音频率的生成,这里只定义了

从C3到B4这24个中音区的按键的标签对应的索引号,一方面是考虑到添加太多分支过于复杂,不利于程序的处理;另一方面是考虑到平台触摸屏大小有限,添加过多按键不利于显示。而向高音区或低音区的切换只需要在索引号上加上或减去24即可。

用索引号生成频率的算法是,n为输入的索引号;fd为一个基准频率,之后将生成的频率输入波形发生器Vi,生成相应频率的震荡波形。

波形发生器Vi如图4所示。

模拟钢琴可以用鼠标点击琴键也可以通过触屏点击琴键,被击琴键变色同时发出正确音高的钢琴音。从测试结果看,模拟钢琴能够覆盖从C1到B6所有的音,基本与钢琴发音一致。

模拟钢琴的前面板如图5所示。

3.2 调音系统实现

吉他共有e1,A,D,G,B,E六根弦,要实现对这6根弦的分别调音,首先需要程序判别输入的是哪一根弦的音,为实现这一目的,使用事件结构和枚举变量,将事件结构的分支设定为“值改变”,通过事件结构中的“新值”选项将枚举结构的索引号输入2个索引数组vi中,两个数组分别是包含了标准频率的频率数组和包含了各弦名称的字符数组,字符数组用来显示目前所调的是哪根弦,而频率数组是为了与声卡输入的音的频率作比较,用以校音,同时,通过条件结构将“请击第X弦”显示在前面板上,让人机交互更直观方便。

程序中的基音提取部分是用嵌入Matlab子vi方式实现的,所采用的算法是在低频段采用改进的自相关算法,在高频段采用谐波峰法。

如基音提取程序如图6所示。

将提取出的基频与之前事件结构数组中输出的标准频率相减后取绝对值,分别与30和0.5进行比较,±30为仪表的量程,±0.5为仪表的精度,若超过30则仪表

满偏,若差值的绝对值小于0.5,则判定为已调好,判决后的布尔值作为条件结构的输入,当输入频率与标准频率的差值大于0.5时,在前面板上显示“频率高了”,并将超出值的大小通过仪表显示出来;同样,当差值大于-0.5时,在前面板上显示“频率低了”,通过仪表显示不足值的大小,而当绝对值小于0.5时,显示“已调好”,这样就完成了对吉他每根弦的调音过程。

乐音比对程序如图7所示。

用两个while循环分别套住基音提取校准部分和整个程序框图,使得整个程序能够连续运行,将这2个while循环的循环终止条件均设定为“当音已调好或者stop键按下”,这样便实现了吉他的调音功能。

最终形成的吉他调音前面板如图8所示。

钢琴的调音方法类似,但是由于钢琴的按键较多,因此需要的频率也较多,一一列举过于繁琐,可以直接通过调用程序中生成的标准频率作为比较的基准,每个键的调音由旋钮完成,旋钮生成的改变量所构成的数组相加,之后用索引数组vi将对应的已经改变的频率输入到正弦波生成vi中,从而实现单键声音的改变,由于只有一个数值输入控件(即旋钮),要实现改一个键时,其他键的音不发生变化,使用调用节点中的“重新初始化为默认值”并将默认值设置为零,通过对索引号是否相同和是否为默认C音的索引号的判断来决定是否执行该调用节点,就能实现每个键的单独调音,不会对其他键造成影响。

最终形成的钢琴调音前面板如图9所示。

3.3 波形频谱模块实现

为更好地对生成的声音进行加工和调整,需要了解所生成的声音的时域波形和频谱,系统设计了波形和频谱实时显示功能模块,模拟钢琴弹奏过程中的波形及频谱可清晰地显示在前面板上。

其中波形图是直接将发音所生成的音频信号输出,频谱图是通过对时域波形的快速

福利叶变换得到的。需要用到FFT频谱vi,接线端如图所示,测试中的波形频谱图如图10所示。

3.4 系统界面

本文设计的乐器数字调音系统有良好的人机界面,可完成模拟钢琴和吉它的调音,主界面如图11所示。

本系统采用虚拟仪器思想,利用基于图形化的编程软件LabVIEW开发了乐器数字调音系统,该系统可以完成模拟钢琴和乐器调音的工作。但本文的研究工作对于钢琴调音领域的研究仅仅只是一个初步探索,存在很多的不足,还有很多后续工作要做。

(1)由于真实钢琴的频谱谐波分量非常复杂,目前还难以实现模拟钢琴的乐音与真实钢琴达到完全一致。

(2)此调音系统能够直观显示钢琴键音的误差值,供调音者参考,但是调整琴弦张力尚需人工完成,后续工作可以将琴弦误差值与琴弦张紧力直接对应起来,设计硬件如机械手,控制其完成调音工作,实现完全自动化。

【相关文献】

[1]易克初,田斌,付强.语音信号处理[M].北京:国防工业出版社,2000.

[2]PARSON TW.语音信号处理[M].文成义,译.北京:国防工业出版社,2000.

[3]管善群.音乐声学基础[M].上海:上海音乐出版社,1988.

[4]姚亚平.音高结构历史演化概要[J].中国音乐学,2000(1):99-109.

[5]HATONETAL J tic speech analysis and recognition [M].Reidel Publishing

Company,1982:49-67.

[6]雷静.语音识别技术的研究及基本实现[D].武汉:武汉理工大学,2002.

[7]付青青,吴爱平.基于Matlab的语音信号自相关基音检测[J].长江大学学报:自然科学版,2006,3(4):99-103.

[8]苏江峰.钢琴调音软件的设计[D].西安:西安电子科技大学,2008.

[9]曹政.基于时频分析的乐音识别算法研究[D].合肥:中国科技大学,2006.

[10]陈树学,刘萱.LabVIEW宝典[M].北京:电子工业出版社,2011.

[11]王浩,杨刚.LabVIEW下数字序列输出的设计与实现[J].电子科技,2009(3):33-36.

[12]李爱勤,张绪坤.基于TCS230与LabVIEW的颜色测量系统[J].电子科技,2009(3):26-29.

本文标签: 调音钢琴频率系统乐器