Bài 7 — Đọc dataset bằng protocol và metadata#
Bắt đầu lớp 2 · Trước: task · Tiếp: cue và shift
Mục tiêu và tiến trình#
Bạn phải đọc được một passport, thiết kế group split và nói chính xác trục nào đã hold out. Cần task/label ở bài 6 và component pipeline ở bài 1. Tiến trình: identity/version → annotation → ancestry → grouping → exposure → claim. Mỗi corpus có passport riêng; bài này dạy cách đọc, không yêu cầu nhớ mọi số lượng.
1. Một passport đủ dùng phải trả lời gì?#
| Trường | Câu hỏi và giá trị cần giữ |
|---|---|
| Identity/version/track | Tên chính thức, paper revision, release ID, URL, manifest/hash; LA/DF/Track1 không bỏ đi |
| Task/unit/labels | Clip, segment hay ASV trial? Bona fide/spoof theo định nghĩa nào? Segment resolution bao nhiêu? |
| Genuine ancestry | Corpus/bản ghi nguồn, speaker, transcript, ngôn ngữ, môi trường và quan hệ cha–con |
| Fake pipeline | Task, generator family/model/checkpoint, vocoder/codec, source utterance và conditioning |
| Signal chain | Sample rate, resampling, trimming, gain, container, codec, replay/noise; có cân bằng theo nhãn không |
| Split/exposure | Grouping speaker/source/text/attack/component; dữ liệu nào dùng train, validation, calibration, test |
| Generalization | Trục đổi và trục giữ; bằng chứng disjointness ở đúng độ hạt |
| Unknown/limits | Trường nào nguồn không công bố hoặc chưa audit manifest; tránh điền đoán |
“Không công bố” và “chưa kiểm tra” khác nhau. Không thấy checkpoint ID trong phần paper đã đọc chỉ cho phép ghi chưa xác định từ nguồn đã đọc, không kết luận tác giả không có metadata đó.
2. Bản đồ đọc nhanh#
| Corpus/protocol | Điều hữu ích để học | Giới hạn phải giữ |
|---|---|---|
| ASVspoof2019 LA | Attack ID holdout trong VCTK-based corpus | A16/A19 tái dùng thuật toán A04/A06; unseen ID không đồng nghĩa unseen family |
| ASVspoof2021 LA / DF | Kênh điện thoại vs standalone DF và nén | Không hoán tên task; không có train/dev2021 mới trong challenge chính |
| ASVspoof5 Track1 / Track2 | Standalone detection vs SASV và exposure rules | Open/closed training condition khác open-set attribution |
| DFADD | Năm TTS diffusion/FM, speaker split | Không thuần diffusion; D3 checkpoint ancestry có discrepancy trong paper |
| LibriSeVoc | Same-source mel → sáu vocoder | Non-overlap6:2:2 không tự xác lập speaker/source-group disjoint |
| In-the-Wild | External web evaluation | Generator từng file thường chưa xác định; không đại diện mọi generator hiện tại |
| ADD2022 Track1 | Mandarin, noisy/low-quality full fake | Không phải Track2 partial fake; unseen utterance không chứng minh mọi trục unseen |
| PartialSpoof | Clip labels và temporal labels | Bản2021 vs extended release phải ghi riêng; task paper hiện tại không localization |
| CodecFake Wu et al. | Codec encode/decode resynthesis | Không đồng nhất full ALM generation; tên gần giống Lu/Xie cần khóa identity |
Các dòng là diễn giải ngắn của nguồn, không phải audit file-level. URL/section/version và giới hạn nằm trong passport và sổ nguồn.
3. Ví dụ hoàn chỉnh: split file khác split nguồn#
Manifest đồ chơi do người soạn đặt. là source recording ID, là speaker, là generator checkpoint, là vocoder, là channel.
| File | Split hiện tại | |||||
|---|---|---|---|---|---|---|
| real_u1.wav | u1 | P1 | — | — | clean | train |
| fake_u1_A.wav | u1 | P1 | A | V | clean | test |
| fake_u2_B.wav | u2 | P2 | B | V | clean | test |
| fake_u3_C.mp3 | u3 | P3 | C | W | MP3 | test |
Bước1: file names và encoded hashes khác nhau không có nghĩa source độc lập: hai hàng đầu chung . Để kiểm source-utterance generalization, group mọi derivative của vào một partition trước khi chia.
Bước2: B khác A nên có thể checkpoint ID mới nếu A là tập train đã biết; nhưng cùng V không phải vocoder-unseen. C đổi checkpoint, vocoder và channel đồng thời; score kém trên C chưa tách được nguyên nhân.
Bước3: để đánh giá speaker holdout, group theo ; source holdout group theo ; vocoder holdout group theo với genuine controls thích hợp. Nếu một source có derivatives của nhiều vocoder thì các ràng buộc có thể nối thành nhóm lớn. Không thể hứa giữ mọi trục disjoint rồi random split từng file.
Bước4: test locked không dùng để chọn checkpoint/threshold. So sánh metadata, exact hashes và audio fingerprints sau decode/resample là các evidence khác nhau; lossy re-encode có thể làm hash đổi mà recording vẫn là cùng nguồn.
Đây là thiết kế đề xuất để đọc claim, chưa phải kết quả audit trên bất kỳ corpus nào. ASVspoof5 là ví dụ protocol quy định cụ thể cả same-speaker và same-utterance exposure, thay vì chỉ cấm tên corpus chung. Plan v0.6 §4.2
4. Ancestry không phải exact overlap#
Một ancestry graph có thể nối original LibriVox audio/text materials với cả LibriSpeech và LibriTTS, rồi LibriTTS → mel → LibriSeVoc fake. LibriTTS được dựng lại từ original materials liên quan LibriSpeech, không đơn giản nâng sample rate của processed LibriSpeech files. Quan hệ cha–con giúp chọn metadata cần đối chiếu, nhưng không chứng minh recording trong test đã có ở train detector/encoder. LibriTTS §§1,3, LibriSeVoc §4.1
Tách năm mức: shared corpus ancestry → shared speaker → shared transcript → same source recording → exact/near-duplicate audio. Cùng transcript có thể là hai bản thu độc lập; khác byte hash có thể cùng bản thu sau nén. Ngược lại, tên corpus khác vẫn có thể chứa lại một bản ghi web. ASVspoof5 plan cho phép LibriSpeech vì speaker disjoint theo thiết kế, trong khi hạn chế một số nguồn liên quan khác: common ancestry không đủ để suy ra prohibited overlap. Plan §4.2
Pretraining exposure phải kiểm riêng với downstream train. AudioSet-2M là tên corpus, không phải bằng chứng từng recording test chưa từng xuất hiện. Lượt biên soạn này không audit AudioSet/video IDs hay waveform manifests nên không kết luận leakage hoặc absence of leakage.
5. Đọc protocol thay vì chỉ đọc bảng EER#
ASVspoof2021 dùng training/development2019; LA có kênh truyền còn DF là task riêng, nguồn bổ sung từ VCC. Không lấy EER của hai track làm cùng một phép đo “unseen generator”. Official2021, overview §§II–III
ASVspoof5 Track1/Track2 và open/closed training condition là hai trục độc lập. “Open condition” có thể cho dùng dữ liệu ngoài theo hạn chế; không tự có unknown-rejection output. Plan v0.6 không cho pool train/dev để train mô hình, nhưng cho dev để calibration/fusion theo quy định; evaluation trials được xử lý độc lập. Các rule này gắn bản plan, không áp mặc định cho mọi nghiên cứu. Plan §§3–4.3
6. Liên hệ với paper Audio-JEPA#
Train là ASVspoof2019 LA với A05 và 600 bona fide được giữ ngoài subset train. A05 dùng WORLD, chia sẻ vocoder với A02/A03 và family với A06; chính PDF nêu giới hạn này. A05 được monitoring nhưng không dùng chọn checkpoint trong main runs. Vì thế holdout không chứng minh unseen vocoder/family hoặc speaker-disjoint monitoring. PDF §4.2
Evaluation gồm ASV2019 LA eval và bốn corpus ngoài: DFADD, ADD2022 Track1, LibriSeVoc, In-the-Wild. Khi sang ADD, ngôn ngữ, source, speaker, noise và generator có thể cùng đổi; khi sang LibriSeVoc, task fake là vocoder resynthesis. Đây là các kết quả cross-corpus theo protocol được báo cáo, chưa phải causal isolation từng trục. PDF dùng bản DFADD qua aggregator; passport gốc không xác nhận exact release/hash của bản copy đó. Không thay số liệu paper bằng toàn bộ quy mô dataset gốc.
7. Bài tập và đáp án giải thích#
- Train A dùng V, test B dùng V. Có thể viết “unseen generator and vocoder” không?
- Hai corpus đều có LibriSpeech ancestry. Đủ để kết luận leakage chưa? Cần evidence gì tiếp theo?
- Từ manifest đồ chơi, đổi hàng fake_u1_A sang dev có giải quyết source overlap với train không?
- Một article nói split non-overlap6:2:2 nhưng không nói grouping. Ghi passport thế nào?
Đáp án. (1) Chỉ có thể gọi unseen ở granularity được kiểm, ví dụ checkpoint B; vocoder V đã thấy. (2) Chưa; đối chiếu bản release, speaker/transcript/source IDs, hashes và near-duplicate fingerprints cùng pretraining exposure. (3) Không: dev vẫn có source u1 của train, gây vấn đề cho source-disjoint claim và có thể model selection; phải group derivatives theo mục tiêu. (4) Ghi tỷ lệ và non-overlap theo mô tả; speaker/source-group disjoint chưa xác định, không tự nâng nghĩa của “non-overlap”.
Đào sâu tùy chọn#
Vẽ graph: mỗi file là node, cạnh nối chung source recording hoặc speaker theo claim đang kiểm. Các connected components phải ở cùng split. Thêm cạnh chung generator để giữ generator-disjoint có thể tạo nhóm lớn hơn; lựa chọn group phải xuất phát từ estimand, không chỉ mong muốn một tỷ lệ đẹp.