# Thay đổi so với bộ bàn giao cũ (`bo-tai-lieu-jepa.zip`)

Bộ cũ được tạo đúng ở thời điểm **trước notebook v18**. Dấu hiệu nhận biết: trong đó việc còn treo được ghi là *"hai ô A05 của 3e-6 và 3e-5 — có chúng là dựng được cách chọn lr hợp lệ"*. Đó là điểm dừng.

Mọi thứ dưới đây xảy ra **sau** điểm đó.

---

## A. Tuyên bố đã bị RÚT

### A1. "JEPA thắng AASIST trên CodecFake"

Bộ cũ báo JEPA 32,78 so với AASIST-L 36,80 trên CodecFake, coi đó là kết quả chính.

**Rút, vì hai lý do độc lập, mỗi lý do đủ để bác bỏ.**

**Lý do thứ nhất — chiến thắng nằm trọn ở một codec là hiện vật.** Phân tích leave-one-codec-out (v18) tách được đóng góp của từng codec:

| hệ | trung bình có F03 | trung bình **bỏ F03** |
|---|---|---|
| AASIST-L | 35,86 | **34,12** |
| AASIST | 36,88 | **34,62** |
| JEPA | 28,96 | **36,02** |

Bỏ F03 ra, **JEPA thua AASIST-L 1,9 điểm**. Và F03 phải bỏ, vì:

| hệ trên F03 | EER |
|---|---|
| cnn4 (4 tầng, train from scratch) | 0,00 |
| resnet18 (from scratch) | 0,40 |
| **encoder khởi tạo ngẫu nhiên, không train** | **0,60** |
| JEPA | 0,70 |
| AASIST | 45,90 |

Một encoder chưa được tiền huấn luyện đạt 0,60 %. F03 không đo năng lực gì — nó có một dấu vết phổ mà mọi mô hình mel đều bắt được và mô hình waveform thì mù. Đưa nó vào trung bình là thổi phồng mọi hệ mel và dìm mọi hệ waveform.

**Lý do thứ hai — dữ liệu dùng để đo không phải CodecFake thật.** Bản mirror `ajaykarthick/codecfake-audio` trên HuggingFace khác bản chính thức ở mọi chiều:

| | mirror đã dùng | CodecFake chính thức (arena dùng) |
|---|---|---|
| số mẫu | 3.500 | 304.241 |
| nguồn giọng | VCTK, tiếng Anh, 48 kHz | có AISHELL-3, tiếng Trung |
| tập con | R + F01–F06 | C1–C6 + C7 |
| lỗi | **F03 trùng bit với F06** | — |

Mọi con số CodecFake trong bộ cũ **không so được** với cột CodecFake của bất kỳ bài báo nào.

### A2. "cepgmm" là một baseline hợp lệ

Bộ cũ có dòng `cepgmm` với EER 23,78 % trên ASVspoof19, đặt cạnh các baseline khác.

**Rút.** Cài đặt đó tính DCT trên log-**mel** — tức là MFCC, không phải LFCC. Thang mel nén vùng tần số cao, mà artifact vocoder nằm đúng ở đó; đây chính là lý do ngành anti-spoofing dùng cepstral **tuyến tính**. Baseline B02 chính thức của ASVspoof2019 đạt **8,09 %** (Todisco et al., Interspeech 2019, Bảng 1). 23,78 so với 8,09 là gần gấp ba.

Đã viết notebook `v19` để sửa cho đúng chuẩn B02 (filterbank tuyến tính, DFT 512, 20 ms/50 %, 60 chiều, GMM 512 thành phần) nhưng **tràn RAM ở ô khớp GMM** và sau đó bị bỏ hẳn khi chuyển sang arena — vì arena đã cung cấp baseline tốt hơn nhiều.

### A3. "Lỗ hổng lr có thể lấp bằng holdout A05"

Bộ cũ ghi việc còn treo là lấy hai ô A05 để dựng cách chọn lr hợp lệ. **Đã lấy, và A05 không dùng được.**

| JEPA lr | A05 (định làm validation) | CodecFake |
|---|---|---|
| 3e-6 | 30,80 *(tệ nhất)* | **32,78** *(tốt nhất)* |
| 1e-5 | 30,37 | 38,00 |
| 3e-5 | 23,40 | 40,58 |
| 1e-4 | **14,65** *(tốt nhất)* | 41,18 *(tệ nhất)* |

Spearman = **−1,00**. Nghịch chiều hoàn hảo: chọn lr bằng A05 sẽ chọn ra đúng cấu hình tệ nhất. Nó cũng không chọn đúng cho ASVspoof (A05 chọn 1e-4, ASVspoof tối ưu ở 3e-5).

Cách thay thế đã dựng (v18) là leave-one-codec-out. Nhưng vì A1 nên kết quả đó cũng không dùng được nữa.

**Cách giải quyết hiện tại đơn giản hơn nhiều: không tinh chỉnh gì cả.** Dùng một lr cố định chọn trên một tập khác, y như mọi baseline trong arena vốn không được tinh chỉnh cho tập test. Vấn đề "chọn lr trên test" biến mất thay vì được vá.

---

## B. Tuyên bố VẪN ĐỨNG

| tuyên bố | trạng thái |
|---|---|
| ASVspoof2019 đã bão hoà, không nên làm tuyên bố chính ở đó | **đứng, và mạnh hơn**: 10/12 hệ trong arena dưới 5 %, hệ tốt nhất 0,12 % |
| Tiền huấn luyện có ích rõ rệt so với khởi tạo ngẫu nhiên | **đứng**: 45,53 → 41,75 trên ADD22-T1 |
| JEPA hơn MAE | **đứng nhưng yếu đi nhiều**: 0,67 điểm trên ADD22-T1, chưa biết có ngoài nhiễu không |
| Bộ khung đánh giá của ta chạy đúng | **đứng, và đã xác nhận thêm hai lần** qua arena |
| Phần lý thuyết JEPA, mô tả bài toán, họ phương pháp | **đứng nguyên**, dùng tiếp từ bộ cũ |

Về ba con số đã sửa trong bộ cũ (trung bình 11 attack lạ là 16,68 chứ không phải 17,9; tỉ lệ ~26 lần chứ không phải ~40): các sửa đó vẫn đúng, giữ nguyên.

---

## C. Cái MỚI hoàn toàn

### C1. Dùng Speech DF Arena thay vì tự dựng benchmark

Không chạy lại baseline nào nữa. Arena công bố file điểm thô của 11 hệ; ta chạy mô hình mình qua đúng bộ công cụ đó rồi thêm một dòng. So sánh trực tiếp với 12 hệ mã nguồn mở và 3 hệ thương mại.

### C2. Chọn tập theo khoảng trống, không theo thói quen

Tính độ phân tán của 12 hệ trên cả 14 tập:

| tập | tốt nhất | trung vị | số hệ >40 % | tình trạng |
|---|---|---|---|---|
| CodecFake | 33,43 | 42,16 | 7/12 | chưa ai giải được |
| **ADD22-T1** | **31,04** | **40,64** | **6/12** | **chưa ai giải được, và chỉ 10,1 GB** |
| SONAR | 24,26 | 41,18 | 8/12 | phân tán rất mạnh |
| ITW | 6,70 | 28,70 | 3/12 | có lời giải tốt, dải rộng nhất |
| ASVspoof19 | 0,12 | 0,79 | 0/12 | **bão hoà** |

ADD22-T1 được chọn vì cùng mức khó với CodecFake nhưng rẻ hơn năm lần về dung lượng.

### C3. Ba nhóm theo miền tiền huấn luyện

Xem `ban-giao-00-DOC-TRUOC.md` mục 4. Đây là phát hiện chính hiện tại và nó **không phải** thứ ta đi tìm ban đầu.

### C4. Chín cạm bẫy kỹ thuật của đường ống arena

Xem `ban-giao-03-cam-nang-arena.md`. Đáng đọc trước khi chạy, vì phần lớn chúng **không báo lỗi** mà cho ra số sai trông hợp lý.

---

## D. Nếu bạn định dùng lại bộ cũ

Dùng được: phần lý thuyết JEPA, mô tả bài toán anti-spoofing, mô tả các họ phương pháp, danh sách 11 lỗi kỹ thuật cũ, bộ câu hỏi tự kiểm tra.

**Không dùng được:** mọi bảng số liệu có CodecFake, mọi kết luận so sánh với AASIST, dòng cepgmm, và phần bàn về cách chọn learning rate.
