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

Dán vào Terminal. Mac chip Apple · 133 MB · miễn phí, mã nguồn mở.

Tải file .dmg·Windows (thử nghiệm)·Mã nguồn

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

  1. 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.

  2. 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.

  3. 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