2 điểm bởi GN⁺ 2026-01-17 | 1 bình luận | Chia sẻ qua WhatsApp
  • Handyứng dụng desktop chuyển giọng nói thành văn bản miễn phí, mã nguồn mở hoạt động hoàn toàn ngoại tuyến, được thiết kế đặt quyền riêng tư làm trung tâm
  • Được xây dựng trên Tauri (Rust + React/TypeScript), với cơ chế nhấn phím tắt để nói và giọng nói sẽ được nhập trực tiếp vào trường văn bản
  • Hỗ trợ các mô hình WhisperParakeet V3, thực hiện nhận diện giọng nói cục bộ bằng tăng tốc GPU hoặc dựa trên CPU
  • Hoạt động trên Windows, macOS và Linux, được phát triển với cấu trúc chú trọng khả năng mở rộng và dễ fork, nhằm khuyến khích đóng góp từ nhà phát triển
  • công cụ nhập liệu bằng giọng nói đặt quyền riêng tư làm trung tâm, xử lý cục bộ không cần truyền lên đám mây, có tính tiếp cận và khả năng tùy biến cao

Tổng quan

  • Handy là ứng dụng nhận diện giọng nói miễn phí, mã nguồn mở, có thể mở rộng, hoạt động hoàn toàn ngoại tuyến mà không cần kết nối Internet
  • Dựa trên framework Tauri, kết hợp backend Rust và frontend React/TypeScript
  • Người dùng nhấn phím tắt để nói, và khi thả tay ra, mô hình Whisper hoặc Parakeet V3 sẽ chuyển giọng nói thành văn bản rồi dán vào ứng dụng hiện tại
  • Toàn bộ dữ liệu giọng nói được xử lý cục bộ nên không có nguy cơ rò rỉ thông tin cá nhân

Triết lý của Handy

  • Miễn phí: công cụ hỗ trợ tiếp cận nên dành cho mọi người
  • Mã nguồn mở: ai cũng có thể mở rộng và cải thiện tính năng
  • Đảm bảo quyền riêng tư: dữ liệu giọng nói không được gửi lên đám mây
  • Đơn giản: tập trung vào một mục tiêu duy nhất là chuyển giọng nói thành văn bản
  • Mục tiêu không phải là tạo ra ứng dụng “hoàn hảo nhất”, mà là ứng dụng “dễ fork nhất”

Cách hoạt động

  • Người dùng có thể bắt đầu/dừng ghi âm bằng phím tắt hoặc dùng chế độ push-to-talk
  • Dùng Silero VAD để lọc khoảng lặng, rồi chuyển giọng nói bằng mô hình Whisper hoặc Parakeet V3
    • Mô hình Whisper: cung cấp các phiên bản Small, Medium, Turbo, Large, hỗ trợ tăng tốc GPU
    • Parakeet V3: tối ưu cho CPU, bao gồm tính năng tự động nhận diện ngôn ngữ
  • Văn bản sau khi chuyển đổi sẽ được tự động chèn vào ô nhập của ứng dụng đang sử dụng
  • Hỗ trợ đầy đủ Windows, macOS, Linux

Kiến trúc

  • Frontend: React + TypeScript + Tailwind CSS
  • Backend: dựa trên Rust, phụ trách xử lý âm thanh và suy luận machine learning
  • Các thư viện cốt lõi
    • whisper-rs: nhận diện giọng nói cục bộ với mô hình Whisper
    • transcription-rs: nhận diện bằng CPU với mô hình Parakeet
    • cpal: vào/ra âm thanh
    • vad-rs: phát hiện hoạt động giọng nói
    • rdev: xử lý phím tắt toàn cục và sự kiện hệ thống
    • rubato: lấy mẫu lại âm thanh
  • Chế độ debug: có thể truy cập bằng Cmd+Shift+D (macOS) hoặc Ctrl+Shift+D (Windows/Linux)

Vấn đề đã biết và hạn chế

  • Lỗi crash của mô hình Whisper: tồn tại vấn đề mô hình bị crash trong một số môi trường Windows/Linux
  • Hỗ trợ Wayland hạn chế: trong môi trường Linux Wayland cần cài wtype hoặc dotool
  • Công cụ nhập văn bản
    • X11: xdotool
    • Wayland: wtype hoặc dotool
    • Nếu chưa cài các công cụ này, sẽ thay bằng enigo nhưng khả năng tương thích bị hạn chế
  • Mặc định tắt overlay trên Linux: mặc định bị vô hiệu hóa để tránh xung đột focus

Yêu cầu hệ thống

  • Dành cho mô hình Whisper
    • macOS: máy Mac dòng M hoặc Intel Mac
    • Windows/Linux: GPU Intel, AMD, NVIDIA (khuyến nghị Ubuntu 22.04/24.04)
  • Dành cho mô hình Parakeet V3
    • Chỉ dùng CPU, khuyến nghị Intel Skylake (thế hệ 6) trở lên
    • Trên phần cứng tầm trung, tốc độ nhanh hơn thời gian thực khoảng 5 lần
    • Bao gồm tính năng tự động nhận diện ngôn ngữ

