Name Last Update
..
__pycache__ Loading commit data...
configs Loading commit data...
data Loading commit data...
reports Loading commit data...
scripts Loading commit data...
src Loading commit data...
FIRST_RUN_CHECKLIST.md Loading commit data...
README.md Loading commit data...
evaluate.py Loading commit data...
requirements.txt Loading commit data...
run_demo.py Loading commit data...
train.py Loading commit data...

ACR Engine

一个可运行的听歌识曲原型,包含:

  • 合成数据集生成
  • 传统音频指纹(landmark hash)匹配
  • 深度 embedding 检索(ECAPA-TDNN)
  • Hybrid 混合识别入口

快速开始

cd acr-engine
/usr/local/miniconda3/bin/python -m pip install -r requirements.txt
/usr/local/miniconda3/bin/python run_demo.py full-demo --device cpu

常用命令

1. 生成合成数据

python run_demo.py generate-data --output data/synthetic --num-songs 24

2. 训练前做干跑校验

python train.py --data data/synthetic --dry-run --device cpu

3. 训练一个最小模型

python train.py --data data/synthetic --output data/models --device cpu --epochs 1 --batch-size 8

4. 构建指纹与 embedding 索引

python run_demo.py build-index --data data/synthetic --model data/models/best_model.pt --output data/index

5. 跑识别

python run_demo.py recognize \
  --query data/synthetic/segments/song_0020_seg_00.wav \
  --data data/synthetic \
  --model data/models/best_model.pt \
  --index-prefix data/index/reference

6. 一键最小闭环

python run_demo.py full-demo --device cpu

服务启动与 smoke

启动服务

cd acr-engine
/usr/local/miniconda3/bin/python -m uvicorn src.service.app:app --host 127.0.0.1 --port 8000

运行服务 smoke

cd acr-engine
/usr/local/miniconda3/bin/python scripts/service_smoke.py

常看接口

  • GET /health
  • GET /ready
  • GET /config
  • GET /cache

目录

  • train.py:训练入口
  • run_demo.py:数据生成 / 建索引 / 识别 / 一键 demo
  • src/data:数据集和合成数据生成
  • src/models:ECAPA 模型与损失
  • src/engines:指纹、embedding、hybrid 检索
  • configs/default.yaml:默认配置

当前定位

这是一个原型仓库,目标是验证 ACR 主链路能否跑通,不是生产级服务。

评测

python evaluate.py --data data/synthetic --model data/models/best_model.pt --index-prefix data/index/reference --split test --device cpu

当前提升方向

  • 更强合成混淆样本(confused / humming_like)
  • Hybrid 分数归一化后再融合
  • full-demo 自动训练
  • 后续可接入开源数据集