18 điểm bởi GN⁺ 2026-01-16 | 4 bình luận | Chia sẻ qua WhatsApp
  • Pocket TTS với 100 triệu tham số là một mô hình chuyển văn bản thành giọng nói gọn nhẹ có tính năng voice cloning, có thể chạy thời gian thực ngay cả trên CPU của laptop thông thường
  • Thu hẹp khoảng cách hiệu năng giữa TTS dựa trên LLM cỡ lớn (hơn 1 tỷ tham số)Kokoro TTS cỡ nhỏ (82 triệu tham số), đồng thời đạt được cả chất lượng cao lẫn hiệu quả
  • Chỉ với khoảng 5 giây mẫu giọng nói, có thể tái tạo chính xác màu giọng, cảm xúc, ngữ điệu và điều kiện âm thanh của người nói
  • Sử dụng kiến trúc dựa trên Continuous Audio Language Model để dự đoán trực tiếp vector tiềm ẩn liên tục thay vì token rời rạc, giúp giảm kích thước mô hình mà không làm giảm chất lượng
  • Được phát hành dưới dạng mã nguồn mở giấy phép MIT, đặt ra chuẩn mực mới cho công nghệ TTS gọn nhẹ có thể hiện thực hóa tổng hợp giọng nói chất lượng cao ngay cả trong môi trường CPU

Tổng quan về Pocket TTS

  • Pocket TTS là mô hình chuyển văn bản thành giọng nói với 100 triệu tham số, hỗ trợ voice cloning
    • Có thể chạy thời gian thực ngay cả trên CPU laptop
    • Có thể chạy cục bộ bằng lệnh uvx pocket-tts serve hoặc uvx pocket-tts generate
  • Do Kyutai phát triển và được phát hành mã nguồn mở theo giấy phép MIT
    • Dữ liệu huấn luyện chỉ sử dụng các bộ dữ liệu giọng nói tiếng Anh công khai
    • Có đề cập khả năng mở rộng thêm bằng dữ liệu không công khai

So sánh với các mô hình TTS hiện có

  • Công nghệ TTS hiện nay được chia thành hai hướng
    • Mô hình lớn dựa trên LLM: ví dụ Kyutai TTS 1.6B (khoảng 1,6 tỷ tham số)
      • Có thể mô hình hóa nhiều loại giọng nói, cảm xúc và điều kiện âm thanh khác nhau nhưng cần GPU
    • Mô hình nhỏ chuyên biệt: ví dụ Kokoro TTS (82 triệu tham số)
      • Hiệu quả nhờ sử dụng tập giọng nói cố địnhpipeline thủ công, nhưng độ linh hoạt bị hạn chế
  • Pocket TTS nằm ở điểm trung gian giữa hai cách tiếp cận này và cho phép tổng hợp giọng nói chất lượng cao trên CPU

Đánh giá hiệu năng

  • Đánh giá được thực hiện trên tập Librispeech test-clean
    • Âm thanh đầu vào được làm sạch bằng Adobe Enhance Speech để đạt chất lượng 24kHz
  • Các mô hình được so sánh: F5-TTS, DSM, Chatterbox Turbo, Kokoro TTS
  • Chỉ số đánh giá:
    • Word Error Rate (WER)
    • Chất lượng âm thanh (ELO)
    • Độ tương đồng người nói (ELO)
  • Tóm tắt kết quả:
    • Pocket TTS có WER 1.84, là tỷ lệ lỗi thấp nhất
    • Chất lượng âm thanh tốt hơn F5-TTS và DSM
    • Độ tương đồng người nói ở mức tương đương với giọng tham chiếu
    • mô hình duy nhất có thể chạy nhanh hơn thời gian thực trên CPU