Lộ trình phát triển

  • Các tính năng đang thực hiện
    • Bổ sung tệp log debug
    • Cải thiện phím tắt trên macOS (hỗ trợ phím Globe, viết lại xử lý phím tắt toàn cục)
    • Tính năng phân tích tùy chọn: thu thập dữ liệu sử dụng ẩn danh, dựa trên sự đồng ý rõ ràng
    • Refactor hệ thống cài đặt và cải thiện lớp trừu tượng
    • Sắp xếp lại cấu trúc lệnh Tauri và nâng cao độ an toàn kiểu dữ liệu

Khắc phục sự cố và cài đặt mô hình thủ công

  • Trong môi trường bị hạn chế mạng, có thể tải xuống và cài đặt mô hình thủ công
  • Tạo thư mục models trong thư mục dữ liệu ứng dụng rồi đặt các tệp mô hình vào đó
    • Mô hình Whisper: sao chép trực tiếp tệp .bin
    • Mô hình Parakeet: giải nén .tar.gz rồi giữ nguyên tên thư mục được chỉ định
  • Sau khi cài đặt, khởi động lại ứng dụng để mô hình được nhận diện tự động

Cách đóng góp

  • Kiểm tra issue trên GitHub rồi fork và tạo branch
  • Kiểm thử đầy đủ trên nền tảng mục tiêu trước khi gửi Pull Request
  • Có thể tham gia cộng đồng qua email (contact@handy.computer) hoặc Discord
  • Mục tiêu là cung cấp nền tảng để cộng đồng phát triển tiếp thông qua codebase đơn giản và có cấu trúc tốt

Dự án liên quan và giấy phép

  • Handy CLI: phiên bản dòng lệnh dựa trên Python
  • handy.computer: website chính thức và bản demo
  • Phát hành theo giấy phép MIT
  • Dựa trên các dự án mã nguồn mở như Whisper (OpenAI), Silero, Tauri

Trích dẫn

  • Handy có thể khép lại hành trình tìm kiếm công cụ nhận diện giọng nói của bạn không phải vì nó hoàn hảo, mà vì bạn có thể khiến nó trở nên hoàn hảo.

