NewAudioR
audio recognition
网页版听歌识曲
一、音乐库 目前包含1k+音乐
二、功能包括
1. 音乐库管理(增删改查)
2. 录音识曲和在线试听
3. 测试算法识别准确率(模拟加噪环境下)
三、算法
基于Shazam公司的Landmark算法
四、算法效果
1、在音频截取时长不低于4秒时,检索成功率很高。
2、加入辅助检索后,识别准确率增加。
3、系统抗噪能力强,音乐识别速度较快,符合性能需求。
4、系统的最佳参数是:音乐片段时长10秒以上,几乎可以确保音乐识别成功率。
五、 展望
1、 在识别准确率方面,音频截取时长低于4秒时,测试准确率比较低。
2、 在时长方面,特别是添加音乐到音乐库时的时长有待提高,识别时长也有提升空间。
3、 同时音乐库的体量也有待增大。
4、 音乐可以使用爬虫爬取
六、 遇到的问题
#遇到的问题1:数据库语句运行太慢了
#数据库配置优化了 闲云野鹤大佬帮忙改的 2020-5-4
1. engine改成了MyISAM,适合读多的
CREATE TABLE hashtable
(
idhashtable
int(11) NOT NULL AUTO_INCREMENT,
hash
int(11) NOT NULL,
id
int(11) NOT NULL,
time
int(11) NOT NULL,
PRIMARY KEY (idhashtable
),
KEY hash
(hash
) KEY_BLOCK_SIZE=1024
) ENGINE=MyISAM AUTO_INCREMENT=3901013 DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED
2.改了Mysql服务器参数配置
##闲云野鹤加的 key_buffer_size=1G ##先改成了16M,又改成了32M read_buffer_size=32M
#大佬的修改步骤 (7s -> 3~4s)
1.数据库瓶颈语句Select * from hashtable where in(.......) 2.用desc看执行计划 3.查看参数 'innodb_read_io_threads', '4' 4.问我电脑的硬件、CPU、内存配置。主频:1.6GHz,最大频率:2.1GHz,缓存2M,硬件核心数:2,虚拟线程数:2,出厂最大内存:4GB,固态硬盘128GB 5.改了hashtable表的engine为MyISAM 5.配置MySQL的my.ini。key_buffer_size=1G, read_buffer_size=32M
#大佬的建议
in太多了,尝试一半in,然后union all。