• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

homework_3: 基于shazam算法实现的简易音频检索(听歌识曲)-java 要求链接:https://i ...

原作者: [db:作者] 来自: 网络 收藏 邀请

开源软件名称:

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:

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

鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap