Đến nội dung chính
Phạm Nam

Tìm kiếm

Nhập từ khoá để tìm trong các bài viết.

Quay lại
vi

Hex dictation giọng nói local: nói là gõ, không cloud

Hex là dictation giọng nói local-first bằng Rust: giữ phím, nói, thả phím, văn bản dán vào app đang mở. Hướng dẫn cài macOS, Windows, Linux và đánh giá.

11 phút đọc—

Minh họa Hex dictation giọng nói local: giữ phím, nói, văn bản được dán vào ứng dụng đang mở mà không cần cloud

Hex dictation giọng nói local-first bằng Rust — nói là gõ, không cần cloud

Buổi tối, bạn ngồi trước terminal, Claude Code đang chạy dở một task refactor. Trong đầu đã rõ cần làm gì: tách useEffect trong UserList.tsx thành hook riêng, hủy fetch khi unmount. Vấn đề là diễn đạt nó thành prompt dài mười lăm dòng bằng bàn phím. Gõ được nửa chừng thì ý tưởng tiếp theo chen vào, và prompt cuối cùng rời rạc hơn nhiều so với dự tính.

Hex dictation giọng nói local ra đời cho đúng khoảnh khắc đó. Đây là ứng dụng dictation miễn phí, mã nguồn mở của Anomaly — nhóm đứng sau OpenCode — chạy trên macOS, Windows và Linux: giữ một phím, nói, thả phím, văn bản tự dán vào ứng dụng đang mở.

Vấn đề thực tế: gõ prompt dài cho coding agent chậm hơn nghĩ

Làm việc với coding agent khác với viết code trực tiếp. Phần lớn thời gian nằm ở việc diễn đạt yêu cầu: mô tả lỗi, giải thích ngữ cảnh. Một prompt tốt thường dài, có cấu trúc, chứa nhiều tên file và tên hàm. Gõ vừa chậm vừa dễ sai tên identifier.

Dictation cloud không phải đáp án cho mọi người. Prompt gửi cho coding agent thường chứa tên dự án nội bộ và cấu trúc hệ thống. Sysadmin và homelabber làm việc trên máy không có internet hoặc trong mạng nội bộ.

Bài này dành cho lập trình viên dùng Claude Code, OpenCode hoặc Codex; sysadmin và DevOps cần nhập liệu bằng giọng nói trên máy offline; và homelabber.

Hex là gì? Dictation giọng nói local-first cho macOS, Windows và Linux

Hex làm đúng một việc, ở tầng hệ điều hành: giữ phím tắt, nói, thả phím. Hex thu âm trong lúc bạn giữ phím, nhận dạng ngay trên máy, rồi dán văn bản vào ứng dụng đang được focus.

Trên macOS, giữ Option để nói, nhấn đúp Option để ghi âm rảnh tay. Trên Windows, phím tắt mặc định là Ctrl+Space. Trên Linux, phím tắt tùy desktop.

Hex là sản phẩm của Anomaly, nhóm phát triển OpenCode, viết bằng Rust. Dự án phát hành dưới giấy phép MIT, repo tạo ngày 17/07/2026. Tới ngày kiểm tra 08/11/2026, repo đã có 5.759 stars và 343 forks.

Bản ổn định mới nhất là v3.3.0, phát hành ngày 02/11/2026; bản v3.0.0 phát hành ngày 31/10/2026 là một khởi đầu mới hoàn toàn. v3.3.0 thêm trình chọn model so sánh ba model cạnh nhau, model GigaAM v3 cho tiếng Nga.

Hex giải quyết đúng một vấn đề: biến giọng nói thành văn bản, dán vào bất cứ đâu, mà không đưa audio ra khỏi máy. Nó không phải trợ lý AI, không hiểu mệnh lệnh bằng giọng nói. Từ v3.0, Voice Action và spoken commands đã bị bỏ.

Kiến trúc và cơ chế hoạt động của Hex

Toàn bộ hoạt động của Hex tóm tắt trong một chuỗi ngắn: giữ phím tắt, thu âm, nhận dạng giọng nói trên máy, dán văn bản vào ứng dụng đang focus. Không bước nào cần mạng, sau lần chạy đầu tiên. Hex là một lớp nhập liệu của hệ điều hành — nó gõ vào Claude Code hay OpenCode như một bàn phím. Các thành phần chính: phím tắt, thu âm, engine local, dán, History, CLI, MCP, SDK.

