Giới thiệu khóa học
Qwen3-Omni và Qwen3-TTS-12Hz: từ tiếng nói và chữ đi vào đến sóng âm đi ra
Qwen3-Omni là mô hình đa phương thức nhận âm thanh, video và chữ, rồi trả lời bằng văn bản và cả giọng nói. Qwen3-TTS-12Hz là mô hình tổng hợp giọng nói (TTS, text-to-speech); khóa học xem hai mô hình như một đường ống vì chúng chia sẻ cách sinh giọng: mỗi 80 ms (12,5 khung mỗi giây) sinh một khung mã âm thanh, và cơ chế Dual-Track giúp gói âm thanh đầu tiên phát ra sau khoảng 97 ms.
Bài toán là nói theo thời gian thực. Nếu phải chờ có trọn câu trả lời rồi mới đọc thì người nghe phải đợi lâu. Vì vậy kiến trúc chia việc: Thinker (bộ nghĩ) hiểu đầu vào và sinh chữ, còn Talker (bộ nói) nhận trạng thái ẩn của Thinker và biến chúng thành mã âm thanh ngay khi từng chữ xuất hiện. Một bộ giải mã cuối cùng đổi mã thành sóng âm 24 kHz (24.000 mẫu mỗi giây).
Khóa ở mức Intermediate: mỗi bài nhắc lại ngắn gọn khái niệm cần dùng, nhưng bạn nên biết trước ở mức khái niệm token, attention (bước mỗi token nhìn lại các token khác) và MoE (Mixture of Experts: nhiều mạng con, mỗi token chỉ dùng vài mạng), ví dụ từ khóa LLM Foundations. Các khái niệm riêng của âm thanh như spectrogram Mel hay RVQ được định nghĩa ngay khi gặp.
Khóa học gồm
- Nghe và suy luận (1A, 1B, 2A): bộ mã hóa âm thanh AuT nén spectrogram Mel, tức ảnh hai chiều cho biết âm thanh mạnh ở dải tần nào theo thời gian, giảm 8 lần; TM-RoPE 3D đồng bộ trục thời gian giữa âm thanh, video và chữ; Thinker MoE sinh chữ trả lời.
- Cầu nối và đồng bộ (3A, 3B): ResizeMLP hạ chiều trạng thái ẩn từ 2048 xuống 1024 và gắn mã người nói; Dual-Track cộng mã âm thanh của khung trước với chữ vừa sinh ở nhịp 12,5 Hz.
- Sinh mã giọng nói (3C, 4A, 6A): Talker MoE 20 lớp dự đoán mã ngữ nghĩa c_0, Code Predictor 5 lớp dự đoán 15 mã âm học c_1 đến c_15, và một bảng nhúng gộp tra cả 16 sổ mã RVQ (Residual Vector Quantization: mỗi sổ mã mã hóa phần sai số còn sót lại của các sổ trước) cùng lúc.
- Dựng sóng âm (5A, 6B): Pre-Transformer cửa sổ trượt 72 khung và ConvNeXt nâng tần số khung từ 12,5 Hz lên 50 Hz; bộ giải mã SnakeBeta phóng thêm 480 lần, tổng cộng 1920 mẫu sóng cho mỗi khung.
- Một bài lab NumPy tổng hợp (Tab 02) chạy cả 10 khối ở kích thước thu nhỏ và in từng bảng số.
Học xong, bạn có thể
- Kể lại đường đi của câu hỏi bằng tiếng nói đến câu trả lời bằng chữ và giọng, và chỉ từng chặng trên sơ đồ.
- Giải thích vì sao Talker đọc trạng thái ẩn ở lớp 24 của Thinker chứ không phải lớp cuối.
- Giải thích vì sao 16 sổ mã được tách thành c_0 (Talker 20 lớp) và c_1 đến c_15 (Code Predictor 5 lớp): chạy Talker 16 lần sẽ chậm gấp 16 lần.
- Tính ra 1920 mẫu mỗi khung từ 24.000 mẫu mỗi giây chia 12,5 khung mỗi giây, và nói phần nào của 1920 đến từ 5A, phần nào từ 6B.
- Giải thích vì sao gói âm thanh đầu tiên phát ra sau 97 ms thay vì phải chờ trọn câu trả lời.
Phạm vi: khóa học chỉ dạy kiến trúc và đường suy luận (forward: đưa đầu vào qua mạng để ra chữ và mã âm thanh) của Qwen3-Omni và Qwen3-TTS-12Hz, không dạy cách huấn luyện; trọng số chỉ được nhắc đến như những con số mô hình học được khi huấn luyện, và bài lab dùng trọng số ngẫu nhiên chưa huấn luyện. Muốn học huấn luyện, hãy xem khóa LLM Training (Text), nhưng khóa đó chỉ dạy mô hình văn bản; huấn luyện mô hình đa phương thức (âm thanh, giọng nói) chưa được dạy ở bất kỳ khóa nào trên site.
Cách đọc sơ đồ kiến trúc
- Bắt đầu ở 1A, góc dưới của Cột 1, rồi đi lên theo mũi tên: 1A (AuT) → 1B (TM-RoPE) → 2A (Thinker). Cột 1 là nửa nghe và suy luận.
- Sang Cột 2 và đọc từ trên xuống: 3A (cầu nối ResizeMLP) → 3B (đồng bộ Dual-Track) → 3C (Talker MoE sinh c_0). Trạng thái ẩn lớp 24 từ 2A đi sang 3A qua mũi tên giữa hai cột.
- Ở Cột 3, 4A (Code Predictor sinh c_1 đến c_15) nằm trên và 6A (bảng 16 sổ mã) nằm dưới. Về phụ thuộc, 3C sinh c_0 trước, 4A dùng c_0 để sinh 15 mã còn lại, rồi 6A gộp 16 mã; mã của khung vừa sinh quay lại 3B làm đầu vào cho khung 80 ms kế tiếp.
- Cột 4 đọc từ dưới lên: 5A (làm mượt và nâng tần số khung lên 4 lần) → 6B (sóng âm 24 kHz). Mũi tên từ 6A sang 5A nối Cột 3 với Cột 4.
- Rê chuột vào một khung để mở pop-over giải thích khối đó; bấm để mở bài học. Các nút Trọng tâm (AuT và Thinker, Dual-Track Talker, 16-Codebook RVQ, Code2Wav 1920×) làm nổi các khối liên quan; nút −, + và Vừa khung điều chỉnh cỡ ảnh.
- Nút Tắt overlay cạnh Vừa khung ẩn các khung vuông và pop-over để bạn đọc ảnh kiến trúc gốc; bấm lại để bật overlay.
Ký hiệu như [B, T_aud, 2048] liệt kê các trục của tensor: B là số mẫu chạy cùng lúc, T_aud là số khung âm thanh và 2048 là số chiều của vector mô tả mỗi khung.
Cột 1 & Cột 2 (1A → 3C) · AuT Audio, Thinker Lớp 24, Dual-Track & Talker MoE
Cột 3 & Cột 4 (4A → 6B) · Depth Code Predictor, 16-RVQ Table & SnakeBeta 24kHz
Cách đọc sơ đồ 4 cột dọc (Dataflow Graph)
Bắt đầu ở Cột 1 từ đáy đi lên (1A nén spectrogram AuT → 1B đan xen TM-RoPE 3D → 2A trích trạng thái ẩn Lớp 24 của Thinker); sang Cột 2 từ đỉnh đi xuống (3A cầu nối ResizeMLP → 3B ghép luồng Dual-Track 12.5 Hz → 3C Talker MoE dự đoán c_0); sang Cột 3 tại 4A (5-Layer Depth Predictor tự hồi quy c_1..c_15) xuống 6A (tra bảng gộp 16 sổ mã RVQ); và kết thúc ở Cột 4 từ 5A đi lên 6B (phóng đại 4 × 480 = 1920× bằng SnakeBeta ra sóng âm 24 kHz).
Thực hành toàn trình trong một bài Lab duy nhất (Tab 02)
Toàn bộ 10 bài học ở Tab 01 hội tụ về đúng 1 bài Lab NumPy chạy trực tiếp trong trình duyệt ở Tab 02, tái hiện đầy đủ từ 3 tầng Conv2d stride-2, cầu nối Lớp 24, tự hồi quy 16 sổ mã RVQ cho tới bộ giải mã sóng âm SnakeBeta 1920×. Mở Tab 02 · Bài Lab tổng hợp ↗
Nguồn công bố & mã nguồn tham chiếu
Danh sách bài học (10)
- 1A · AuT Audio Encoder (3× Conv2d Stride-2 & Windowed Attention)
- 1B · Interleaved TM-RoPE 3D (24, 20, 20) & Đồng bộ trục thời gian 12.5 Hz
- 2A · Thinker MoE Backbone & Chuyển giao trạng thái ẩn tại Lớp 24
- 3A · Cầu nối ResizeMLP kép (2048 → 1024) & Điều kiện hóa giọng đọc Speaker ID
- 3B · Đồng bộ Dual-Track Streaming 12.5 Hz (Độ trễ gói đầu 97 ms)
- 3C · Talker MoE (20 lớp, 128 Experts Top-6) & Đầu ra mã ngữ nghĩa c_0
- 4A · 5-Layer Depth Code Predictor (Tự hồi quy 15 mã âm học c_1 .. c_15 trong 80 ms)
- 5A · Code2Wav Pre-Transformer (Cửa sổ trượt 72) & Phóng đại ConvNeXt 4×
- 6A · Bảng nhúng 16-Group RVQ (Offset 2048) & Gộp trung bình Mean Pooling
- 6B · Chuỗi Causal ConvNet 4 tầng (480×), Hàm tuần hoàn SnakeBeta & Giải mã 24 kHz
