6 Star 15 Fork 7

曹真 / homework_3

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

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:

  • 1.text数组改为csv格式输出;

2016.11.6 更新v0.3:

  • 1.完成指纹提取,未验证正确性;

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.格式化整体代码,删繁就简,添加必要注释;

空文件

简介

基于shazam算法实现的简易音频检索(听歌识曲)-java 要求链接:https://iss-java.github.io/2016/10/23/Homework-3/ 展开 收起
Java
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
Java
1
https://gitee.com/iss2015302580272/homework_3.git
git@gitee.com:iss2015302580272/homework_3.git
iss2015302580272
homework_3
homework_3
master

搜索帮助