听歌识曲C++程序说明

  • 本工程在VS2015下编译运行;运行时,机器上需要已经安装有MySql软件,我使用的是MySql 5.7版本的,MySql C++ connector用的是1.19版本的;
  • 直接拿过来编译肯定是编译不过的,详情见下描述

工程目录说明

  • 3rd_party : 第三方库

    • boost_1_62_0 : boost库
    • Eigen : 矩阵与FFT
    • maximilian : 音频库
    • sqdlog : log库,这个库暂时未使用
    • MySQL Connector C++ 1.1.9 : 连接数据库的库
  • Audio : 封装音频操作
  • DB : 封装DB操作
  • General : 放一些通用模块,目前其实就一个计时函数
  • Hash : 哈希值计算
  • Log : 打算预留封装log操作的
  • ShazamAlgorithm : 识别算法模块,主要是哈希值的提取和匹配两个过程
  • Test : 各个模块的测试程序,比较粗糙

how to build

  • 因为boost的体积太大,所以我本次就没有上传上去,这一部分可以自己从官网上下载,不一定是1.62这个版本的,最近的几个版本都可以,放置的目录如果有变动,可以修改一下工程里面的设置
  • 我已经修改了一下工程的目录设置,按道理应该不会出现找不到文件的情况,但是因为时间有限,我也没有精力和条件在一个全新的环境下进行尝试,所以如果编译过程中出现什么问题,我建议是对照工程里面的设置条件进行排查
  • MySql的root账号和密码的设置这个肯定得改成自己的,我当前是填充了一个简单的值;修改的位置详见DB目录下的文件
  • boost目录的安装可以选择不需要本地编译的版本;当然这一部分网上有很多说明,如果是在遇到了困难,可以私信我,我把我的包直接上传到百度云分享出来;
  • 本工程在32位模式下进行编译运行,理论上,准备好第三方库,核对好工程设置以后,直接build就可以通过了

how to use

  • testEncoder.cpp文件中有如何建立数据库的代码;指定一个目录,对目录中所有的歌曲提取特征并存放进数据库中
  • test_DB.cpp文件中有如何检测的代码,指定一首歌的位置,即可对其进行识别,并输出得分最高的几首歌作为识别结果

写在最后

  • 这是我第一次做类似分享,所以考虑的可能不是很全面,诸位如果遇到工程编译的问题,可以及时反馈给我,我有条件的话会帮助解决
  • 这个识别程序是非常粗糙的,很多东西都有优化的空间,如果有大佬,欢迎批评指正
  • 程序在运行过程中SQL的效率太低,不确定是否是正常现象,建立索引以后速度提高了些,但提高有限,如果有了解如何提高数据库使用效率的,不吝赐教
  • 本人公众号如下,觉得文章对你有帮助的,就扫码关注下吧~

