CosyVoice - dưới góc nhìn toán học
CosyVoice là một hệ thống tổng hợp giọng nói (TTS) zero-shot đa ngôn ngữ có khả năng mở rộng cao đi theo hướng Generative TTS (Large Audio Models), với kiến trúc lai ghép giữa LLM và Flow Matching.
- Điểm đột phá của CosyVoice nằm ở việc sử dụng Token ngữ nghĩa có giám sát (Supervised Semantic Tokens) kết hợp với mô hình Conditional Flow Matching.
Lưu ý: bài viết này không phải là một hướng dẫn chi tiết để huấn luyện mô hình, mà chỉ là một phân tích chuyên sâu về cơ chế hoạt động của mô hình giải mã quy trình hoạt động của CosyVoice qua 4 giai đoạn chính, mô tả chi tiết các hàm toán học chính từ đầu vào đến đầu ra. Dựa theo cách hiểu của mình trong quá trình tìm hiểu và nghiên cứu, vì vậy không tránh khỏi những sai sót.
Tổng Quan Kiến Trúc
Mô hình bao gồm 4 thành phần hoạt động tuần tự,:
- Speech Tokenizer (S3): Trích xuất token ngữ nghĩa từ giọng nói.
- Text Encoder: Căn chỉnh không gian ngữ nghĩa của văn bản.
- Large Language Model (LLM): Dự đoán chuỗi token giọng nói từ văn bản và mẫu giọng.
- Conditional Flow Matching: Chuyển đổi token thành Mel spectrogram.

