当前位置: 首页 > news >正文

php方案 PHP 实现音频指纹识别

大白话 音频指纹:就像人的指纹,每首歌有唯一的"声纹"。录一段音 → 算出指纹 → 去数据库比对 → 告诉你这是什么歌。Shazam 就是这个原理。 音频文件 → fpcalc 算指纹 → AcoustIDAPI查询 → 返回歌曲信息PHP没有原生库能算指纹,标准做法是调 fpcalc 二进制工具。---安装# 安装 fpcalc(Chromaprint 命令行工具)apt install libchromaprint-tools# Ubuntu/Debianbrew install chromaprint# macOS# PHP 库composerrequiresimbiat/php-acoustid# AcoustID API 客户端composerrequirejames-heinrich/getid3# 读音频元数据---完整示例<?phprequire'vendor/autoload.php';// 1. 用 fpcalc 生成音频指纹$file='/path/to/song.mp3';$output=shell_exec('fpcalc -json '.escapeshellarg($file));$data=json_decode($output,true);$duration=(int)$data['duration'];// 时长(秒)$fingerprint=$data['fingerprint'];// 声纹字符串echo"时长:{$duration}s\n";echo"指纹: ".substr($fingerprint,0,40)."...\n";// 2. 查询 AcoustID API 识别歌曲// 免费申请 key: https://acoustid.org/login$apiKey='YOUR_ACOUSTID_API_KEY';$url='https://api.acoustid.org/v2/lookup?'.http_build_query(['client'=>$apiKey,'duration'=>$duration,'fingerprint'=>$fingerprint,'meta'=>'recordings+releasegroups',]);$resp=json_decode(file_get_contents($url),true);// 3. 解析结果foreach($resp['results']??[]as$result){echo"匹配度: ".round($result['score']*100)."%\n";foreach($result['recordings']??[]as$rec){echo"歌曲:{$rec['title']}\n";foreach($rec['artists']??[]as$artist){echo"艺术家:{$artist['name']}\n";}}}---输出示例 时长:213s 指纹:AQAA3UlSRIqHSImSSoqSSoqSSoqSSoqS...匹配度:98%歌曲:Bohemian Rhapsody 艺术家:Queen---用 getID3 读本地元数据(不联网)<?phprequire'vendor/autoload.php';$getID3=newgetID3();$info=$getID3->analyze('/path/to/song.mp3');echo$info['tags']['id3v2']['title'][0]??'无标题';// 歌名echo$info['tags']['id3v2']['artist'][0]??'无艺术家';// 艺术家echo$info['playtime_string'];// 时长 3:33echo$info['audio']['bitrate'];// 比特率 320000---方案对比 ┌───────────────────────┬────────────────────────────┬────────────────────┐ │ 方案 │ 用途 │ 能识别未知歌曲 │ ├───────────────────────┼────────────────────────────┼────────────────────┤ │ fpcalc+AcoustIDAPI│ 识别歌曲(Shazam同款算法) │ 是 │ ├───────────────────────┼────────────────────────────┼────────────────────┤ │ getID3 │ 读MP3/ID3标签元数据 │ 否(只读已有标签) │ ├───────────────────────┼────────────────────────────┼────────────────────┤ │ php-ffmpeg │ 音频格式转换/预处理 │ 否 │ └───────────────────────┴────────────────────────────┴────────────────────┘ 短片段识别(几秒钟)AcoustID 效果不如完整曲目,如果需要 Shazam 级别的短片段匹配,目前没有开源PHP方案。
http://www.jsqmd.com/news/477477/

相关文章:

  • 旅游从业者必看!旅行社收客系统避坑指南
  • 基于springboot在线商城系统设计与开发.7z(源码+论文)
  • 网站上传大文件时提示“文件过大”“上传失败”,或进度条卡住不动
  • BMJ最新论文解读:如何利用倾向得分方法完美实现组间均衡可比
  • 2026大模型关键元年!告别内卷,从“参数比拼”到“全链赋能”,这3个确定性机会你必须抓住必须抓住
  • MinIO 是什么?和 FTP 有什么区别?
  • 聊聊深圳直流稳压电源制造企业,哪家性价比高? - 工业推荐榜
  • 题解:洛谷 P2005 A/B Problem II
  • Oracle快速生成测试数据:从创建表到主键约束
  • OpenRAG横空出世,集成Langflow+OpenSearch,一文读懂RAG框架终极选型指南
  • 实战案例十一:产品经理效率提升 - PRD 自动生成与竞品分析
  • 益生菌排行榜10大品牌 2026年高活菌款选购指南脆弱肠道人群必看 - 资讯焦点
  • 30 分钟部署 OpenClaw:Windows 系统专属 AI 助手,远程操控更自由
  • php方案 PHP 实现 CAN 总线协议解析 - 汽车电子、工业总线的 DBC 文件解析
  • Winform之SuspendLayout的作用
  • 2026 AI风向标:DeepSeek引爆开源革命,AI Agent成新生产力
  • 2026科技政策申报热门品牌盘点,助力企业高效获取扶持,目前科技政策申报实力厂家精选实力品牌榜单发布 - 品牌推荐师
  • STM32 DIY飞控板 | 四轴飞行器从设计到组装到上天全攻略
  • Cesium全球FFT海洋特效
  • 揭秘软著在评职称中的隐藏加分项!职场晋升必备攻略!
  • 前端项目同时使用svn和gitee管理代码
  • TypeScript 极简指南:那个尖括号 <T> 到底是什么?
  • OpenClaw Channel 对接飞书:从零到一实现企业级 AI 助理
  • 使用 storcli 将 LSI RAID 硬盘从 JBOD 模式改为 RAID 模式
  • 杭州宙宇未来科学技术有限公司靠谱吗?从官方资质看企业实力 - 资讯焦点
  • OpenClaw简介
  • 生成式AI教育公平的五大现实障碍
  • Human IgE His-Tagged Protein:从过敏介质到肿瘤免疫治疗的创新突破
  • 查出5级组织树结构
  • iOS 解决 4.3a【二进制加固】