acr-architecture.md 1.56 KB

ACR 项目架构图

更新:2026-06-02

1. 总体架构

flowchart LR
    Q[Query 音频] --> P[预处理]
    P --> F1[传统指纹特征]
    P --> F2[Mel 特征]

    F1 --> M1[Chromaprint Matcher]
    F2 --> M2[ECAPA Embedder]

    R[Reference 曲库] --> I1[指纹索引]
    R --> I2[Embedding 索引]

    M1 --> C[候选集合]
    M2 --> C
    C --> H[Hybrid 重排序]
    H --> O[Top-K 识别结果]

2. 训练架构

flowchart TD
    A[原始/合成音频] --> B[随机裁剪]
    B --> C[增强: 噪声/变速/移调/混响]
    C --> D[Mel Spectrogram]
    D --> E[ECAPA-TDNN]
    E --> F[Embedding]
    F --> G[SupCon Loss]
    F --> H[AAM Softmax]
    G --> I[联合优化]
    H --> I

3. 推理架构

sequenceDiagram
    participant U as User Query
    participant P as Preprocessor
    participant C as Chroma Matcher
    participant E as ECAPA Embedder
    participant H as Hybrid Engine

    U->>P: 输入音频
    P->>C: 指纹特征
    P->>E: Mel 特征
    C-->>H: Top-N 指纹候选
    E-->>H: Top-N embedding 候选
    H-->>U: 融合后的识别结果

4. 当前可运行闭环

  1. synthetic.py 生成合成曲库
  2. train.py 训练 ECAPA 原型模型
  3. run_demo.py build-index 构建:
    • 指纹索引
    • embedding 索引
  4. run_demo.py recognize 对片段做识别

5. 后续生产化架构建议

  • API Gateway
  • 异步音频入库流水线
  • Faiss/HNSW 向量服务
  • Postgres/MySQL 元数据服务
  • 对象存储保存原始音频
  • 模型服务与索引服务解耦