Giai Đoạn 1: Trích Xuất Token Ngữ Nghĩa (Supervised Speech Tokenizer)
Khác với các phương pháp không giám sát truyền thống, CosyVoice sử dụng mô hình nhận dạng giọng nói (ASR) SenseVoice đã được tinh chỉnh để tạo ra token. Mục tiêu: Chuyển đổi Mel spectrogram liên tục (X) thành chuỗi token rời rạc (μ).
Bước 1.1: Mã hóa ngữ cảnh (Context Encoding)
- Đầu vào: Mel spectrogram .
- Hàm xử lý: Tín hiệu đi qua lớp mã hóa vị trí (PosEnc) và phần đầu của bộ mã hóa (Encoder1).
- Công thức: Trong đó là biểu diễn ẩn nhận thức ngữ cảnh (context-aware representations).
Bước 1.2: Lượng tử hóa Vector (Vector Quantization - VQ)
- Đầu vào: Biểu diễn ẩn tại khung thời gian .
- Hàm xử lý: Tìm vector gần nhất trong sách mã (codebook) để gán làm token. Đây là bước rời rạc hóa tín hiệu.
- Công thức: Trong đó là chuẩn L2 norm. chính là token giọng nói tại bước .
Tại sao dùng công thức này?
- Tín hiệu giọng nói gốc là liên tục (continuous) và vô hạn. Để LLM có thể "đọc" được giọng nói như đọc văn bản, ta bắt buộc phải biến nó thành hữu hạn (discrete).
- Phép toán này thực chất là Nearest Neighbor Search (Tìm kiếm láng giềng gần nhất). Nó ép mọi biến thể giọng nói phức tạp về một tập hợp hữu hạn các "từ vựng âm thanh" (4096 tokens) trong Codebook C
Lưu ý quá trình huấn luyện: Các embedding trong codebook được cập nhật bằng phương pháp Exponential Moving Average (EMA): .
Tại sao dùng cái này mà không dùng Backpropagation thông thường?
-
Hàm argmin ở trên là một hàm rời rạc, không khả vi (non-differentiable). Tức là ta không thể tính đạo hàm (gradient) truyền ngược qua nó để cập nhật Codebook C bằng thuật toán Gradient Descent thông thường được.
-
Thay vì dùng các thủ thuật phức tạp như Gumbel-Softmax, CosyVoice dùng EMA để cập nhật C. Nghĩa là: Vector trong sách mã sẽ từ từ "di chuyển" về phía trung bình của các giọng nói thực tế mà nó đại diện. Điều này giúp quá trình huấn luyện ổn định hơn
Bước 1.3: Khôi phục ngữ nghĩa (Semantic Verification)
Để đảm bảo token mang ngữ nghĩa (để dùng cho bước sau), hệ thống tiếp tục mã hóa token lượng tử hóa () qua Encoder2 và đưa vào ASR Decoder để dự đoán văn bản.
- Hàm xử lý: (Bước này chủ yếu dùng trong huấn luyện để giám sát chất lượng token),.
Giai Đoạn 2: Mô Hình Hóa Ngôn Ngữ (LLM for TTS)
CosyVoice coi việc tổng hợp tiếng nói là bài toán sinh chuỗi tự hồi quy (auto-regressive sequence generation).
Bước 2.1: Mã hóa văn bản (Text Encoding)
- Đầu vào: Văn bản thô .
- Hàm xử lý: Sử dụng Byte Pair Encoding (BPE) và Text Encoder để căn chỉnh không gian ngữ nghĩa với token giọng nói.
- Công thức: Đầu ra là chuỗi mã hóa văn bản.
Bước 2.2: Xây dựng chuỗi đầu vào (Sequence Construction)
- Đầu vào: Mã hóa văn bản , Vector đặc trưng người nói (từ mô hình voice-print), và các token đặc biệt.
- Hàm cấu trúc chuỗi: Trong đó: (Start), (Separator), (End).
Bước 2.3: Dự đoán Token (Auto-regressive Prediction)
- Đầu vào: Chuỗi token đã sinh ra trước đó.
- Hàm tối ưu hóa: LLM tối thiểu hóa hàm mất mát Cross-Entropy để dự đoán xác suất token tiếp theo.
- Công thức: Trong đó là xác suất hậu nghiệm được tính qua lớp Softmax của LLM,.
Tại sao dùng Log?
- Xác suất là các số nhỏ . Khi nhân chuỗi xác suất (tính xác suất của cả câu), số sẽ trở nên cực bé (underflow). Hàm log biến phép nhân thành phép cộng: , giúp máy tính xử lý dễ dàng hơn.
- Dấu trừ để biến bài toán "tối đa hóa xác suất đúng" thành bài toán "tối thiểu hóa độ sai lệch" (Loss function).
- Bản chất: LLM đang học cách trả lời câu hỏi: "Dựa trên giọng của ông A, và nội dung chữ là B, thì âm thanh tiếp theo xác suất cao nhất là gì?".
Giai Đoạn 3: Tổng Hợp Mel Spectrogram (Conditional Flow Matching)
Đây là thành phần thay thế cho mô hình khuếch tán (Diffusion), sử dụng phương pháp Optimal-Transport Conditional Flow Matching (OT-CFM) để chuyển token thành phổ âm thanh.
Bước 3.1: Định nghĩa luồng thời gian (ODE Definition)
Quá trình sinh dữ liệu được mô tả bằng một phương trình vi phân thường (ODE) chuyển đổi từ nhiễu sang dữ liệu thực.
-
Hàm vi phân: Với điều kiện biên: (Nhiễu chuẩn) và (Phân phối dữ liệu thực).
-
Đây là phương trình mô tả sự chuyển động.
là vận tốc (đạo hàm theo thời gian). -
là Trường vector (Vector Field). Hãy tưởng tượng một dòng sông chảy, tại mỗi điểm trong sông có một mũi tên chỉ hướng nước chảy và tốc độ. chính là bản đồ các mũi tên đó. Ý nghĩa: Thay vì cố gắng khử nhiễu từng bước một cách ngẫu nhiên như Diffusion, Flow Matching định nghĩa một quỹ đạo (flow) rõ ràng biến đổi từ Nhiễu sang Dữ liệu thực trong khoảng thời gian t từ 0 đến 1
Bước 3.2: Xấp xỉ trường vector tối ưu (Optimal Transport Path)
CosyVoice huấn luyện mạng nơ-ron để khớp với một đường dẫn nội suy tuyến tính giữa nhiễu () và dữ liệu thực ().
-
Đường dẫn tối ưu (Ground Truth Flow):
-
Mục tiêu huấn luyện (Vector Field Matching): Mạng nơ-ron học để xấp xỉ đạo hàm của đường dẫn trên. Các điều kiện đầu vào bao gồm: Vector người nói , chuỗi token , và Mel spectrogram bị che .
-
Đây thực chất là phương trình của một đoạn thẳng (Linear Interpolation) nối giữa điểm Nhiễu và điểm Dữ liệu .
-
Optimal Transport (Vận chuyển tối ưu): Trong toán học, đường ngắn nhất và ít tốn chi phí nhất để di chuyển khối lượng từ A đến B là đường thẳng.
-
Diffusion Model thường đi theo đường cong phức tạp. CosyVoice ép mô hình học theo đường thẳng này. Điều này giúp mô hình hội tụ nhanh hơn và suy luận (inference) tốn ít bước hơn.
Bước 3.3: Lấy mẫu với hướng dẫn (Inference with Classifier-free Guidance)
Khi sinh giọng nói, mô hình sử dụng kỹ thuật Classifier-free Guidance (CFG) để tăng cường chất lượng và độ chính xác theo điều kiện.
-
Hàm điều chỉnh vector trường: Trong đó là các điều kiện (văn bản, giọng mẫu), là độ mạnh hướng dẫn (thường là 0.7).
-
Bằng cách nhân với (với ), ta đang "phóng đại" cái vector đặc trưng đó lên.
-
Mục đích: Ép mô hình tạo ra giọng nói tuân thủ cực kỳ chặt chẽ theo giọng mẫu và văn bản, loại bỏ các yếu tố trung bình, nhạt nhòa. Ví dụ: Nếu giọng mẫu "buồn", CFG sẽ làm cho nó "rất buồn" thay vì "hơi buồn".
Chi tiết phụ trợ: CosyVoice sử dụng một Cosine Scheduler cho bước thời gian để tập trung nhiều bước sinh vào giai đoạn đầu khó khăn hơn: ,. Hàm Cosine giúp điều chỉnh bước thời gian , làm cho mô hình dành nhiều bước xử lý hơn ở giai đoạn đầu và ít bước hơn ở giai đoạn cuối, giúp âm thanh chi tiết hơn
Giai Đoạn 4: Tạo Sóng Âm (Vocoder)
- Đầu vào: Mel spectrogram được tạo ra từ Flow Matching (tại ).
- Hàm xử lý: Sử dụng mô hình HiFi-GAN.
- Công thức: Kết quả là tín hiệu âm thanh thô có thể nghe được.
Tổng Kết
Từ góc nhìn toán học, CosyVoice được định nghĩa là một hệ thống xấp xỉ nghiệm của phương trình vi phân thường (ODE), nhằm thực hiện phép vận chuyển tối ưu (Optimal Transport) từ phân phối nhiễu Gaussian sang phân phối dữ liệu âm thanh liên tục. Cụ thể, trường vector (vector field) điều khiển dòng chảy này được tham số hóa bởi một mạng nơ-ron sâu và chịu sự điều kiện hóa (conditioning) bởi hai yếu tố: đa tạp embedding người nói (speaker manifold) và không gian tiềm ẩn ngữ nghĩa rời rạc. Điểm đột phá nằm ở việc sử dụng các token ngữ nghĩa có giám sát () thông qua quá trình lượng tử hóa vector (VQ), cho phép mô hình nén thông tin ngữ nghĩa hiệu quả trước khi dùng Flow Matching để khôi phục độ chi tiết âm học. Sự kết hợp này giải quyết bài toán ánh xạ từ không gian rời rạc (text) sang không gian liên tục (audio) với độ hội tụ và tính nhất quán cao hơn các phương pháp khuếch tán truyền thống
