# 01 — Nền tảng toán, âm thanh và deep learning

Chương này là bản đồ khái niệm. Học cơ chế, dẫn xuất và ví dụ tính tay theo [bộ tám bài sâu của lớp 1](lop-01-nen-tang/00-BAT-DAU-LOP-01.md); xem [sổ nguồn và mức đọc](lop-01-nen-tang/09-SO-DANG-KY-NGUON.md). Học liệu được bổ sung ngày 11/10/2026; việc hoàn thành học qua hỏi đáp được theo dõi riêng.

## 1. Tiếng nói mang những loại thông tin nào?

Một waveform không chỉ mang câu chữ. Có thể hình dung nó phụ thuộc vào:

- **Linguistic content:** âm vị, từ, cú pháp.
- **Speaker identity:** đặc điểm đường thanh quản và thói quen phát âm.
- **Prosody:** cao độ, nhịp, trọng âm, ngữ điệu.
- **Paralinguistics:** cảm xúc, trạng thái, phong cách nói.
- **Acoustic channel:** micro, phòng, khoảng cách, codec, noise.
- **Generation process:** người thật, vocoder, mô hình tổng hợp, chỉnh sửa.

Các yếu tố không tách hoàn toàn. Người nói đổi cao độ theo nội dung; codec xử lý khác nhau với âm hữu thanh và âm vô thanh. Detector phải tìm dấu hiệu về quá trình tạo mà vẫn chịu được thay đổi tự nhiên ở những yếu tố khác.

### Source–filter là mô hình trực giác quan trọng

Nguồn kích thích từ thanh quản đi qua bộ lọc của đường thanh âm. Với đoạn gần ổn định, có thể xấp xỉ:

$$x[n] \approx e[n]*h[n].$$

$e$ là excitation, $h$ là vocal-tract filter; $*$ là convolution. Mô hình này giúp hiểu **pitch/harmonics** và **formants**, nhưng không mô tả hoàn hảo mọi kiểu phát âm.

| Đại lượng | Ý nghĩa | Không nên nhầm với |
|---|---|---|
| $F_0$ | Tần số cơ bản của dao động hữu thanh | Formant |
| Harmonics | Thành phần gần các bội của $F_0$ | Những bin STFT tùy ý |
| Formants | Vùng cộng hưởng của đường thanh âm | Cao độ giọng |
| Spectral envelope | Hình dạng phổ ở thang rộng | Chi tiết từng harmonic |
| Prosody | Biến thiên theo thời gian ở thang âm tiết/câu | Một phổ ở một frame |

Vocoder có thể mô hình tốt envelope nhưng vẫn sai ở excitation, phase hoặc chuyển tiếp. Mô hình mới có thể sửa các sai khác đó, nên không tồn tại một artifact cố định cho mọi deepfake.

## 2. Sampling và bandwidth

Nếu lấy mẫu ở $f_s$, dải tần có thể biểu diễn không aliasing nằm dưới $f_s/2$, với điều kiện có lọc chống aliasing phù hợp trước khi giảm mẫu.

Trong paper: audio vào ở **16 kHz**, sau đó resample lên **32 kHz**. Việc này tạo lưới mẫu dày hơn; không phục hồi nội dung 8–16 kHz đã không có ở bản 16 kHz. Vì vậy giới hạn mel 8 kHz không tự động làm mất thêm thông tin nguồn trong protocol đó.

Phải tách ba khái niệm:

1. **Sample rate trong metadata.** File khai báo bao nhiêu mẫu/giây.
2. **Bandwidth thực.** Nội dung thực sự có năng lượng và thông tin ở đâu.
3. **Lịch sử xử lý.** Audio từng bị downsample, nén hay lọc rồi nâng mẫu lại chưa.

Một file 48 kHz có thể chỉ chứa speech băng hẹp đã nâng mẫu. Detector có thể khai thác dấu lọc thay vì dấu tổng hợp.

## 3. STFT: vì sao cần nhìn cả thời gian lẫn tần số?