Mô hình Số tham số WER ↓ Chất lượng âm thanh (ELO) ↑ Độ tương đồng người nói (ELO) ↑ Chạy thời gian thực trên CPU
F5-TTS 336M 2.21 1949 ± 27 1946 ± 26
Kyutai TTS 1.6B 750M 1.84 1959 ± 25 2037 ± 21
Chatterbox Turbo 350M 3.24 2055 ± 23 2012 ± 22
Kokoro 82M 1.93 Không có voice cloning Không có voice cloning
Pocket TTS 100M 1.84 2016 ± 25 1898 ± 26
  • Khi thử nghiệm trên CPU Intel Core Ultra 7 165HApple M3, chỉ Pocket TTS và Kokoro có thể tổng hợp theo thời gian thực

Kiến trúc

  • Pocket TTS được thiết kế dựa trên nghiên cứu Continuous Audio Language Model
    • Cách tiếp cận trước đây dự đoán token âm thanh rời rạc, còn Pocket TTS dự đoán trực tiếp vector tiềm ẩn liên tục (latent)
    • Nhờ đó loại bỏ nút thắt RQ-transformer và đạt được mô hình gọn nhẹ hơn

Neural Audio Codec

  • Được thiết kế dựa trên codec Mimi
    • Mimi nén bằng token rời rạc, nhưng Pocket TTS sử dụng biểu diễn tiềm ẩn liên tục
    • Áp dụng huấn luyện VAE được chuẩn hóa theo phân phối chuẩn
    • Chưng cất WavLM vào biểu diễn nội tại bằng hàm mất mát độ tương đồng cosine
    • Loại bỏ bước RVQ và áp dụng hàm mất mát chưng cất lên toàn bộ biểu diễn tiềm ẩn

Mô hình sinh

  • Dựa trên framework Masked Autoregressive(MAR)
    • Gồm backbone Causal TransformerMLP sampler
    • Sử dụng hàm mất mát Lagrangian Self-Distillation(LSD) để hiện thực hóa lấy mẫu 1 bước
    • Khi suy luận, vector tiềm ẩn được dự đoán sẽ được phản hồi theo cơ chế tự hồi quy

Điều kiện hóa bằng giọng nói và văn bản

  • Đầu vào của mô hình kết hợp prompt giọng nói (vài giây)văn bản
    • Giọng nói được nhúng bằng codec encoder, còn văn bản được nhúng bằng SentencePiece tokenizer

Cấu hình kích thước mô hình

  • Mô hình sinh (Transformer + MLP) : 90 triệu tham số
  • Codec decoder: 10 triệu tham số
  • Codec encoder: 18 triệu tham số (chỉ dùng 1 lần khi mã hóa mẫu giọng nói)

Dữ liệu huấn luyện

  • Toàn bộ đều là bộ dữ liệu giọng nói tiếng Anh công khai, tổng cộng 88.000 giờ
    • AMI, EARNINGS22, GIGASpeech, SPGISpeech, TED-LIUM, VoxPopuli, LibriHeavy, Emilia

Các đóng góp kỹ thuật chính

Head Batch Multiplier

  • Tái sử dụng vector z nhiều lần để giảm nút thắt tính toán của Transformer
    • Với mỗi chuỗi đầu vào, z được tính một lần rồi tái sử dụng cho 8 lần tính loss
    • Mang lại hiệu quả tăng hiệu suấtổn định huấn luyện

Gaussian Temperature Sampling

  • Áp dụng điều chỉnh nhiệt độ lấy mẫu cả trong không gian liên tục
    • Giảm phương sai của nhiễu Gaussian để cải thiện chất lượng
    • Cho kết quả tốt ở nhiệt độ 0.7

Latent Classifier-Free Guidance (Latent CFG)

  • Áp dụng CFG truyền thống ở mức biến tiềm ẩn (z)
    • Kết hợp tuyến tính đầu ra có điều kiện/không điều kiện để nâng cao chất lượng
    • Sử dụng α=1.5
    • Khái niệm tương tự cũng xuất hiện trong nghiên cứu SoundReactor