Lần chạy đầu tiên, Hex tải model giọng nói từ Hugging Face; sau đó, dictation thường không cần mạng nữa. Model mặc định cho tiếng Anh là Parakeet Unified English; với tiếng Trung là Qwen3-ASR 0.6B.

flowchart TD
    A["Mở Hex"] --> V{"Cửa sổ Hex mở được?"}
    V -->|Thiếu driver Vulkan| L["Lỗi: cửa sổ không mở"]
    V -->|Có Vulkan| B["Giữ phím tắt"]
    B --> C["Thu âm"]
    C --> D{"Lần chạy đầu?"}
    D -->|Có| E["Tải speech model\nParakeet (EN) / Qwen3-ASR 0.6B (ZH)"]
    E --> F["Nhận dạng on-device"]
    D -->|Không| F
    F --> G{"Bật OpenCode rewrite?"}
    G -->|Không| H["Dán vào app đang focus"]
    G -->|Có| I["CLOUD: gửi transcript\ntới model provider"]
    I --> H
    H --> J["History: lưu văn bản đã dán 7 ngày"]
    A -.->|CPU thiếu AVX2| K["Báo lỗi, thoát"]

Sơ đồ trên thể hiện toàn bộ kiến trúc: giữ phím, thu âm, nhận dạng local, dán.

Theo mình, v3.0 là một bước ngoặt kiến trúc có chủ ý. Anomaly bỏ Voice Action và spoken commands, và thay vào đó thêm CLI, MCP và TypeScript SDK để chương trình khác gọi Hex. Hex trở thành một ống dẫn xác định theo kiểu Unix: audio vào, text ra. Nhờ vậy model local thu nhỏ từ khoảng 900 MB xuống khoảng 160 MB.

Về giới hạn kỹ thuật: macOS là kênh ổn định, chỉ Apple silicon, macOS 15 trở lên, không hỗ trợ máy Intel. Windows và Linux đang ở giai đoạn beta. CPU phải hỗ trợ AVX2, từ khoảng năm 2013; CPU cũ hơn sẽ hiện thông báo rồi thoát. Trên Linux cần X11 hoặc Wayland wlroots; cửa sổ vẫn cần driver Vulkan.

Không có benchmark độ chính xác nào được công bố. Một bài đo độc lập của aiSIDaily — chạy trên CPU, 3 lần chạy, prompt TTS tổng hợp — cho thấy Parakeet và Qwen3-ASR nhanh hơn Whisper large-v3-turbo nhiều lần, nhưng không model nào nghe đúng “Vitest”.

Hướng dẫn cài đặt Hex: macOS, Windows, Linux

Yêu cầumacOSWindowsLinux
Trạng tháiỔn địnhBetaBeta
CPUApple siliconAVX2 (2013+)AVX2 (2013+)
Hệ điều hànhmacOS 15 trở lênWindows 10 / 11X11 hoặc Wayland wlroots
Âm thanhCoreAudioWASAPIALSA / PipeWire

Trên macOS, qua Homebrew:

brew install --cask anomalyco/tap/hex

Hoặc tải DMG Apple silicon từ anoma.ly/hex, rồi cấp quyền Microphone và Accessibility.

Trên Linux, dùng script cài đặt:

curl -fsSL https://anoma.ly/hex/install-linux.sh | sh

Trên Arch: yay -S hex-bin. Với Nix: nix profile add github:anomalyco/hex. Ngoài ra còn có gói .deb và .rpm. Lưu ý: curl ... | sh chạy script trực tiếp từ mạng — tải về, đọc qua rồi mới chạy.

Trên Windows, tải installer x64 hoặc ARM64 từ anoma.ly/hex. Tài liệu chính thức cho biết bản Windows được ký Authenticode qua Azure Trusted Signing; dù vậy SmartScreen vẫn có thể cảnh báo trên một số bản.

Lần chạy đầu tiên, mở Hex, chọn model giọng nói rồi chờ tải về — bước này cần mạng. Sau đó cấp quyền microphone và accessibility.

Phần này mình chưa chạy thử trực tiếp, chỉ đối chiếu tài liệu:

hex --help
hex status
hex history --since 3d --json

Kiểm tra thực tế: mở terminal chạy Claude Code hoặc OpenCode, giữ phím tắt, nói một prompt ngắn, thả phím, và xác nhận văn bản được dán đúng vào cửa sổ đang focus.

Lỗi thường gặp và cách xử lý

CPU cũ không có AVX2: Hex hiện thông báo rồi thoát, không có workaround. Linux thiếu driver Vulkan: cửa sổ Hex không mở, dù inference hoàn toàn có thể chạy bằng CPU. Wayland không phải wlroots: Hex hỗ trợ X11 và Wayland wlroots. Dán không hoạt động trong terminal trên Wayland: gọi hex dictation stop --print rồi tự gõ ra.