Fourier transform phức của cả câu vẫn giữ thông tin để khôi phục tín hiệu qua magnitude và phase, nhưng không có trục thời gian cục bộ dễ đọc. Bỏ phase mới làm mất thông tin trực tiếp về phase/vị trí; [bài 2 có phản ví dụ dịch tín hiệu](lop-01-nen-tang/02-TIN-HIEU-CONVOLUTION-FOURIER.md). STFT dùng cửa sổ trượt:

$$X[m,k]=\sum_n x[n]w[n-mH]e^{-j2\pi kn/N}.$$

$H$ là hop, $w$ là window, $N$ là FFT size. Spectrogram thường là $|X|$ hoặc $|X|^2$; phase là $\arg X$.

Công thức trên dùng chỉ số thời gian toàn cục trong số mũ; quy ước theo chỉ số cục bộ của frame khác một hệ số phase. [Bài 4](lop-01-nen-tang/04-STFT-MAGNITUDE-POWER-PHASE.md) tính trực tiếp cả hai frame nhỏ và phân biệt frame count theo window với frame count theo n_fft của thư viện.

| Quyết định | Tác động | Trade-off |
|---|---|---|
| Window dài hơn | Phân biệt cấu trúc tần số tinh hơn | Làm mờ biến đổi ngắn theo thời gian |
| Hop nhỏ hơn | Có nhiều frame, lấy mẫu diễn biến dày hơn | Chi phí tăng; không tự tăng độ phân giải tần số |
| FFT size lớn hơn qua zero-padding | Lưới tần số mịn hơn | Không tạo thêm khả năng phân giải vật lý từ cửa sổ ngắn |
| Chỉ magnitude | Dễ dùng CNN/ViT | Bỏ phase trực tiếp |
| Complex representation | Giữ magnitude và phase | Khó chuẩn hóa; phase nhạy với dịch thời gian |

**Nominal temporal patch span** và **receptive field** khác nhau. Patch 8 frame với hop 10 ms được mô tả bằng span danh nghĩa 80 ms, nhưng cửa sổ 25 ms chồng nhau nên phần waveform tham gia là dài hơn 80 ms. Sau self-attention, một token có thể chứa thông tin từ toàn clip.

## 4. Mel, LFCC, MFCC và CQCC

Mel filterbank gộp năng lượng STFT vào các dải có phân bố gần thang cảm nhận của người nghe:

$$S[m,b]=\log\left(\epsilon+\sum_k W_b[k]|X[m,k]|^2\right).$$

Log nén dải động. Gộp bin làm giảm chiều nhưng mất khả năng phân biệt những phổ khác nhau cho cùng tổng năng lượng dải.

| Feature | Đường biến đổi | Inductive bias |
|---|---|---|
| Log-mel | STFT → mel bands → log | Ưu tiên phân giải dải thấp; tiện cho mô hình audio |
| MFCC | Log-mel → DCT → giữ một số hệ số | Tóm tắt spectral envelope; thường giảm chi tiết phổ |
| LFCC | Filterbank tuyến tính → log → DCT | Phân bố đều hơn theo Hz; có thể giữ thông tin dải cao khác mel |
| CQCC | Constant-Q transform → biến đổi cepstral | Độ phân giải thời gian/tần số phụ thuộc tần số |
| Phase features | Phase / group delay và biến thể | Nhìn cấu trúc mà magnitude không trực tiếp chứa |
| Raw waveform | Mẫu trực tiếp | Để front-end học phép lọc; cần dữ liệu và regularization |

Không có feature “mạnh hơn” vô điều kiện. Phải hỏi artifact cần đo nằm ở đâu và feature đã loại gì. Mel được thiết kế theo cảm nhận; perceptual similarity và forensic separability là hai mục tiêu khác nhau.

### Chuẩn hóa cũng là một giả định