Distillation

  • Dùng mô hình CFG làm teacher model để chưng cất thành student model gọn nhẹ
    • Cố định đầu MLP của teacher model, còn student model học z bằng L2 loss
    • Có thể thu gọn từ teacher model 24 lớp → student model 6 lớp

Kết luận

  • Pocket TTS là mô hình TTS gọn nhẹ có thể tổng hợp giọng nói chất lượng cao theo thời gian thực ngay trên CPU
  • Kết hợp kiến trúc dựa trên không gian tiềm ẩn liên tục, kỹ thuật huấn luyện hiệu quảtính năng voice cloning
  • Được phát hành dưới dạng mã nguồn mở giấy phép MIT, mang lại khả năng tái hiện và mở rộng cho các nhà phát triển và nhà nghiên cứu

4 bình luận

 
xguru 2026-01-16

Có vẻ không dễ thấy các mô hình TTS mã nguồn mở có hỗ trợ tiếng Hàn. Trước đây có Kokoro-82M từng được nói là hỗ trợ tiếng Hàn, nhưng tôi nghe nói chất lượng có vẻ không tốt lắm, thoáng tìm thử thì thấy bảo nếu làm bằng GPT-Sovits hoặc dùng thứ như Edge-TTS thì cũng cho ra kết quả khá ổn.

Dạo này đang vibe coding nên nghĩ là nếu ghép với Whisper thì có vẻ sẽ ra được thứ gì đó thú vị, nhưng lại chưa nghĩ ra ý tưởng nào haha

 
ng0301 2026-01-18

Gần đây Supertonic cũng đã tung ra một model hỗ trợ cả tiếng Hàn, thử tìm xem nhé.

Mình cũng đã thử làm một thư viện kiểu 딸깍용!

https://www.npmjs.com/package/easy-supertonic-tts

 
bichi 2026-01-19

