1. 研究目的与意义
| (1) 课题研究背景 随着个人计算机的普及以及互联网技术的日益成熟,互联网慢慢地成为人们获取各种信息、娱乐、消费等的主要渠道。然而在这个高速发展的时代下,互联网上的信息种类和数量呈现出指数级的增长的趋势。但是在这些信息中对于普通用户大部分的信息是不重要且无用的。如何能在冗余繁杂的网络数据中迅速并且准确的获取到用户最想要的信息则成为了人们最为关心的事。这样一个"数据量丰富,知识贫乏"的现状已经反映出了网络时代的一些状况,即用户要从大量的网络信息中提取出所需的信息或产品[4],并不是一件容易的事情,如何才能更好的存放及管理这些看似杂乱无章的数据,并在需要时能迅速从中提取出所需数据并有效利用,是一个十分热门的研究方向[4]。音乐作为人们生活中必不可少的娱乐项目之一也存在这种信息过载的问题。当下的绝大部分音乐网站只是简单的将所有的音乐罗列,用户想要找到自己想听的音乐必定会花费大量的时间来浏览大量的无关信息,而在这种漫长的查找过程中用户很有可能会失去兴趣进而放弃使用该网站。虽然为了解决这一问题相关音乐网站基本都会提供站内检索[5],但对这种方式只是适合用户对歌曲部分信息有一定了解,而且用户输入的关键字有可能和实际的分类标签有出入导致结果不正确,二来一些用户对于一些歌曲只记得歌曲的旋律对歌曲的其他信息并不清楚,这样就会导致用户无法获取到想要的信息。如何针对用户的需求进行精确的、高效的检索成为一个关键性的问题。而通过音频检索的方式则可以解决这一问题。 (2) 国内外研究现状 目前国内外主要分为两大音频检索算法,一种是荷兰的飞利浦研究所提出的飞利浦强化散列算法(Philips Robust Hash),另一种是目前为苹果旗下的Shazam公司提出的Shazam算法。Philips指纹提取算法是基于相邻能力差的变化来提取指纹的[13];Shazam公司提出的基于频域的每一帧的峰值能量点的Shazam[6]算法也称为landmark算法。该算法中因为只考虑音频的频谱图的能量峰值点,所以该算法具有近似的线性可加性[14]以及具有很强的抗噪音的能力,健壮性好,该算法首先将音频文件的音频信号从时域信号转换成频域信号,得到频谱图,然后再从频谱图中选取极大值点,这点也就是能量峰值点。频谱上的极大值表示在给定的时频区域内某个点的能量值大于其周围的能量点,这个点对应着一个目标区域,选取这个目标区域中每个点与能量峰值点进行组合成特征点对,从而通过能量峰值点产生音频指纹,生成组合哈希值,最终与音频文件的歌曲ID一起构建成音频指纹[14]。而在音频检索阶段,需要先从音频样例提取所有的音频指纹片段的hash值和时间偏移信息,用样例文件中提取的音频指纹和数据库中音频指纹库进行匹配,在检索时将指纹库中音频指纹组装成HashMap的查询结构[6],采用这样的查询结构利用空间换时间的方法,提高查询速度使得查询的消耗为常数级别的,当该样例音频的指纹与数据库中某音频匹配率最高,则表示匹配成功。 (3) 课题研究目的与意义 本毕业设计采用Vue结合SpringBoot的前后端框架进行搭建,主旨在于实现一个简洁大方的UI界面,功能齐全且拥有良好的用户体验方式的音乐资讯网站[10]。通过最新音乐排行榜、歌手排行榜、个性化的个人主页、音乐搜索等功能模块方便用户获取最新的音乐资讯。此外在音乐搜索功能模块采用基于文本的检索方式结合基于音频内容的检索方式为用户打造出精准且高效的音乐检索功能。 在基于音频内容的检索算法中,最常用的方式录音检索,通过录制一段音乐上传服务器进行检索,是一种精确匹配的检索方式。 本系统的研究难点在于如何使用高效的算法提取音频指纹以及指纹的匹配,来确保检索速度情况下检索结果依然准确。 本系统中音乐的提取与处理是音乐信息检索中至关重要的一步。实际中的音乐多媒体信息不断增长,通过人工标注的方式是无法完成对如此大规模的数据标注,并且音乐中的节奏也根本无法标注,从而采用音乐信息检索方法,提供可靠的音乐检索是必不可少的[7]。本文在为了解决这一问题,本文设计并实现基本搜索结合音频识别搜索的方式来方便用户获取想要的歌曲信息。
|
|
|
2. 研究内容和预期目标
| (1)研究内容: 针对音乐资讯的信息过载问题,本文的研究目标是为了在为用户提供音乐资讯的内容的基础上,改善用户检索信息体验,让用户更方便的获取信息。本系统主要涉及的研究内容主要包括以下几点: 主要包括整体音乐资讯网站搭建,以及在音乐资讯网站的基础上引入基于音频样例检索的检索方式。 1) 设计与实现音乐资讯网站 本毕业设计采用Vue.js结合SpringBoot的前后端框架进行搭建[8],主旨在于实现一个简洁大方的UI界面,功能齐全且拥有良好的用户体验方式的音乐资讯网站。通过最新音乐排行榜、歌手排行榜、个性化的个人主页、音乐搜索等功能模块方便用户获取最新的音乐资讯。 2) 在音乐资讯网站的基础上引入基于音频样例检索 本系统的研究难点在于如何使用高效的算法提取音频指纹以及指纹的匹配,来确保检索速度情况下检索结果依然准确,系统主要基于Shazam音频内容的检索算法,通过这种算法可以提取出音频文件的具有代表性的音频指纹信息[6],并且采用这种算法提取出来的指纹所占用的空间相对较小,对于当今时代大量的多媒体资源的检索有显著的效果。本系统通过引入Shazam音频检索算法,首先通过上传音频文件采用音频指纹提取算法,构建后台音频指纹库[5]。在检索时,通过对输入音频样例进行预处理,然后将音频指纹库的指纹信息转换为特定的便于查询的格式,将音频样例的指纹信息提取出来与指纹库进行比对,从而比对出相似的音乐信息。 3) 对系统进行测试与优化 在实现音乐资讯网站以及音频检索功能,为了确保系统的稳定性,健壮性,需要对系统的功能模块进行测试,验证系统各个功能是否能正常且稳定运行 (2)预期目标 设计与实现一个基于音频检索的音乐资讯网站系统,网站具有一般音乐网站的播放,排行榜等常见功能外,还具有基于音频检索的搜索功能。
|
3. 研究的方法与步骤
| (1) 研究方法: 1) 通过图书馆、互联网搜索最新有关音频检索,音频指纹提取的资料; 2) 选取合适的网站开发框架如后端采用SpringBoot,前端采用Vue; 3)对前端UI组件Element UI进行学习,将其进行组合成完整的页面 4) 学习研究有关音频的知识,对音频的采样率,单声道、多声道,比特率,帧长,帧数等参数学习和了解; 5) 学习并理解音频检索算法原理,并通过 绘制音频检索流程出进一步理解音频检索的全过程;
图 1 音频检索原理图 6) 学习音频指纹提取的数学知识点,如快速傅里叶变换,小波分解,滤波器等; 7) 搭建样例测试算法的可行性与算法的正确性; (2) 步骤: 1) 收集音乐资讯以及音频资源,如歌手、歌曲、专辑等信息以及各种类型的音乐文件; 2) 搭建音乐网站基本框架,通过SpringBoot的快速搭建起后端服务,并通过前端页面进行调用,测试前后端通信是否正常。并采用网上开源的后台信息管理模板,搭建音乐资讯的后台信息管理模块。 3) 对网站功能模块进行整体规划,列出每个功能模块并对其内容进行初步描述方便后续编写功能代码;对页面的初步UI进行规划,对界面中的各个数据的显示以及排版进行规划,方便编写前台代码时参考。 4) 编写网站后台信息管理模块基本功能,并进行自测使其能正常运行; 5) 编写网站前台资讯模块基本功能,并进行自测使其能正常运行; 6) 添加基于音频检索的搜索功能模块,并进行自测; 7) 测试、修补和优化系统,对系统添加Redis缓存[9]; 8) 总结课题完成过程中的问题以及经验; 9) 编写论文并完善;
|
4. 参考文献
| [1]王一鸣,陈恳,萨阿卜杜萨拉木·艾海提拉木.基于SDBN和BLSTM注意力融合的端到端视听双模态语音识别[J].电信科学,2019,35(12):79-89. [2]张洪英,杜鹢,张杰良,张向阳.音频啸叫信号的快速识别与检测技术[J].电声技术,2019,43(12):73-77. [3]王晖楠,魏娇.基于人工智能识别的音乐片段指纹检索技术研究[J].自动化与仪器仪表,2019(05):119-122 126. [4]姚姗姗. 音频大数据检索关键技术研究[D].太原理工大学,2018. [5]辛月. 海量音频检索算法的分布式实现[D].太原理工大学,2018. [6]胡俊. 基于Shazam算法的音频样例检索技术研究[D].重庆邮电大学,2018. [7]张永. 基于音频指纹的分片音频检索算法的研究[D].湖南大学,2017. [8]颜治平. 基于SpringBoot和Vue框架的教代会提案系统的设计与实现[J]. 科技创新与应用,2020(03):91-93 95. [9]宁方美,贺雪梅,牟晋娟. SpringBoot集成Redis缓存技术在企业一卡通系统中的应用[J]. 电子技术与软件工程,2019(24):133-134. [10]聂英豪. 基于Java EE平台的企业级自动化办公系统研究[D].电子科技大学,2019. [11] 袁梅宇,王海瑞.JavaEE企业级编程开发实例详解[M].清华大学出版社,2013. [12] 王艳清,陈红.基于SSM框架的智能web系统研发设计[J].计算机工程与设计,2012,33(12):4751-4757. [13] 张锦煌,吴丽娟,梁舒婷.基于SSM整合框架开发的项目管理系统[J].电脑知识与技术,2015(11):103-105. [14]ShariLawrencePfleeger(美).软件工程:理论与实践(影印版)[M].北京:电子工业出版社,2013.
|
5. 计划与进度安排
| 序号 起止日期 任务 工作内容 1、 2022-01-16 ~ 2022-02-19 调研 调研,撰写开题报告 2、 2022-02-20 ~ 2022-02-29 查阅文献资料 论文综述和论文目录 3、 2022-03-01 ~ 2022-03-05 平台搭建 搭建前端框架、服务器框架 4、 2022-03-06 ~ 2022-03-10 系统总体设计 设计音乐网站系统总体方案 5、 2022-03-11 ~ 2022-04-10 模块设计与实现 设计并实现系统各功能模块 6、 2022-04-11 ~ 2022-04-20 论文草稿 搜集与产出论文材料,撰写草稿 7、 2022-04-21 ~ 2022-04-30 系统测试 关键模块单元测试、集成测试、简单的系统测试 8、 2022-05-01 ~ 2022-05-30 论文修改 修改论文草稿以及外文翻译 9、 2022-05-31 ~ 2022-06-11 准备答辩 准备答辩PPT和其他答辩材料 |