1 bình luận

 
GN⁺ 2026-01-17
Ý kiến trên Hacker News
  • Tôi đã dùng nhiều ứng dụng STT, nhưng cuối cùng vẫn gắn bó với VoiceInk (chạy cục bộ, trả tiền một lần)
    Khi dùng cùng Parakeet V3 thì phản hồi gần như tức thì và độ chính xác cũng đủ tốt
    Tôi thường nói chuyện với một CLI agent rồi yêu cầu “hãy nói cho tôi biết bạn đã hiểu lời tôi như thế nào”
    Cách này vừa giúp xác nhận mức độ hiểu, vừa đóng vai trò như một dạng bản đặc tả
    Gần đây tôi cũng thử kết hợp Handy + Parakeet v3, và nó hoạt động rất tốt nên tôi định dùng bộ này trong vài ngày tới
    Nếu bật UI “debug” bằng Cmd‑Shift‑D, bạn còn có thể thấy các tùy chọn bổ sung như hậu xử lý (post‑processing) hoặc thêm khoảng trắng
    • Sẽ rất hay nếu một trong các mô hình kiểu này được tối ưu riêng cho lập trình
      Tôi muốn đọc bằng giọng nói các lệnh như “cd ~/projects” hay “git push --force”
  • Tôi bị chứng loạn trương lực cơ (dystonia), nên khi tay bị co cứng thì không thể gõ bàn phím
    Vì vậy các ứng dụng TTS như SuperWhisper đã giúp ích rất nhiều
    Tôi hy vọng Handy cũng mang lại trải nghiệm tương tự
    Nhưng để tiến lên bước tiếp theo, tôi nghĩ cần vượt qua mức chỉ chuyển giọng nói thành văn bản và có thêm mở rộng dựa trên ngữ cảnh
    Ví dụ, khi đọc mã trong IDE thì hệ thống có thể tạo ra mã thật sự
    Cuối cùng thì đó là hướng kết hợp TTS với việc sử dụng máy tính
    • Tôi đã tạo một công cụ CLI tên là ultraplan
      Nó ghi lại giọng nói bằng Whisper cục bộ và lưu theo dạng timeline các ảnh chụp màn hình, nội dung clipboard, v.v.
      Sau đó các agent như Claude Code sẽ đọc timeline này và tiếp tục công việc
      Bạn cũng có thể điều khiển hands-free, chẳng hạn nói “marco” để chụp màn hình
      Nếu ai muốn, tôi có thể sắp xếp lại rồi đưa nó lên GitHub
    • Tôi đồng cảm với ý của bạn. Vì thế tôi đã mã nguồn mở Handy
      Cũng có các thử nghiệm dùng mô hình cục bộ nhỏ (moondream, qwen, v.v.) để hiểu ngữ cảnh trên máy tính
      Trước đây khi tôi bị gãy ngón tay, tôi đã ánh xạ các phím tắt vào Handy để tạo ra kiểu điều khiển ngữ cảnh đơn giản
    • “Lập trình bằng giọng nói” đã được nghiên cứu rất nhiều từ trước thời LLM
      Ví dụ có trường hợp từ năm 2013 như Using Voice to Code Faster than Keyboard
      Một nghiên cứu gần đây là bài báo này
    • Tính năng bạn nói thực ra đã làm được rồi
      Nếu đưa đầu ra STT vào LLM, hệ thống có thể hiểu ý định và tạo ra tập lệnh lệnh
      Trên CLI thì việc chuyển trực tiếp lệnh thoại thành lệnh shell khá dễ
      Trên GUI thì phức tạp hơn một chút vì cần biết trạng thái màn hình
      MacWhisper trên macOS có thể gửi văn bản chép lại tới endpoint tương thích OpenAI
  • Đây là vài nhận xét ngắn sau khi dùng nhiều ứng dụng chép lời bằng giọng nói
    Superwhisper là ứng dụng trả phí, có tùy chọn mua trọn đời và khá nhiều tính năng. Vì do một lập trình viên duy trì nên đôi lúc vẫn có lỗi
    Hex là lựa chọn miễn phí nhẹ và gọn nhất
    Fluid Voice có một tính năng độc đáo là hiển thị văn bản theo thời gian thực trong lúc bạn nói
    Handy có giao diện màu hồng dễ thương và tôi rất thích cửa sổ lịch sử. Thiết lập khôi phục clipboard của nó hơi khác thường một chút
    Khi cài luân phiên nhiều ứng dụng thì tôi gặp một vài xung đột
    Nhờ Nvidia mã nguồn mở Parakeet, tất cả đều chạy rất nhanh
    Tôi thích tính năng stream chép lời theo thời gian thực. Chất lượng thấp nhưng hiện ra ngay, rồi sau đó được thay bằng bản chất lượng cao sẽ là tốt nhất
  • Sau vài tuần tìm ứng dụng STT, tôi đã phát hiện Handy
    Phần lớn đều là trả phí hoặc thuê bao, đến mức tôi từng nghĩ sẽ tự làm một cái, nhưng Handy thì nhanh, đơn giản và không gây phiền nhiễu
    Hơn nữa nó còn được cập nhật đều đặn nên tôi rất hài lòng
    Tính năng hậu xử lý (post‑processing) cũng có vẻ rất hay
  • Tôi đang dùng Wispr Flow, nhưng để chuyển sang thì tôi cần tính năng từ điển người dùng cho những từ hay bị nhận sai (tên công ty, tên người, tên thư viện, v.v.)
    • Có một tính năng tên là “Custom Words”, có lẽ chính là thứ bạn đang nói tới. Tôi vẫn chưa thử kỹ
    • PR liên quan sắp được merge, nên bạn cũng có thể build trước để dùng
    • Một số mô hình hiển thị độ tin cậy (confidence) theo từng từ
      Việc thêm từ thủ công cũng tốt, nhưng nếu có thể đánh dấu những từ không chắc chắn thì sẽ dễ bổ sung hơn
  • Có một điểm cần lưu ý
    Phím tắt mặc định là Ctrl+Space, và ngay khi bạn nhả phím ra thì bản chép lời sẽ được chèn vào
    Nếu lúc đó Ctrl vẫn đang bị giữ, văn bản được chép ra sẽ bị xử lý như ký tự Ctrl
    Môi trường thử nghiệm là Linux x64, X11, Emacs
  • Tôi dùng Handy cùng Parakeet v3 và thấy nó thực sự xuất sắc
    Tôi cũng đã dùng Monologue, Superwhisper và Aqua, nhưng Handy chạy cục bộ và không có phí thuê bao
    Rất đáng khuyến nghị
  • Tôi muốn biết có ai đã so sánh với OpenWhispr chưa
    Mô tả thì có vẻ khá giống nhau. Handy phát hành lần đầu vào tháng 6/2025, còn OpenWhispr ra mắt sau đó một tháng
    Handy có 11k sao trên GitHub, còn OpenWhispr khoảng 730
    • Tôi đã dùng cả hai, và Handy đơn giản hơn nhiều vì có thể cài trực tiếp như ứng dụng macOS
      Khi đó OpenWhispr chưa có mô hình Parakeet và giao diện cũng chưa mượt
      Nhờ UI tối giản, Handy rất trực quan khi sử dụng
      Nó thiếu một số tính năng nâng cao, nhưng tôi đã dùng được hai tháng và không có ý định tìm ứng dụng STT khác
  • Trên MacBook M1 Air của tôi, Handy rất nhanh và chính xác hơn STT mặc định của macOS
    Phần thiết lập cũng đủ đơn giản để dùng thoải mái
    Tôi từng thắc mắc tùy chọn “discharging the model” là gì, nhưng có vẻ nó không ảnh hưởng đến RAM hay CPU
    • Đó là tính năng giữ mô hình thường trú trong RAM để truy cập nhanh hơn
      Khi discharge thì nó sẽ bị gỡ khỏi bộ nhớ, nên tốc độ khởi động sẽ chậm hơn
  • Mô hình Parakeet V3 thực sự rất xuất sắc