Hay đấy, nhưng sẽ tốt hơn nếu trong lúc làm có kèm luôn địa chỉ tài nguyên đích nữa. Chứ cứ cài đại thì cũng không được haha

 
GN⁺ 2026-01-16
Ý kiến trên Hacker News
  • Tôi thật sự rất vui khi bài viết của mình nhận được nhiều sự quan tâm như vậy
    Tôi là thành viên của một nhóm tại Paris đang phát triển giải pháp giọng nói cấp doanh nghiệp dựa trên nghiên cứu của Kyutai
    Nếu bạn cũng đang xây dựng thứ gì đó trong lĩnh vực này, tôi rất muốn chia sẻ về các model và tính năng sắp ra mắt
    Hãy liên hệ qua email trong hồ sơ của tôi

    • Công việc thật tuyệt vời. Tôi nghĩ đây là một thành tựu đẩy giới hạn đến mức có thể chạy cục bộ ngay cả trên các thiết bị thông thường
  • Trong lúc đọc một case study dài, tôi nhận ra mình cần một tiện ích mở rộng cho trình duyệt nên đã tự làm giao diện trình duyệt
    Thành phẩm là Pocket Reader

  • Thấy thú vị nên tôi đã lập tức biến nó thành MCP server để Claude thông báo khi hoàn tất công việc
    speak_when_done

    • macOS vốn đã tích hợp sẵn TTS khá tự nhiên
      Tôi cũng từng làm một công cụ tương tự bằng cách chạy lệnh say như một tiến trình nền, nhưng rất khó thiết lập ổn định để luôn dùng được giọng hay
      Có vẻ như giọng tự nhiên đó đang bị ẩn ở đâu đó
    • Gần đây tôi cũng làm thứ tương tự với piper-tts
      speak-mcp
    • Vì cùng lý do đó mà tôi đã thiết lập Pushover để nhận thông báo trên điện thoại
      Giờ tôi cũng sẽ thử server của bạn
  • Lần này chất lượng code thực sự rất tốt
    Thường thì codebase của các model mới đầy rẫy đống phụ thuộc không cần thiết, nhưng lần này xét về kỹ nghệ phần mềm cũng rất xuất sắc

  • Cảm ơn vì đã chia sẻ! Tôi là fan của Kokoro nên đã tự xây một trợ lý giọng nói chạy cục bộ
    dự án ova
    Tôi chắc chắn cũng sẽ thử Pocket TTS

    • Tôi cảm thấy hiệu năng TTS của Kokoro tốt hơn nhiều
      Tuy vậy Pocket TTS là dạng đóng nên không thể kiểm tra tính năng nhân bản giọng nói
    • Kho mã thật tuyệt! Tôi cũng sẽ thử
      Không biết nó dựa trên mlx hay Hugging Face transformers
  • Tôi tự hỏi liệu có thể phân phối dự án này dưới dạng binary tĩnh nhỏ gọn hay không
    Hiện tại phần phụ thuộc khá lớn

    • Có thể theo dõi issue liên quan tại đây
  • Tôi thực sự thích nó
    Chỉ là nó ghi là giấy phép MIT, nhưng trong README lại có một mục Prohibited Use riêng nên tôi hơi bối rối không biết nó có trở thành phần mềm không tự do hay không

    • Theo cách tôi hiểu thì code là MIT, còn model dùng giấy phép riêng
      Giống như hình ảnh hay âm thanh, model ML có thể không được xem là phần mềm
      Thẻ model trên Hugging Face cũng có cùng điều khoản cấm đó
    • Giấy phép MIT có câu “được sử dụng không hạn chế”
      Vì vậy các mục cấm trong README có thể mâu thuẫn về mặt pháp lý
    • Điều khoản cấm chỉ ở mức “đừng dùng vào việc phạm pháp” nên có lẽ hiệu lực pháp lý rất thấp
    • Nếu là “cứ dùng đi, nhưng đừng dùng vào các mục đích này” thì cũng không rõ liệu có thực sự vi phạm giấy phép hay không
    • Điều khoản cấm này tạo cảm giác như một chi tiết hình thức thừa thãi
  • Tôi đã thử chạy uvx pocket-tts serve trên M1 Mac
    Để test, tôi cho nó đọc đoạn đầu tiên của A Tale of Two Cities, nhưng giọng Javert có vấn đề bỏ qua một số câu ở giữa
    Ví dụ các cụm như “it was the age of foolishness” bị lược mất
    Đây là điểm làm giảm độ tin cậy
    Tôi đã đăng issue liên quan tại đây

    • Trong bài test của tôi, đoạn “we had everything before us” cũng bị bỏ qua. Rõ ràng đây không phải tín hiệu tốt
    • Tôi cũng thấy hiện tượng tương tự. Có biến dạng đầu ra như bỏ câu hoặc đảo thứ tự từ (Win10 RTX 5070 Ti)
    • Với giọng Eponine, nó cũng bỏ qua “we had nothing before us” và không đọc câu cuối. Có vẻ bên trong đang có gì đó không ổn
  • Trước giờ tôi chưa dùng nhiều model giọng nói, nhưng nhờ Pocket TTS mà tôi biết đến unmute.sh
    Nó là mã nguồn mở và có vẻ cũng do cùng công ty làm ra
    Những model này có vẻ đủ hữu dụng với chi phí thấp ngay cả trong môi trường homelab
    Các model mã nguồn mở đang được nâng mặt bằng chất lượng lên khá đồng đều nên gần như có lựa chọn cho mọi mục đích sử dụng
    Có lẽ lĩnh vực duy nhất vẫn còn rào cản gia nhập thực sự là model coding
    Cũng thú vị nếu Deepseek 4 có thể đánh bại Claude Sonnet

  • Tôi đã tích hợp nó vào plugin Codex của mình để đọc to bản tóm tắt sau mỗi lượt, và nó hoạt động tốt đến bất ngờ
    Trên MacBook của tôi nó chạy mượt hơn Samantha rất nhiều
    agentify-sh/speak