- **Waveform mean subtraction:** bỏ DC offset.
- **Peak/RMS normalization:** thay đổi scale năng lượng.
- **Dataset normalization:** dùng thống kê train chung.
- **Utterance CMVN:** trừ mean/chia std theo từng mẫu, từng chiều feature.
- **LayerNorm:** chuẩn hóa activation theo chiều feature tại một vị trí.
- **BatchNorm:** dựa vào thống kê batch và running statistics, tùy chế độ.

CMVN có thể giảm dấu kênh truyền, đồng thời xóa khác biệt hữu ích cho detection. Nó là phép can thiệp cần kiểm tra, không phải mặc định “làm sạch dữ liệu”. Padding phải được loại khỏi phép tính thống kê nếu ta không muốn độ dài quyết định mean/variance.

## 5. Tokenization không chỉ là đổi shape

Với spectrogram $T\times F$ và patch $p_t\times p_f$, khi chia hết:

$$N=(T/p_t)(F/p_f).$$

Trong bài: $256\times128$, patch $8\times32$ → **32 vị trí thời gian × 4 vị trí tần số = 128 token**. Không phải 128 bước thời gian.

Patch projection ánh xạ vector patch sang embedding. Hình dạng patch quyết định thông tin được trộn trước khi encoder xử lý. Hai patch cùng diện tích vẫn có inductive bias khác nhau.

**Positional encoding** nói token nằm ở đâu. Cùng 128 token nhưng grid 16×8 và 32×4 khác nhau; shape tensor bằng nhau không bảo đảm vị trí đúng. Tần số và thời gian cũng không đối xứng: đổi vị trí một harmonic theo tần số không giống dịch thời gian cả sự kiện.

## 6. Xác suất cho detection

Đặt $y=1$ là bona fide, $y=0$ là spoof. Phân loại nhị phân là cách huấn luyện; detection nhấn mạnh score và threshold. Hai cách gọi này không loại trừ nhau.

Điểm lý tưởng cho quyết định theo chi phí là log-likelihood ratio:

$$\ell(x)=\log\frac{p(x\mid y=1)}{p(x\mid y=0)}.$$

Posterior odds còn phụ thuộc prior:

$$\log\frac{p(y=1\mid x)}{p(y=0\mid x)}=\ell(x)+\log\frac{\pi_1}{\pi_0}.$$

Mô hình học trên tập có rất nhiều spoof không tự cho xác suất đúng với nơi triển khai có rất ít spoof. Class weighting lại thay đổi mục tiêu học. **Logit difference có thứ tự hợp lý chưa có nghĩa là calibrated LLR.**

### Vì sao loss MSE liên quan conditional expectation?

Cho context $c$, target $t$ và dự đoán $a$, ta có:

$$\arg\min_a\mathbb E[\|t-a\|^2\mid c]=\mathbb E[t\mid c].$$

Đây là nghiệm tối ưu của dự đoán dưới squared loss, không phải định lý rằng encoder của MAE loại bỏ mọi chi tiết khó đoán. Decoder có thể lấy conditional mean trong khi encoder vẫn giữ nhiều thông tin. Và target của JEPA là learned embedding, nên tính dễ đoán phụ thuộc chính encoder.

## 7. Đại số tuyến tính cho biểu diễn

Embedding $h\in\mathbb R^d$ có norm, góc và cấu trúc hiệp phương sai. Những thứ này đo các thuộc tính khác nhau.

| Công cụ | Đo gì | Giới hạn |
|---|---|---|
| Cosine similarity | Góc giữa vector | Có thể bỏ magnitude chứa tín hiệu |
| Covariance spectrum | Biến thiên theo hướng | Phụ thuộc dữ liệu và preprocessing |
| SVD/PCA | Các hướng năng lượng chính | Năng lượng lớn có thể là nuisance |
| Effective rank | Mức trải đều của spectrum | Không trực tiếp đo usefulness |
| CKA | Độ tương đồng giữa hai tập representation | Tương đồng cao/thấp không tự xác định cái nào tốt |
| Linear probe | Thông tin label truy cập tuyến tính được | Kém có thể do classifier đơn giản, không phải thiếu mọi thông tin |

