IOAI 2025 — Phát hiện giọng nói tổng hợp

Xem PDF



Tác giả:
Dạng bài
Ngôn ngữ cho phép
Output
Điểm: 1800 (p) Thời gian: 1.0s Bộ nhớ: 256M Input: bàn phím Output: màn hình

Mô tả bài toán

Giọng nói tổng hợp do AI tạo ra ngày càng trở nên giống thật, kéo theo nguy cơ bị lạm dụng (giả mạo giọng người nổi tiếng, lan truyền tin nhắn thoại sai sự thật...). Vì vậy, việc tự động phát hiện đâu là giọng người thật, đâu là giọng do máy tổng hợp là một bài toán quan trọng cho kiểm chứng nội dung và an ninh thông tin.

Trong bài này, bạn cần xây dựng một mô hình phân loại nhị phân:

  • Nhãn 0 (bonafide): bản ghi âm giọng người thật.
  • Nhãn 1 (spoof): giọng nói do AI tổng hợp.

Mỗi mẫu âm thanh đã được chuyển sẵn thành Mel spectrogram — một biểu diễn 2D với trục hoành là thời gian, trục tung là tần số Mel — và lưu dưới dạng tensor PyTorch trong tệp .pt. Bạn không làm việc với âm thanh thô; chỉ cần đọc các tensor .pt và xử lý chúng như ảnh 2D. Nhờ đó, có thể coi đây là một bài toán Thị giác máy tính và áp dụng các kiến trúc CNN quen thuộc (ví dụ ResNet18) trực tiếp lên spectrogram.

Dữ liệu

Do toàn bộ tập huấn luyện rất lớn (~559 MB, khoảng 11 000 spectrogram) nên không thể đính kèm trực tiếp trên LQDOJ. Bạn tự tải tập huấn luyện từ trang chính thức:

Các tệp dữ liệu đính kèm trên LQDOJ:

  • validation_set.zip — 1374 spectrogram .pt (subset A), dùng để bạn tự kiểm tra và tinh chỉnh mô hình tại máy.
  • val_answer.csv — nhãn đúng của tập validation, mỗi dòng một nhãn, theo thứ tự tên tệp đã sắp xếp theo bảng chữ cái trong validation_set/.
  • testing_set.zip1375 spectrogram .pt (subset B). Đây là tập bạn cần dự đoán để nộp. Không có nhãn công khai.
  • ioai25speech_baseline.ipynb — notebook baseline của ban tổ chức. Bạn nên đọc và chạy thử trước, đặc biệt là lớp SpectrogramDataset (đừng sửa lớp này để tránh lỗi tải dữ liệu) cùng phần định nghĩa class MyModel(nn.Module) với resnet18. Bản gốc của baseline: https://github.com/IOAI-official/IOAI-2025/blob/main/GAITE-Contest/Synthetic_Speech_Detector/IOAI2025%20GAITE%20Task%205%20Synthetic%20Speech%20Detector%20Baseline.ipynb

Bài nộp

Nộp một tệp .zip chứa đúng một tệp test_answer.csv với:

  • 1375 dòng, mỗi dòng đúng một số: 0 (bonafide) hoặc 1 (spoof).
  • Không có dòng tiêu đề (header).
  • Thứ tự các dòng phải trùng với thứ tự đã được sắp xếp theo bảng chữ cái của tên tệp .pt trong thư mục testing_set/ sau khi giải nén.

Nói cách khác, dòng thứ i của test_answer.csv là nhãn dự đoán cho tệp đứng thứ i khi liệt kê testing_set/ theo thứ tự alphabet.

Tiêu chí chấm

Điểm số là macro F1-score (trung bình F1 trên cả hai lớp bonafidespoof), so sánh nhãn dự đoán của bạn với nhãn đúng của 1375 mẫu trong tập test (subset B).

Điểm tham chiếu của ban tổ chức trên Leaderboard B:

  • Baseline: 0.70.
  • Lời giải tốt nhất (Hội đồng Khoa học): 0.90.

Nguồn đề bài: https://github.com/IOAI-official/IOAI-2025/tree/main/GAITE-Contest/Synthetic_Speech_Detector.

Tệp

Bình luận

Mới nhất
Tải bình luận...

Không có bình luận nào.

Kỳ thi: