开源软件名称:homework_3
开源软件地址:https://gitee.com/iss2015302580272/homework_3
开源软件介绍:
homework_3项目简介基于傅里叶变换的java听歌识曲项目 代码结构说明分为四个模块(package) - 1.scanner
- 2.fingerprint
- 3.database
- 4.grade
使用1.database.StoreFingerprint读取制定文件夹内所有wav格式的文件,经过fft变换之后存储到数据库的song & songfinger表,同时建立索引加快匹配查询速度;插入一首4min歌曲花费时间约为11s 2.grade.EnquirySong依次比对finger_id,新建data[song.length][]存储找到的匹配hash值和offset差值,hashmap求解每组数中重复最多的值和次数,按照重复次数依次降次排序,输出最后的5条查询结果。查询准确率保持在100% ,5s歌曲片段查询时间2s左右。 更新日志2016.11.1 更新v0.1:- 1.实现音频文件读取获取double[]时域数据;
- 2.ScannerTest里提供了一个测试demo;
- 3.WaveConstants.java & WaveFileReader.java 封装时域获取方法;
2016.11.4 更新v0.2:2016.11.6 更新v0.3:2016.11.7 更新v0.4:- 1.导入lib,初步连接数据库;
- 2.熟悉基本语法;
- 3.验证指纹提取正确性;
- 4.git库冲突,进行 merge push。
2016.11.7 更新v0.4-:- 1.算法卡住了,进程倒退,更新readme纪念下,毕竟和妹子一起刚到现在,心疼,所以以后要好好学。
2016.11.8 更新v0.5:- 1.沟通不当,问题现已解决;
- 2.指纹提取算法中f1 f2记录值应为频率的下标,助教建议在前1/8范围内寻找;
- 3.排序之后需要去重选取最大值(此部分出现理解错误,已更改);
- 4.排序算法时间复杂度过大,后期需要改进;
2016.11.14 更新v0.6:- 1.利用选择排序替换之前的冒泡,算法时间复杂度为O(n);
- 2.排序之后需要去重选取最大值(此部分出现理解错误,已更改);
2016.11.16 更新v0.7:- 1.完成匹配打分部分;
- 2.优化fft以及查询算法;
- 3.增加结果截图;
- 4.格式化整体代码,删繁就简,添加必要注释;
|
请发表评论