Một định nghĩa effective rank dùng singular values $\sigma_i$:

$$p_i=\frac{\sigma_i}{\sum_j\sigma_j},\qquad r_{\rm eff}=\exp\left(-\sum_i p_i\log p_i\right).$$

Dùng $\sigma_i^2$ cho entropy của covariance spectrum là một định nghĩa khác; phải ghi rõ. Nếu mọi singular value bằng 0, công thức chuẩn hóa không xác định: cần xử lý degeneracy trước. Với phổ chỉ còn nhiễu rất nhỏ nhưng trải đều, effective rank vẫn có thể cao. Vì vậy phải xem **scale variance cùng rank**, không chỉ rank.

## 8. Deep learning tối thiểu cần hiểu

### Kiến trúc và inductive bias

- **CNN:** locality, shared filters; hợp với cấu trúc cục bộ.
- **RNN/TDNN:** mô hình hóa chuỗi hoặc context thời gian.
- **Transformer:** học quan hệ giữa token qua attention.
- **Graph network:** quan hệ được mô tả bằng node và edge; định nghĩa node quan trọng như lớp attention.
- **State-space model:** cập nhật trạng thái để xử lý chuỗi; không tự bảo đảm generalization tốt hơn.

Self-attention:

$$\operatorname{Attention}(Q,K,V)=\operatorname{softmax}(QK^\top/\sqrt{d_k})V.$$

Attention weight là trọng số trộn trong một phép tính; chưa đủ để gọi là lời giải thích nhân quả cho dự đoán cuối. Standard dense attention có chi phí phần tương tác tăng theo $N^2$, nên số token tác động mạnh tới compute.

### Tối ưu và regularization

| Kỹ thuật | Vai trò | Dễ hiểu sai |
|---|---|---|
| Cross-entropy | Học phân biệt nhãn qua logits | Loss thấp không bảo đảm calibration ngoài miền |
| AdamW | Adaptive update và weight decay tách khỏi gradient loss | Không tương đương L2 penalty theo mọi optimizer |
| Warm-up / cosine / OneCycle | Lịch learning rate | Khác lịch làm thay đổi cách checkpoint thích nghi |
| Dropout | Nhiễu regularization lúc train | Phải đổi hành vi ở eval |
| Weight decay | Khuyến khích trọng số nhỏ | Không thay thế kiểm soát leakage |
| Gradient clipping | Chặn bước gradient quá lớn | Có thể che dấu vấn đề ổn định nếu chỉ nhìn loss |
| Mixed precision | Giảm chi phí số học/bộ nhớ | Cần kiểm NaN, overflow và cùng trạng thái khi so số học |

**Frozen encoder** vẫn có thể tốn compute inference lớn. Ít tham số học giúp giảm chi phí backward/optimizer, không biến ViT-Base thành mô hình 0,5 M ở inference.

**Pre-training → continued pre-training → downstream fine-tuning** là ba giai đoạn khác nhau. Thay corpus và giữ objective SSL là continued pre-training; chuyển sang thật/giả bằng CE là fine-tuning, kể cả encoder khởi tạo từ JEPA.

## 9. Tự kiểm tra

1. Vì sao 16→32 kHz không phục hồi tần số cao?
2. Thay hop, window và FFT size tác động khác nhau thế nào?
3. Vì sao 128 patch không phải 128 frame thời gian?
4. Embedding có rank cao có thể hoàn toàn vô ích cho detection không?
5. Vì sao posterior từ train không tự dùng làm threshold triển khai?

Đáp án gợi ý ở chương 08. Nguồn học dài: [DSP Guide của Steven W. Smith](https://www.dspguide.com/), [Deep Learning của Goodfellow, Bengio, Courville](https://www.deeplearningbook.org/) và [Speech and Language Processing của Jurafsky, Martin](https://web.stanford.edu/~jurafsky/slp3/). Các giải thích ở đây được biên soạn để phục vụ đề tài, không phải trích hoặc dịch các chương sách.
