[NMDL] Làm thế nào để AI bây giờ biết "nói" vậy?
Một phần đóng góp vào khả năng nói của mô hình ngôn ngữ lớn
Chẳng phải AI từ ngày xưa đã nói được hay sao, như Google Translate chẳng hạn. Nhưng bạn thử nhớ lại cảm giác khi nghe Google Translate đọc cái gì đó và so sánh với những gì bạn có thể nghe từ Gemini, ChatGPT, hay Claude mà xem. Câu trả lời nằm ở một thứ gọi là Audio Tokenizer. Bài viết này sẽ sơ lược về Audio Tokenizer, một hướng nghiên cứu của cả công nghiệp và học thuật.
Đặt vấn đề
Large Language Models (LLM) như GPT hay Claude về bản chất là những cỗ máy predict next token. Bạn đưa vào một chuỗi token, nó đoán token tiếp theo. Đơn giản. Elegant. Như một con vẹt siêu thông minh biết đọc sách. Nhưng vấn đề là: LLM chỉ hiểu text tokens. Còn âm thanh? Âm thanh là một dạng sóng liên tục (continuous waveform). Nó không phải là từ, không phải là số nguyên gọn gàng. Như đã học từ vật lý phổ thông, hoặc có thể mường tượng đến đồ thị chứng khoán cũng là một cách. Vậy làm sao để LLM "hiểu" được âm thanh? Và đáp án khá dễ dàng có được là: Biến âm thanh thành tokens. Và đó chính xác là công việc của Audio Tokenizer.
Audio Tokenizer là gì?
Hãy tưởng tượng bạn có một người bạn chỉ biết đọc chữ Hán, nhưng bạn muốn kể cho họ nghe một bài hát tiếng Việt. Bạn sẽ làm gì?
Bước 1: Nghe bài hát
Bước 2: Viết lại nội dung bằng chữ Hán (theo cách nào đó)
Bước 3: Đưa cho bạn kia đọc
Bước 4: Họ hiểu và có thể... viết lại theo cách của họ
Bước 5: Bạn đọc bản chữ Hán đó và chuyển ngược lại thành tiếng Việt
Audio Tokenizer chính là người phiên dịch ở bước 2 và bước 5.
Cụ thể hơn:
Encoder: Biến audio waveform ==> discrete tokens (số nguyên)
Decoder: Biến discrete tokens ==> audio waveform
Tại sao phải là Discrete?
Đây là điểm mấu chốt. Discrete representation nghĩa là âm thanh được biểu diễn bằng một chuỗi các số nguyên rời rạc (ví dụ: [142, 857, 294, 1001, ...]), thay vì các số thực liên tục. Mỗi số nguyên này là một "index" trỏ đến một vector trong một cuốn từ điển - chuyên môn thì gọi là codebook.
Và đây là phép màu: LLM đối xử với những discrete tokens này như một ngôn ngữ hoàn toàn mới.
Hãy nghĩ thế này: tiếng Anh có ~50,000 từ vựng, tiếng Việt có ~40,000. Audio tokens từ EnCodec có codebook size 1024. Với LLM, đây chỉ là một "ngôn ngữ" khác với vocabulary size 1024 - không hơn không kém. Nó không cần "hiểu" âm thanh là gì; nó chỉ cần học patterns trong chuỗi tokens này.
Và LLM làm điều đó cực kỳ giỏi. Nhờ sức mạnh vượt trội trong in-context learning -- khả năng học patterns từ context mà không cần fine-tuning-- LLM có thể nhanh chóng nắm bắt "ngữ pháp" của ngôn ngữ audio này: token nào thường đi sau token nào, pattern nào biểu thị câu hỏi, pattern nào là giọng buồn... Nó làm việc cật lực để predict next token trong ngôn ngữ audio, y hệt như cách nó predict next word trong tiếng Anh.
Kết quả? Một model có thể "nói" mà không cần được dạy explicitly về phonetics, prosody, hay acoustics. Nó chỉ cần học: "Ồ, sau chuỗi tokens [142, 857, 294] thường là [501, 223]. Let me predict that."
Audio => [Encoder] => Tokens => [LLM xử lý] => Tokens => [Decoder] => Audio
Tại sao không dùng cách cũ?
Cách 1: Mel Spectrogram (Đồ cổ, vẫn còn được dùng nhưng không phải ở đây)
Trước đây, người ta hay dùng Mel Spectrogram — một loại "ảnh" của âm thanh. Nó chia âm thanh thành các frame, phân tích tần số, rồi tạo ra một ma trận 2D đẹp đẽ.
Vấn đề?
- Nó là continuous (số thực), không phải discrete tokens
- LLM không biết xử lý số thực, nó chỉ quen với việc chọn 1 trong N options
- Giống như bảo một đầu bếp chuyên nấu phở đi làm bánh kem 7 tầng vậy
Cách 2: ASR + TTS (Già nhưng không phế)
*ASR: Automatic Speech Recognition là hệ thống có thể nghe bạn nói gì và ghi lại. Chức năng search bằng giọng nói chẳng hạn.
Pipeline cổ điển:
Audio =>[ASR] =>Text =>[LLM] =>Text =>[TTS] =>Audio
Vấn đề?
Mất thông tin: Giọng nói có cảm xúc, có style, có prosody. ASR vứt hết, chỉ giữ lại text thuần.
Latency cao: 3 bước riêng biệt = 3 lần chờ đợi = người dùng cáu
Không tự nhiên: Nghe như robot đọc script, không phải người nói chuyện
Ví dụ trực quan: Tưởng tượng bạn gọi điện cho crush, nói "Anh nhớ em" với giọng đầy cảm xúc, nhưng ASR chỉ ghi lại: "anh nhớ em" — flat như mặt bàn. Rồi TTS đọc lại: "Anh. Nhớ. Em." như đang đọc danh sách mua đồ trong siêu thị. Và crush block luôn.
Neural Audio Codec: Người hùng xuất hiện
Và thế là Neural Audio Codec ra đời — hay còn gọi là các Audio Tokenizer hiện đại như:
- EnCodec (Meta)
- SoundStream (Google)
- DAC (Descript Audio Codec)
- Mimi (Kyutai)
Ý tưởng cốt lõi: Dùng neural network để học cách nén audio thành discrete tokens, sao cho:
1. Số lượng tokens ít (bandwidth thấp)
2. Reconstruct lại được audio gần như nguyên bản (quality cao)
3. Tokens có ý nghĩa (semantic meaningful)
Residual Vector Quantization (RVQ) — Cái tên dài nhưng idea đẹp
Đây là phần hay nhất. Trực tiếp đưa Neural Audio Codec trở thành một phần thiết yếu của các mô hình LLM nói chuyện như người.
Thay vì dùng 1 codebook khổng lồ để encode tất cả, RVQ dùng nhiều codebook nhỏ hơn, mỗi cái encode phần dư (residual) của cái trước.
Quantization Level 1: Encode thông tin chính (nội dung, giọng nói)
Quantization Level 2: Encode chi tiết thêm (prosody, emotion)
Quantization Level 3: Encode chi tiết hơn nữa (nuances)
...
Giống như vẽ tranh:
Layer 1: Vẽ phác thảo (đây là mặt người)
Layer 2: Thêm màu da, tóc
Layer 3: Thêm chi tiết mắt, mũi
Layer 4: Thêm highlight, shadow
(*tôi nhờ Claude lấy ví dụ vì tự thân không biết vẽ tranh)
Kết quả? Bạn có thể trade-off giữa quality và bandwidth:
- Dùng ít layers = tokens ít, chất lượng thấp hơn
- Dùng nhiều layers = tokens nhiều, chất lượng cao hơn
Các Audio Tokenizer nổi tiếng
1. EnCodec (Meta, 2022)
Codebook size: 1024
Quantization levels: 2-32 (tuỳ bitrate)
Sample rate: 24kHz hoặc 48kHz
Bitrate: 1.5 - 24 kbps
EnCodec là OG của neural audio codec. Nó chứng minh rằng bạn có thể nén audio xuống 1.5 kbps mà vẫn nghe được. Để so sánh, MP3 thường ở 128-320 kbps.
Đó là mức nén như nhét cả tủ quần áo vào một cái balo du lịch mà quần áo vẫn không nhăn.
2. SoundStream (Google, 2021)
Thực ra ra trước EnCodec, nhưng ít được biết đến hơn vì... Google không open source ngay. Kiến trúc tương tự EnCodecDùng cho Google's AudioLM và các speech model khác
3. DAC - Descript Audio Codec (2023)
Cải thiện chất lượng so với EnCodecBetter perceptual quality ở low bitratesOpen source và dễ dùng
4. Mimi (Kyutai, 2024)
Dùng trong Moshi (real-time voice AI)12.5 Hz frame rate — tức là mỗi giây chỉ cần 12.5 tokens cho layer đầu tiênThiết kế cho streaming và low latency
Thế hệ mới: FSQ và Single-Codebook Codec
RVQ tuy mạnh mẽ nhưng có một vấn đề: nhiều codebook = phức tạp.
Khi LLM phải đoán tokens từ nhiều codebook (ví dụ 8 layers), nó cần generate nhiều sequence song song hoặc tuần tự. Điều này làm tăng complexity (độ phức tạp tính toán và lưu trữ), giảm efficiency (hiệu năng thậm chí cả hiệu quả), và khó train hơn.
Thế nên một câu hỏi tự nhiên được đặt ra: Có thể dùng chỉ MỘT codebook duy nhất mà vẫn đạt chất lượng tốt không?
Finite Scalar Quantization (FSQ)
FSQ là một approach khác hoàn toàn so với RVQ. Thay vì dùng một codebook lớn và quantize cả vector một lúc, FSQ:
1. Chia latent vector thành từng chiều riêng biệt
2. Quantize mỗi chiều độc lập vào một số nguyên trong khoảng giới hạn (ví dụ: [-2, -1, 0, 1, 2])
3. Codebook được tạo implicit từ tích các mức quantization
Ví dụ: Nếu vector của bạn có 6 chiều, mỗi chiều có 5 mức, codebook size = 5⁶ = 15,625, mà không cần train codebook nào cả!
Ưu điểm của FSQ:
Không cần auxiliary loss để train codebook
100% codebook utilization — không bị "codebook collapse" như VQ truyền thống
Robust với nhiễu: Khi bit bị lỗi trong transmission, FSQ chỉ thay đổi embedding một lượng nhỏ, predictable; còn RVQ có thể thay đổi hoàn toàn
Đơn giản hơn cho downstream LLM vì chỉ cần predict một sequence
CosyVoice->CosyVoice 2 (Alibaba) đã chuyển từ VQ sang FSQ và cho thấy cải thiện đáng kể về codebook utilization và chất lượng prosody (ngữ điệu, maybe, tôi không chắc khi dịch chữ này lắm nên giữ như trong nghiên cứu để độc giả dễ nắm bắt nếu muốn đi sâu).
Single-Codebook Codec — Xu hướng mới
Ngoài FSQ, có một làn sóng mới tập trung vào việc thiết kế codec với chỉ một codebook duy nhất nhưng vẫn đạt chất lượng cao:
WavTokenizer (ICLR 2025) — có lẽ là breakthrough lớn nhất:
- Chỉ 40-75 tokens/giây cho audio 24kHz (so với hàng trăm tokens của EnCodec)
- Một quantizer duy nhất với codebook size lớn (4096+)
- Đạt UTMOS 4.04 — gần như human-level quality
- Key insight: Mở rộng codebook size + contextual attention + better training strategy
Single-Codec (Interspeech 2024):
Dùng VQ-VAE với Conformer encoder
Tách biệt time-invariant features (speaker identity) ra khỏi phonetic content
Chỉ 304 bytes per second (bps) bandwidth -- cực kỳ compact
TS3-Codec (2024):
Transformer-only architecture (không dùng convolution)
Streaming-capable với single codebook
Chỉ 12% lượng tính toán so với BigCodec mà chất lượng thì tương đương
Tại sao Single-Codebook quan trọng?
Quay lại ý tưởng LLM-as-language-learner: Khi LLM chỉ cần học một ngôn ngữ audio với một vocabulary, mọi thứ trở nên đơn giản hơn:
RVQ với 8 codebook:
LLM phải predict: [seq1], [seq2], [seq3], ..., [seq8]
-> 8 lần autoregressive hoặc complex parallel decoding
Single codebook:
LLM chỉ predict: [seq]
-> 1 lần autoregressive, giống hệt như generate textĐây là lý do tại sao các speech LLM mới nhất đang chuyển dần sang single-codebook design -- nó đơn giản hóa architecture mà không hi sinh chất lượng của audio được sinh ra.
Tại sao Audio Tokenizer quan trọng?
1. Unified Architecture
Với Audio Tokenizer, giờ đây chúng ta có thể có một LLM duy nhất xử lý cả text và audio. Không cần ASR riêng, TTS riêng. Mọi thứ trong một model. Đây là lý do tại sao GPT-4o và Gemini có thể "nói chuyện" tự nhiên - chúng xử lý audio như một loại token khác, không phải qua pipeline riêng.
2. Preserving Information
Semantic + Acoustic tokens giữ được:
Content: Nói cái gì
Style: Nói như thế nào
Emotion: Cảm xúc ra sao
Speaker identity: Ai đang nói
Không còn chuyện ASR "xoá sạch" personality của giọng nói nữa.
3. Low Latency
Neural codec cho phép streaming. Mimi encode ở 12.5 Hz, tức là: Mỗi 80ms có 1 token. LLM có thể bắt đầu generate response ngay khi nhận đủ context. Không cần chờ cả câu như ASR truyền thống
Real-time conversation với AI giờ là possible. Tôi đính kèm một mô hình khá nổi bật gần đây của NVIDIA cho bạn đọc có hứng thú.
Challenges (Vì không có gì là hoàn hảo)
1. Training Data
Neural codec cần rất nhiều audio data để train. Và audio data tốt thì đắt đỏ, khó collect, nhiều vấn đề privacy.
2. Compute Cost
Encode/decode audio vẫn tốn compute. Ở edge devices (điện thoại, IoT), đây vẫn là bottleneck.
3. Multi-lingual
Hầu hết audio tokenizer được train chủ yếu trên tiếng Anh. Performance trên các ngôn ngữ khác (như tiếng Việt với 6 thanh điệu) vẫn cần cải thiện.
4. Music và Non-speech Audio
Tokenize speech đã khó, tokenize music còn khó hơn. Music có nhiều instruments overlapping, dynamic range lớn hơn, và người nghe rất nhạy với artifacts.
Tương lai: Đi về đâu?
Universal Audio-Text Models
Hãy tưởng tượng một model có thể:
Nghe nhạc và mô tả
Đọc text và hát
Transcribe, translate, summarize - tất cả trong một
Đó là hướng đi của các model như Qwen-Audio, SALMONN, và nhiều nghiên cứu gần đây khác.
Even Lower Bitrate
Có thể nén audio xuống dưới 1 kbps mà vẫn tốt hay không? Research đang tiến đến đó.
Personalized Voice
Clone giọng nói chỉ với vài giây audio? Nhiều model mới như Microsoft/VibeVoice, Xiaomi/Voice, etc. đã demo điều này. Vấn đề đạo đức thì vẫn còn tranh cãi nhưng công nghệ thì vẫn đang tiến rất nhanh.
Kết luận
Audio Tokenizer là bridge cho phép LLM — vốn chỉ hiểu discrete tokens — có thể làm việc với continuous audio signals.
Nhờ các neural codec như EnCodec, SoundStream, và Mimi, chúng ta đã:
+ Biến audio thành tokens mà LLM hiểu được
+ Giữ được thông tin semantic và acoustic
+ Cho phép real-time, low-latency speech AI
+ Mở đường cho unified multimodal models
Lần sau khi bạn nói chuyện với AI và thấy nó respond tự nhiên, hãy nhớ đến Audio Tokenizer - người hùng thầm lặng phía sau.
Và nếu AI đó nói giọng hơi... kỳ kỳ, thì cũng đừng trách nó. Nén 24,000 samples/giây thành 12 tokens/giây mà vẫn nghe được đã là một kỳ công rồi.
References
[1] Défossez, A., Copet, J., Synnaeve, G., & Adi, Y. (2022). High Fidelity Neural Audio Compression. arXiv preprint arXiv:2210.13438.
[2] Zeghidour, N., Luebs, A., Omber, A., Skoglund, J., & Tagliasacchi, M. (2021). SoundStream: An End-to-End Neural Audio Codec. IEEE/ACM Transactions on Audio, Speech, and Language Processing, 30, 495-507.
[3] Kumar, R., Seetharaman, P., Luebs, A., Kumar, I., & Kumar, K. (2023). High-Fidelity Audio Compression with Improved RVQGAN. Advances in Neural Information Processing Systems, 36.
[4] Défossez, A., Music, L., Copet, J., et al. (2024). Moshi: A Speech-Text Foundation Model for Real-Time Dialogue. arXiv preprint arXiv:2410.00037.
[5] Wang, C., Chen, S., Wu, Y., et al. (2023). Neural Codec Language Models are Zero-Shot Text to Speech Synthesizers. arXiv preprint arXiv:2301.02111.
[6] Hsu, W. N., Bolte, B., Tsai, Y. H. H., et al. (2021). HuBERT: Self-Supervised Speech Representation Learning by Masked Prediction of Hidden Units. IEEE/ACM Transactions on Audio, Speech, and Language Processing, 29, 3451-3460.
[7] Borsos, Z., Marinier, R., Vincent, D., et al. (2023). AudioLM: A Language Modeling Approach to Audio Generation. IEEE/ACM Transactions on Audio, Speech, and Language Processing, 31, 2523-2533.
[8] Mentzer, F., Minnen, D., Agustsson, E., & Tschannen, M. (2024). Finite Scalar Quantization: VQ-VAE Made Simple. International Conference on Learning Representations (ICLR).
[9] Ji, S., Jiang, Z., Cheng, X., et al. (2024). WavTokenizer: An Efficient Acoustic Discrete Codec Tokenizer for Audio Language Modeling. International Conference on Learning Representations (ICLR 2025). arXiv:2408.16532.
[10] Li, H., Xue, L., Guo, H., et al. (2024). Single-Codec: Single-Codebook Speech Codec towards High-Performance Speech Generation. Proc. Interspeech 2024, 3390-3394.
[11] Du, Z., Chen, Q., Zhang, S., et al. (2024). CosyVoice 2: Scalable Streaming Speech Synthesis with Large Language Models. arXiv preprint arXiv:2412.10117.
[12] Julian, H., et al. (2025). Finite Scalar Quantization Enables Redundant and Transmission-Robust Neural Audio Compression at Low Bit-rates. arXiv preprint arXiv:2509.09550.

Khoa học - Công nghệ
/khoa-hoc-cong-nghe
Bài viết nổi bật khác
- Hot nhất
- Mới nhất

