基于FPGA的音乐评分系统

陈前,崔柏乐,毕舒妍

 

 

第一部分 设计概述 /Design Introduction

 

1.1 设计目的

随着人们的精神需求及现代社会信息化程度的提高,对于音频信息的获取日益成为 人们关注的焦点。而在此之中,拓宽音频获取的方式及提高其采集和转换的速度、增加 音乐文化传播途径及教学方式,相似检测和对原创歌曲的版权保护尤为重要。基于此, 我们决定设计这样一个作品,在传统单一的教学方式、音频信号的处理等方面有显著的 改进。

本作品以 FPGA 为核心处理器,拟实现对音乐弹奏进行实时评价和线下音乐教学, 从而实现音乐识别和实时教学功能。该人机显示界面美观,可直观反应弹奏情况,是弹 奏者无声的音乐老师,适合初学者学习。此外,通过按键,使用者可在乐曲自动识别并 评价、选择曲目学习两个模式中自由切换,使用者可根据演奏环境手动调节系统灵敏度, 实现人机互动。

1.2 应用领域

本作品应用前景广泛。例如,能实现对所演奏的乐曲识别,在曲库样本足够多的条 件下,为广大音乐爱好者检索喜欢的音乐提供了一种最便利直接的搜索方式;可实现标 准乐曲弹奏的教学和评估,带领初学者一步一步弹奏,并且实时指出弹奏过程中的错弹, 漏弹,最终完成对该乐曲的学习;此外,可实现歌曲版权检测,检测用户上传的音频是 否有侵权,是否未经授权使用了某首歌曲。

1.3 适用范围

本作品适用范围广泛。学习模式适用于对于钢琴谱不够熟悉的初学者,可实时显示 即将要按下的钢琴键及学习进度,并指出学习者错弹,漏弹的音韵。识别模式适用于音乐爱好者检索乐曲,也可作为公司同歌搜索,版权检测的工具。

 

第二部分 系统组成及功能说明 /System Construction & Function Description

 

2.1 系统介绍

 

本作品以钢琴为例,拟实现对音乐弹奏进行实时评价和线下音乐教学,从而实现音乐 识别和实时教学功能。系统主要由前置抗混叠滤波电路,语音放大电路、高速 AD 转换模 块、自制按键模块、信息处理模块以及 VGA 显示模块组成。音频信号通过咪头转换成电信 号,经对信号线性放大后进入 AD 模块,FPGA 控制 AD 模块进行数据采样,在 FPGA 内 部进行信息处理,给出相应的特征信息,利用一定的算法(包括 FFT 算法、阈值法、倒谱 法等算法)识别出所弹奏的歌曲并对歌曲进行综合打分,按键负责模式选择和灵敏度调节。 识别结果和评分结果将通过 VGA 显示器进行显示。

2.2 各模块介绍

1. 信号增益模块

采用零飘移的 CMOS 运算放大器 TLV2333,对输入 mv 级音乐信号进行信号增益,使 信号范围合适于高速 AD 模块的输入电压,同时线性的放大,保证后端信号处理的准确性

TLV2333 系列 CMOS 运算放大器不但具备精密的性能,而且价格极具竞争力。这些器件属于采用专有自动校准技术的零漂移系列放大器,在整个时间和温度范围内的失调电 压非常低(最大 15µV)且几乎零漂移,并且静态电流只有 28µA。TLVx333 系列 具有轨 至轨输入和输出以及几乎不变的 1/f 噪声特性,工作电压在 1.8V (±0.9V)至 5.5V (±2.75V) 之间,并且内部具有电磁干扰(EMI)滤波功能,因此在合理的外围电路设计中,可以使 增益达到 1200 倍左右,将 mv 级音乐信号放大到 v 级,保证系统后级信号处理的准确性。

2. 抗混叠滤波模块

在信号接入 AD 转换模块前端,使用无源低通滤波对输入音频信号进行滤波,去除高 频分量,杜绝频谱混叠现象,干扰后级算法提出信号特征。

该电路硬件设计采用简单无源滤波,实用 RC 构成低通滤波电路,传递函数可表示为 H(w)=1/1+jwc,截止频率可表示为 fs=1/2*pi*RC,考虑钢琴信号最高频率 4.186KHz,因此 截止频率取 5KHz。

3. 高速 AD 转换模块

经过放大后的音乐信号经过 AD9220,实现对模拟信号的采样与量化,在将数字信号传 送至 FPGA 进行数据处理。

AD9220 是一个 12 位 AD 转换器,使用单电源 5V 供电,采用一种带有宽带输入采样保持放大器的四级流水结构,使其保持在指定数据率的情况下为 12 位数据精准提供了数字 输出错误修正,保证了在整个操作温度范围内没有误码,因此能够准确的将音频模拟信号 转变为数字信号,送至 FPGA 进行数据处理。

4. 按键模块

本系统在设计过程中需要对系统性能进行测试,因此本系统设计设计五个按键,在系 统中分别担任增益补偿增减键、阈值增减键、增减切换键、模式切换键、识别开启/关闭键。

按键采用下拉设计,常态保持 1,按下保持 0,通过 FPGA 进行电平判断,从而实现按 键识别。

5. 信息处理模块

处理器主要采用 EES-A7 核心板,其采用 Xilinx XC7A35T-1CSG324C 芯片,含有 5200 个逻辑 Slices,每个包含 4 个 6 输入 LUT 和 8 个触发器,内部时钟频率达 450MHz,片上 自带模数转换器,含 1800Kbits 的 Block RAM 和 90 个 DSP48E 单元,有 5 个时钟管理单 元。

6. VGA 显示模块

本系统中采用液晶显示屏作为系统最终显示输出设备,该显示器满足 1600*900 分辨 率,能够显示 RGB 三色,数据传输格式为 RGB565 格式,在 FPGA 时钟控制下,可以将系 统所需要显示的数据进行显示。

显示器与 FPGA 连接使用 VGA 接口,VGA 接口即电脑采用 VGA 标准输出数据的专 用接口。VGA 接口共有 15 针,分成 3 排,每排 5 个孔,显卡上应用最为广泛的接口类型, 绝大多数显卡都带有此种接口。它传输红、绿、蓝模拟信号以及同步信号(水平和垂直信号)。

 

第三部分 完成情况及性能参数 /Final Design & Performance Parameters

 

本系统由音频采集模块、AD 转换模块、按键模块、显示器模块、处理器模块共同组成。 预计实现功能:(1)在学习模式下可以选择曲目,显示学习进度,并实时标出显示即将弹 奏的钢琴键,以及弹错或漏弹的钢琴键;(2)在识别模式下,可以显示与自制标准库中相 似度最高的曲目。

目前,两个功能均已实现,各模块运作稳定,模块间依功能连接,音频信号时域频域 波形实时显示。

3.1 音频采集模块

此模块较好实现了音频抗混叠滤波与放大功能,在测试电压 2mv 的情况下,可以将电 压放大至 2.5V 左右,并且信号没有明显失真。在测试实际音乐信号时,在输出端显示放大 滤波后的波形可以观察,无明显毛刺现象,钢琴单键按下,其音乐中含有混频,与实际相 符合。

3.2 AD 转换模块

与前置音频采集模块组合使用,将模拟信号转变为数字信号,在 FPGA 中进行数据处理, 在后端显示器可以观察出,对于不同频率的输入,能够很好的进行 FFT 变换,提取信号的 频率特征,因此可以验证此模块数据采集没有错误,从而也佐证前置音频采集模块信号处 理线性性较好。

3.3 按键模块

本系统在设计过程中需要对系统性能进行测试,因此本系统设计设计五个按键,在系 统中分别担任增益补偿增减键、阈值增减键、增减切换键、模式切换键、识别开启/关闭键。 在测试时,由于按键在人为按下后,会出现抖动情况,因此在软件中进行按键消抖操 作,从而能够较为准确的判断按键是否按下,保证系统测试性能与运行性能。

3.4 VGA 显示器模块

采用液晶显示屏作为系统输出显示器,在软件控制下,显示屏幕具有较好的人机交互 界面,并且具有一定欣赏性,无闪屏、抖动、花屏等不良显示现象。 显示器模块主要显示内容如下:频谱特征、波形信号、当前模式、得分、识别结果、 模拟真实琴键、队伍名称与相关信息。

3.5 处理器模块

在对 AD 转化之后的数据,传送至 FPGA 进行数据处理,本系统中,处理器主要实现对 数据的算法处理,提取不同音乐信号的特征。

在数据传送至处理器后,对数据进行分帧处理,在对一帧数据进行 FFT 处理,处理后 的数据进行硬阈值处理,利用外围电路课进行阈值更改,在软件中实现对不同音乐信号的 自动增益功能,由于音高与频率为非线性关系,因此在处理器中,对较低频率进行较高增 益,对较高频率进行较低增益,从而能够较好的反应 FFT 后处理数据结果,对数据处理后 的音乐特征,与原先在系统中已有的音乐库信息进行比对,在学习模式下,弹奏者可自行 选择歌曲,从而进行学习,当系统发现弹错时,会有提醒,在识别模式下,可以对一段歌 曲进行辨识,从而显示出辨识结果。

整个系统对已有音乐库中的音乐具有较高的识别效果与学习效果。

 

第四部分 总结 /Conclusions

 

 4.1 主要创新点

(1)在使用 Artix-7 核心板作为主要处理器处理数据时,实现了 FFT、阈值法等算法的使 用,能够非常准确提取音乐信号特征。

(2)基于市场中纯软件识别音乐的方式、钢琴本身特色,开发一款软硬件结合的,性能良 好的系统具有一定难度,因此本作品开创性的提出基于钢琴的音乐识别与学习。

(3)采用较为简单的硬件处理元件,实现系统前端采集,具有良好的市场竞争力。

4.2 可扩展之处

(1)当前能较精准地实现单音识别,改进后有望实现多音分辨,倍数关系的音频分辨。

(2)对于前置放大部分,现在是固定倍数放大,可以用基于硬件的自动增益控制。

(3)对于自制标准库,在时间充足和处理器内置资源允许的条件下,可扩充曲库曲目和曲 长。

4.3 心得体会

通过这一次竞赛,我们更加深入地了解了 FPGA 的性能以及使用方法,对赛灵思的 FFT IP 核有充分的理解,并且能够写出合适的代码达到 IP 核各个端口所需的时序要求;深入体 会并尝试去解决各个模块的设计,各个模块之间的时序的安排,以及各个模块之间缓存的 设置等等一系列问题。

此外,还有很多值得我们深入去探索。例如,后期频谱数据算法的处理,这是很关键 的问题,如何写出合适的算法,使得 FPGA 能够智能化的识别各个音调并且能够有效抵制混 频所带来的干扰从而识别出曲调,并在显示器上显示出当前所弹奏的歌曲曲谱。

总体来说,我们相信付出和收获是成正比的,这个项目带给我们的探索和思考必定是 终生受用的!

发布时间:2020-01-26 16:01
浏览量:0
点赞
收藏
Home    Catalog    2019 FPGA Contest    基于FPGA的音乐评分系统