Đăng ngày 12/11/2026
ViEn-Matcha Studio: app Windows đọc văn bản tiếng Việt và Anh thành giọng nói ngay trên máy
Giới thiệu ViEn-Matcha Studio, app Windows mình làm để đọc văn bản tiếng Việt và Anh thành giọng nói trên máy, không cần mạng hay GPU, kèm ảnh demo.
- Text-to-Speech
- Tiếng Việt
- Windows
- Giọng nói

ViEn-Matcha Studio (bản v0.1.0) là app Windows mình làm để đọc văn bản tiếng Việt và tiếng Anh thành giọng nói ngay trên máy tính, không cần mạng và không cần card đồ họa. Bài này giới thiệu app qua các khung hình mình cắt từ video demo, gồm cả tạo giọng từ văn bản, kịch bản nhiều giọng và phụ đề SRT.
Mô hình phía sau
Giọng nói do mô hình ViEn-Matcha tạo ra, mô hình TTS song ngữ Việt – Anh nhỏ, chạy được trên CPU bằng ONNX Runtime. Mình huấn luyện từ đầu, theo kiến trúc Matcha-TTS (công trình của người khác), trên bộ dữ liệu tự xây dựng và lọc kỹ, cho ra 6 giọng đọc, có xử lý câu trộn Việt – Anh. Mỗi lần tạo âm thanh chạy hai mô hình nối tiếp: mô hình âm học Matcha-TTS (20.940.299 tham số) rồi vocoder Vocos 24 kHz. Vocos cũng là công trình của người khác: mình dùng bản tiền huấn luyện charactr/vocos-mel-24khz và không tinh chỉnh. Đầu ra là WAV 24 kHz mono.
Trên tập test 800 clip, bản trọng số chính có CER 0,0190, tức khoảng 1,9%. CER chỉ đo độ đúng của chữ, không nói được giọng nghe có tự nhiên hay không. Trong CV mình còn ghi tốc độ gấp 11 lần thời gian thực trên GPU phổ thông và gấp 5 lần trên CPU; hai con số này chưa kèm cấu hình máy chi tiết.
Ảnh chụp từ video demo
Video demo quay bằng Playwright điều khiển trình duyệt Edge với engine và trọng số thật; mô hình được nạp sẵn trước khi quay để khỏi chờ. Khi dùng thật, lần đầu mô hình cần khoảng một phút để nạp. Các ảnh dưới đây là khung hình cắt từ video, nên văn bản và kịch bản trong ảnh là nội dung mẫu.

Màn Studio có ba thẻ: Văn bản, Kịch bản và Phụ đề SRT. Ở thẻ Văn bản có thể gõ hoặc dán văn bản (tối đa 20.000 ký tự), trộn tiếng Việt và tiếng Anh trong cùng một câu, chọn giọng và tốc độ rồi bấm Tạo giọng.

Ứng dụng có sáu giọng cố định: ba giọng của người thật đã đồng ý cho dùng giọng nói, và ba giọng quảng cáo tổng hợp. Màn Giọng ghi rõ hình đại diện cố ý không có khuôn mặt và giọng không dùng để mạo danh ai. Mỗi giọng có nút nghe mẫu bằng một câu rồi dùng ngay.

Màn Tiến trình cho thấy từng đoạn được tạo lần lượt và có thể hủy bất cứ lúc nào. Khi xong, có thể nghe thử với dạng sóng âm, rồi lưu WAV, lưu phụ đề SRT, ghép vào video hoặc tạo lại.

Thẻ Kịch bản dành cho hội thoại: mỗi hàng là một đoạn thoại với giọng riêng và khoảng nghỉ sau đoạn (mặc định 0,25 giây). Kết quả là một tệp âm thanh nối các đoạn, kèm phụ đề thời gian thật và mốc của từng đoạn. Kịch bản mẫu trong video là hai nhân vật trò chuyện.

Thẻ Phụ đề SRT nhận một tệp .srt, cho xem trước số cue và thời lượng, rồi chọn cách khớp khung thời gian để lời đọc rơi đúng mốc bắt đầu của từng cue. Bảng báo cáo cho biết cue nào vừa khung, cue nào phải đọc nhanh hơn và cue nào vẫn tràn. Tốc độ tăng tối đa là 1,25 lần; cue tràn thì cần rút gọn chữ rồi đọc lại. Thẻ kết quả còn có các ô thời lượng, thời gian tạo, RTF (cho biết máy đọc nhanh cỡ nào) và dung lượng. Từ kết quả có thể ghép tiếng vào video bằng ffmpeg của máy, thay hoặc trộn với tiếng gốc; hình giữ nguyên và tệp có sẵn không bị ghi đè.

Lịch sử lưu mọi lần tạo trên máy này, kể cả lần do trợ lý AI gọi, có thanh dung lượng, ô tìm kiếm và bộ lọc. Chọn nhiều mục thì thanh trên cùng hiện số mục và dung lượng đã chọn; xóa qua hộp xác nhận nêu rõ số lượng, sau đó có 10 giây để hoàn tác và tệp chỉ bị xóa thật sau 30 giây. Nút Dọn nhanh xóa mục cũ (hơn 30 ngày), chỉ mục do agent tạo, chỉ mục lỗi, hoặc tất cả; mục đã ghim luôn được giữ.

Từ điển phát âm thay chữ trước khi đọc, ví dụ thay GPU bằng cách viết đúng cách đọc, rồi thử ngay trên một câu. Từ điển áp dụng cho văn bản, kịch bản và SRT.
Cho trợ lý AI gọi tạo giọng
Mục Kết nối AI cho trợ lý như Claude Code hay Antigravity gọi tạo giọng qua máy chủ MCP của ứng dụng. Mỗi trợ lý có một khóa riêng, đặt tên để nhận ra, và khóa chỉ hiện đúng một lần. Nút kiểm tra kết nối chạy đúng lệnh máy chủ mà trợ lý sẽ chạy. Thu hồi khóa nào thì chỉ trợ lý đó bị chặn; lần tạo do trợ lý gọi hiện trong Lịch sử với nhãn agent, và mỗi khóa chỉ thấy và xóa được các mục của chính nó. Mình không đưa ảnh phần này vào bài vì màn hình có khóa và đường dẫn trên máy.
Hạn chế cần nói rõ
Nếu bạn đang làm giọng đọc tiếng Việt cho video hay trợ lý AI, mình muốn nghe bạn đang dùng giọng nào và còn thiếu tính năng gì.