spark: STT tiếng việt cho dân code
Giữ fn, nói, thả ra là có chữ.
Bạn nói tiếng Việt lẫn tiếng Anh như lúc làm việc. Spark viết lại thành câu gọn và dán vào chỗ con trỏ: Cursor, VS Code, Terminal, Slack hay ô chat của Claude.
$ curl -fsSL https://vuongnm.github.io/spark/install.sh | bash
- Bạn nói
- fix cái bug ở file index chấm ts rồi commit và push lên branch main nhé
- Bộ nhận giọng nghe được
- PHÍCH CÁI BẮP Ở FILE INDEX CHẤM TS RỒI COMMIT VÀ TÚT LÊN BỜ RAN MAY NHÉ
- Spark dán vào
- Fix cái bug ở file index.ts rồi commit và push lên branch main nhé.
Chạy thật trên MacBook M1, không cần mạng: giọng đọc tiếng Việt của macOS, dọn chữ bằng Gemma 4 ngay trên máy. Nghe mất 0,12 giây, viết lại mất 1 giây.
Cách dùng
Giữ fn rồi nói
Một bong bóng nhỏ hiện ở đáy màn hình, chạy chữ theo lời bạn.
Thả phím
Khoảng một giây sau, câu đã sửa nằm ngay chỗ con trỏ, ở app nào cũng được.
Nói dài thì nhấn đúp
Nhấn fn hai lần để nói rảnh tay. Nhấn thêm lần nữa để dừng và dán.
Viết cho dân code
Hiểu tiếng Anh trong câu tiếng Việt
Deploy, commit, merge, pull request, endpoint, staging… Bộ nhận tiếng Việt nghe "com mít" thì Spark viết lại thành commit. Một mô hình tiếng Anh nhỏ nghe song song để bắt những từ bạn phát âm chuẩn.
Giữ đúng tên file và lệnh
Trong Cursor, VS Code, Terminal, iTerm, Ghostty, Zed hay JetBrains, Spark giữ nguyên tên file, tên hàm và lệnh. Nói "index chấm ts" là ra index.ts.
Nhận giọng chạy trên máy
Zipformer tiếng Việt (30 triệu tham số, qua sherpa-onnx) đọc 5 giây âm thanh trong khoảng 0,1 giây trên CPU. Âm thanh không rời máy bạn.
Chọn cách viết lại
Gemma 4 chạy ngay trên Mac: miễn phí, không cần mạng, tải thêm 3,1 GB. Hoặc Claude Haiku bằng khoá API của bạn: chính xác hơn, khoảng 1 giây. Chưa chọn thì Spark chỉ thêm dấu câu.
Không bịa thêm
Spark so câu viết lại với lời bạn nói. Mô hình thêm ý hay đổi con số thì Spark bỏ kết quả đó, nhờ Claude làm lại hoặc chỉ dọn cơ bản.
Từ điển của riêng bạn
Thêm tên dự án, tên đồng nghiệp, thuật ngữ nội bộ và cách máy hay nghe nhầm chúng. Spark viết đúng từ lần sau.
Cài đặt
macOSMac chip Apple (M1 trở lên)
Dán vào Terminal:
curl -fsSL https://vuongnm.github.io/spark/install.sh | bash
Script tải bản mới nhất từ GitHub Releases, chép Spark vào /Applications rồi mở app. Chạy lại để cập nhật. Đọc script trước khi chạy.
Thích tải bằng trình duyệt thì dùng file .dmg rồi kéo Spark vào Applications. Spark chưa ký bằng tài khoản Apple Developer nên lần đầu mở, macOS sẽ chặn. Vào Cài đặt hệ thống → Quyền riêng tư & Bảo mật, bấm “Vẫn mở”. Hoặc chạy:
xattr -dr com.apple.quarantine /Applications/Spark.app
Lần đầu mở
Spark tải bộ nhận giọng (khoảng 80 MB) rồi xin quyền:
- Micro: để nghe, chỉ trong lúc bạn giữ phím.
- Trợ năng (Accessibility): để đọc phím fn và dán chữ vào app đang mở.
- Input Monitoring, nếu macOS hỏi: Spark chỉ nghe phím fn, không ghi lại phím nào khác.
Nhấn fn mà macOS mở bảng emoji? Vào Cài đặt hệ thống → Bàn phím, chọn “Nhấn phím 🌐 để” là Không làm gì.
Muốn câu viết gọn hơn, vào Cài đặt trong Spark: tải Gemma 4 hoặc dán khoá API của Claude.
WindowsThử nghiệm · Windows 10, 11
Dán vào PowerShell:
irm https://vuongnm.github.io/spark/install.ps1 | iex
Giữ Ctrl bên phải để nói. Bản Windows được build tự động nhưng chưa thử kỹ trên máy thật. Gặp lỗi thì báo trên GitHub giúp mình.
Tự build
git clone https://github.com/VuongNM/spark.git
cd spark
npm ci
npm run build:native # phím fn trên macOS, cần Xcode Command Line Tools
npm run dev
Electron, React và TypeScript. Giấy phép MIT.
Gỡ cài đặt
rm -rf /Applications/Spark.app ~/Library/Application\ Support/Spark
Hỏi đáp
Spark có gửi giọng nói của tôi đi đâu không?
Không. Nhận giọng chạy trên máy. Khi bạn chọn Claude để viết lại, Spark gửi phần chữ đã nghe được (không gửi âm thanh) tới Anthropic bằng khoá của bạn. Lịch sử chỉ lưu trên máy, xoá được trong app.
Sao macOS cảnh báo khi mở file .dmg?
Muốn macOS mở thẳng, app phải được ký và gửi Apple kiểm tra qua tài khoản Apple Developer (99 USD một năm). Spark chưa làm bước đó. Mã nguồn để công khai, bạn đọc hoặc tự build được.
Sao cài bằng lệnh curl thì không bị chặn?
Trình duyệt gắn cờ “tải từ Internet” vào file, và macOS kiểm tra những file có cờ đó. curl không gắn cờ này. Script chỉ khoảng 40 dòng, bạn nên đọc trước khi chạy.
Có cần mạng không?
Chỉ để tải mô hình lần đầu và khi dùng Claude. Với Gemma, Spark chạy hoàn toàn offline.
Có mất tiền không?
Spark miễn phí. Nếu dùng Claude, Anthropic tính phí vào khoá API của bạn.
Máy cần mạnh cỡ nào?
Mac chip Apple nào cũng chạy được. Gemma dùng thêm khoảng 2 GB RAM trong lúc Spark mở, nên máy 8 GB nên dùng Claude.
Thử ngay
$ curl -fsSL https://vuongnm.github.io/spark/install.sh | bash