听歌识曲C++程序说明相关推荐

  1. 听歌识曲的软件实现c语言,【优秀】听歌识曲软件小程序

    听歌识曲软件小程序 {{/if}} {{/if}} {{if data.isNormalVip}}在线电台. {{else}} {{/if}}语音直播. 香肠派对手机版电脑版下载找到你下载好的文件,双 ...

  2. shazam 音频指纹 听歌识曲 原理(附代码)

    shazam 音频指纹 听歌识曲 原理 如何用java来实现shazam? 几天以前我读了一篇论文 :How shazam works?(shazam的工作原理) 这让我有了自己写一个java版本的s ...

  3. 练手项目|Node.js实战——轻松实现听歌识曲

    黑马程序员视频库 播妞QQ号:3077485083 传智播客旗下互联网资讯.学习资源免费分享平台 前端作为当下非常火的职业之一,播妞身边有很多小伙伴在学习前端,但是大部分人在自学过程中十分盲目,不知道 ...

  4. MATLAB的GUI小游戏—听歌识曲

    这是我用MATLAB的GUI设计的第二个小游戏,基本功能和我之前的一篇博客类似,参见:MATLAB的GUI小游戏-你话我猜.最终效果如图所示: 这是主界面,当单击歌名类别文字左侧的按钮图标时,会跳转至 ...

  5. 听歌识曲原理探究以及样例代码

    技术故事 听歌识曲是一个很成熟的技术.现在的主流音乐播放器,几乎都有这个功能. 但是第一个吃螃蟹的是上个世纪末的一个叫**"Shazam Entertainment Limited" ...

  6. 腾讯接入华为鸿蒙!QQ音乐与Harmony OS达成合作 推出听歌识曲万能卡片

    今年6月份,华为正式推出了自研HarmonyOS操作系统,这是一款完完全全由华为控制的系统,被号称将实现万物互联.据了解,目前不少App都在逐渐接入,现在作为互联网巨头之一的腾讯也加入了鸿蒙应用生态. ...

  7. python声音识别歌曲_听歌识曲--用python实现一个音乐检索器

    听歌识曲,顾名思义,用设备"听"歌曲,然后它要告诉你这是首什么歌.而且十之八九它还得把这首歌给你播放出来.这样的功能在QQ音乐等应用上早就出现了.我们今天来自己动手做一个自己的听歌 ...

  8. 基于音频指纹的听歌识曲系统

    听歌识曲,我想大家都不陌生.虽然不同的厂商识别率不同(可能是因为版权的原因),但是每个音乐APP都会有这么一个功能.我们以扣扣音乐为例,扣扣音乐听歌识曲功能比较丰富,不仅有基本的听歌识曲还有哼唱识别, ...

  9. 谷歌宣布搜索引擎多个新 AI 功能,听歌识曲 15 秒完成匹配

    技术编辑:芒果果丨发自 思否编辑部 公众号:SegmentFault 你有没有哼着一首歌却怎么也想不起歌名的情况?Google 发布了一些搜索功能的更新,其中就有一个"听歌识曲"功 ...

  10. 人工智能在音乐领域的应用概述(1)---听歌识曲

    人工智能是当前.也将成为未来相当长时间的热门领域.本文概括其在音乐领域的垂直应用.作为交叉学科,该领域需要有一定数理基础,特别是傅里叶变换变体.卷积运算.动态规划算法(特别是Viterbi算法)和各种 ...

最新文章

  1. python 多进程——使用进程池,多进程消费的数据)是一个队列的时候,他会自动去队列里依次取数据...
  2. git Rebase 变基 教程
  3. oracle面临的挑战,Oracle SUN,严峻的挑战(一)
  4. 《SolidWorks 2013中文版机械设计从入门到精通》一1.4 操作环境设置
  5. find命令使用方法
  6. 74ls90设计十进制计数器电路图_利用555与74ls90制作电子秒表
  7. 使用POI读写word docx文件
  8. 21. 栈的压入、弹出序列
  9. 洛谷——P1851 好朋友
  10. c++ 数据结构之 线段树
  11. 爬虫第四章 单线程+多任务异步协程
  12. BZOJ2820:YY的GCD
  13. 04. 调用empty而不是检查size()是否为0
  14. UCHOME出现问题(转帖)
  15. win98进入dos
  16. AIX系统修改文件系统的方法
  17. 量子计算机未来猜想,太厉害了吧?这台量子计算机能预测16种不同的未来​!...
  18. LeetCode Day01:一年中的第几天
  19. 亚马逊云科技为全球的可持续发展进程做出贡献
  20. 微信公众平台测试号申请

热门文章

  1. 服务器为什么要域名解析,DNS解析的过程是什么 为什么需要DNS解析域名为IP地址?...
  2. 移动互联网创业机会只剩3年
  3. 需要一张可视化三维地图?这样炫酷的3D全景地图,你也可以拥有
  4. PHP获取MP3时长类
  5. viper4android 2.5正版,VIPER4Android最新版本
  6. Vcenter证书过期处理----Vcenter无法登录,“根证书错误”,“签名证书无效”,“503 service not available”
  7. 全新版大学英语综合教程第三册学习笔记(原文及全文翻译)——8 - A Clone Is Born(克隆生命诞生了)
  8. python父亲节祝福_2020年精选优美的父亲节祝福语28条
  9. anaconda base环境的地址_Anaconda安装及环境管理
  10. Unity粒子系统——简易特效制作(二)