Nâng cấp lên v3.0 — breaking change cần biết trước

v3.0 là một khởi đầu mới, không phải nâng cấp thông thường: không import gì từ 2.x, bản 2.3.1 không tự cập nhật lên 3.0, app ID mới là anomaly.hex, và quyền trên macOS phải cấp lại.

Đánh giá kỹ thuật Hex: ưu điểm, nhược điểm, bảo mật, vận hành

Ưu điểm: dictation thường local-first thật sự — không cloud, không tài khoản, không phí. Một lệnh cài đặt là dùng ngay. Dán được vào mọi ứng dụng, không cần tích hợp riêng. Mã nguồn mở MIT. Có CLI, MCP và TypeScript SDK để tự động hóa.

Nhược điểm: Windows và Linux vẫn đang beta. Chỉ Apple silicon trên macOS, máy Intel bị loại. Model mặc định là tiếng Anh; chưa kiểm chứng tiếng Việt. Không có benchmark độ chính xác công bố.

Về bảo mật, ranh giới privacy của Hex nằm ở chế độ, không nằm ở sản phẩm. Dictation thường chạy hoàn toàn trên máy: audio không được lưu theo mặc định, history chỉ giữ văn bản đã dán trong 7 ngày.

Ngoại lệ duy nhất là tính năng rewrite qua OpenCode. Khi bật, Hex gửi transcript, kèm tên ứng dụng đang focus — và với Brave thì cả hostname — tới model provider mà bạn đã cấu hình. Từ v3.1.0, Hex chỉ kết nối tới một instance OpenCode đang chạy sẵn. Bật rewrite đồng nghĩa với việc transcript rời khỏi máy.

Rủi ro thứ hai nằm ở chính cơ chế dán. Hex dán vào bất cứ ứng dụng nào đang focus. Dán nhầm cửa sổ thì hậu quả giống hệt gõ nhầm: một đoạn text chứa secret hay API key có thể rơi vào khung chat chung hoặc terminal. Không có undo ở tầng Hex — liếc nhìn cửa sổ đang focus trước khi thả phím, và tuyệt đối không đọc secret qua dictation.

Về hiệu năng, model local khoảng 160 MB thay vì khoảng 900 MB theo ghi chú phát hành của v3.0. Một bài đo độc lập của aiSIDaily (CPU-only, 3 lần chạy, prompt TTS tổng hợp) ghi nhận một lần chạy CLI một shot chiếm khoảng 1,0 đến 1,3 GB bộ nhớ đỉnh. Về vận hành: Hex không có server, không có tài khoản, không có dữ liệu cloud để backup.

So sánh Hex vs Handy vs Superwhisper — chọn công cụ nào?

Tiêu chíHexHandySuperwhisper
GiáMiễn phíMiễn phíCó bản miễn phí
Xử lý giọng nóiOn-deviceOfflineOffline
Nền tảngmacOS; Win/Linux betaWin, macOS, LinuxmacOS, Win, iOS, Android
Cách đưa text vào appDán vào app đang focusDán vào app đang focusDán vào app
CLI / MCP / SDKhex CLI, MCP, SDKCLI beta + hooksBản Pro có CLI
Mã nguồn mởMITMITKhông

Handy đã được giới thiệu trên phamnam.me trong bài Handy: speech-to-text offline miễn phí. Handy và Hex chia sẻ cùng cơ chế cốt lõi: push-to-talk dictation, giữ phím, nói, thả phím, văn bản dán vào ứng dụng đang focus. Điểm khác nằm ở phần mở rộng: Hex có MCP interface, TypeScript SDK và tính năng rewrite qua OpenCode, kèm trình chọn model so sánh ba model; Handy cho chọn model Whisper hoặc Parakeet và có CLI beta (handy --toggle-transcription) cùng transcription hooks để tự động hóa. Handy không làm transcription file hàng loạt — FAQ của nó ghi rõ việc chuyển file ghi âm thành văn bản chưa được kiểm chứng. Cần nói prompt vào coding agent, dùng CLI/MCP để tự động hóa — chọn Hex. Cần dictation offline đơn giản, chọn model Whisper hoặc Parakeet theo ý mình — chọn Handy.

Superwhisper và Voxtype là các lựa chọn dictation thương mại; Omarchy liệt kê Hex cùng hai công cụ này. Điểm khác biệt lớn nhất của Hex là mã nguồn mở, miễn phí, local-first, và có CLI cùng MCP để tự động hóa. Superwhisper là sản phẩm thương mại với bản Pro, hỗ trợ nhiều nền tảng gồm cả mobile. Cần sản phẩm hoàn thiện, chạy cả trên điện thoại — Superwhisper đáng cân nhắc.

Khi nào KHÔNG nên chọn Hex: bạn cần ra lệnh bằng giọng nói — Hex đã bỏ tính năng đó từ v3.0. Bạn cần transcription file dài hàng loạt — Hex không làm việc đó. Bạn dùng CPU đời trước 2013 hoặc máy Intel Mac — Hex không chạy được. Bạn cần dictation đa ngôn ngữ đã được kiểm chứng, đặc biệt là tiếng Việt — hiện chưa có bằng chứng đủ tin cậy.

Use case thực tế: Hex trong workflow AI, DevOps và homelab

Use case rõ ràng nhất là AI workflow: mở terminal chạy Claude Code hoặc OpenCode, giữ phím, nói yêu cầu refactor bằng lời như đang pair-programming, thả phím, kiểm tra lại văn bản rồi gửi. Vì Hex chỉ gõ lại verbatim, bạn nên nói rõ tên identifier. Mẹo nhỏ: dùng Vocabulary list cho những tên model hay nghe sai. Hex không thay thế các coding agent, nó chỉ thay bàn phím của bạn.

Với DevOps và IT admin, trong lúc xử lý sự cố, nói nhanh thời gian phát hiện, dịch vụ ảnh hưởng, bước đã làm, rồi dán vào ticket hoặc runbook. Đừng bao giờ đọc secret hay API key qua dictation.

Trên một máy Linux homelab không có internet sau lần cài đầu, Hex vẫn dictation bình thường vì model đã nằm local. Nhưng nhớ kiểm tra driver Vulkan và compositor wlroots trước.

Kết luận: Hex phù hợp với ai, không phù hợp với ai, bước tiếp theo

Hex phù hợp với lập trình viên dùng coding agent hàng ngày; người cần dictation local-first trên Mac hoặc Linux; homelabber và sysadmin muốn nhập liệu bằng giọng nói mà không cần cloud; và người thích công cụ mã nguồn mở. Hex không phù hợp với người cần spoken commands, máy không có AVX2 hoặc máy Intel Mac, và người cần tiếng Việt đã được kiểm chứng.

Bước tiếp theo: cài Hex theo đúng hệ điều hành của bạn, chạy thử một prompt thật vào coding agent bạn dùng hàng ngày. Đừng đánh giá Hex bằng star count — đánh giá bằng một buổi làm việc thật với prompt của chính bạn.

Bài học rút ra

  1. Dictation local chỉ đúng ở chế độ plain dictation — bật rewrite qua OpenCode là bước qua ranh giới cloud.
  2. Paste-into-any-app vừa là sức mạnh vừa là rủi ro: kiểm tra app đang focus trước khi thả phím — không có undo ở tầng Hex.
  3. v3.0 là fresh start — lên 3.0 nghĩa là cài mới, cấp quyền lại, làm lại cấu hình.
  4. Trên Linux, kiểm tra driver Vulkan và compositor trước khi kết luận máy không chạy được.
  5. Không có benchmark độ chính xác công bố — đánh giá Hex bằng cách thử thật.

Phạm vi kiểm chứng

Ngày kiểm tra: 08/11/2026. Đã kiểm chứng với README, docs và GitHub API: tên dự án, repo, MIT, 5.759 stars và 343 forks, v3.3.0 phát hành 02/11/2026, lệnh cài đặt, trạng thái beta, yêu cầu AVX2, chi tiết Linux, phím tắt Ctrl+Space trên Windows, và việc tải model lần đầu. Model Parakeet mặc định, history 7 ngày và rewrite qua OpenCode đã được đối chiếu với README và nguồn phụ, không phải ghi chú phát hành.

Mặc định: transcription local; rewrite qua OpenCode là opt-in và gửi transcript lên cloud; history 7 ngày có thể tắt. Số liệu là cấu hình hoặc khoảng tăng trưởng, không phải benchmark.

Chưa kiểm chứng: tác giả chưa cài đặt, chạy hay benchmark Hex; hỗ trợ tiếng Việt chưa được kiểm chứng; cần thử trên máy thật.

Tài liệu tham khảo


Bài viết liên quan

Bình luận

Bình luận được duyệt trước khi hiển thị.

Đang tải bình luận…

Để lại bình luận