3 điểm bởi GN⁺ 16 ngày trước | 1 bình luận | Chia sẻ qua WhatsApp
  • Ứng dụng nhận dạng giọng nói cục bộ trên macOS, giữ phím Control và nói để tự động chuyển thành văn bản rồi dán vào
  • Toàn bộ quá trình nhận dạng giọng nói và làm sạch văn bản đều chỉ được thực hiện cục bộ, đảm bảo bảo vệ quyền riêng tư mà không cần truyền dữ liệu lên đám mây
  • Dựa trên WhisperKitLLM.swift, tự động tải xuống mô hình Hugging Face và lưu vào bộ nhớ đệm
  • Tính năng làm sạch thông minh loại bỏ lời nói thừa và chỉnh lại các biểu đạt tự sửa, chạy nền dưới dạng ứng dụng thanh menu
  • Được phát hành dưới dạng mã nguồn mở giấy phép MIT, hoạt động trên Apple Silicon macOS 14 trở lên

Tổng quan

  • Ghost Pepper là ứng dụng chuyển giọng nói thành văn bản hoàn toàn cục bộ cho macOS, cung cấp tính năng giữ phím Control, nói rồi thả ra để tự động chuyển thành văn bản và dán vào
  • Không sử dụng cloud API, mọi dữ liệu và mô hình đều được xử lý hoàn toàn trên máy cục bộ
  • Hoạt động trên macOS 14.0 trở lên chạy Apple Silicon (M1 trở lên)
  • Chạy dưới dạng ứng dụng thanh menu, có thể tự khởi động khi đăng nhập
  • Là dự án mã nguồn mở phát hành theo giấy phép MIT

Tính năng chính

  • Giữ phím Control và nói → khi thả phím sẽ tự động chuyển thành văn bản và dán vào
  • Kiến trúc chạy cục bộ, cả mô hình nhận dạng giọng nói và hậu xử lý đều chạy bên trong máy Mac
  • Tính năng làm sạch thông minh loại bỏ lời nói thừa (uh, um, v.v.) và tự động chỉnh các biểu đạt tự sửa
  • Giao diện chỉ trên thanh menu nên hoạt động nền mà không có biểu tượng Dock
  • Hỗ trợ tùy chỉnh người dùng: có thể sửa prompt làm sạch, chọn micro, bật/tắt tính năng

Cách hoạt động

  • Tất cả mô hình đều dựa trên mã nguồn mở; khi chạy lần đầu sẽ tự động tải xuống rồi lưu vào bộ nhớ đệm cục bộ
  • Nhận dạng giọng nói được thực hiện bằng WhisperKit, làm sạch văn bản bằng LLM.swift
  • Các tệp mô hình được cung cấp qua Hugging Face
  • Mô hình nhận dạng giọng nói

    • Whisper tiny.en (~75MB): mô hình chỉ tiếng Anh nhanh nhất
    • Whisper small.en (~466MB): mặc định, mô hình chỉ tiếng Anh có độ chính xác cao
    • Whisper small (multilingual): hỗ trợ đa ngôn ngữ
    • Parakeet v3 (~1.4GB): hỗ trợ 25 ngôn ngữ, dựa trên FluidAudio
  • Mô hình làm sạch văn bản

    • Qwen 3.5 0.8B (~535MB): mặc định, xử lý trong khoảng 1–2 giây
    • Qwen 3.5 2B (~1.3GB): tốc độ xử lý nhanh (khoảng 4–5 giây)
    • Qwen 3.5 4B (~2.8GB): chất lượng tốt nhất (khoảng 5–7 giây)

Cài đặt và chạy

  • Cài đặt ứng dụng

    1. Tải GhostPepper.dmg
    2. Mở DMG rồi kéo vào thư mục Applications
    3. Cho phép quyền truy cập micro và Trợ năng
    4. Bắt đầu sử dụng bằng cách giữ phím Control và nói
  • Build từ mã nguồn

    1. Clone kho lưu trữ
    2. Mở GhostPepper.xcodeproj trong Xcode
    3. Cmd+R để build và chạy

Yêu cầu quyền

Quyền Mục đích
Microphone Ghi âm giọng nói
Accessibility Thực hiện phím tắt toàn cục và tự động dán

Thông tin bổ sung

  • Tự khởi động khi đăng nhập được bật mặc định và có thể tắt trong phần cài đặt
  • Không lưu log trên đĩa — văn bản đã chuyển đổi không được ghi thành tệp, còn log debug chỉ được giữ trong bộ nhớ rồi bị xóa khi ứng dụng thoát

Cấu trúc kỹ thuật và phụ thuộc

  • WhisperKit: engine nhận dạng giọng nói
  • LLM.swift: LLM cục bộ để làm sạch văn bản
  • Hugging Face: nơi lưu trữ mô hình
  • Sparkle: quản lý cập nhật ứng dụng macOS

Ý nghĩa tên gọi

  • Tất cả mô hình đều chỉ chạy cục bộ, nên dữ liệu cá nhân không bị gửi ra bên ngoài
  • Tên Ghost Pepper tượng trưng cho tính năng mạnh mẽ được cung cấp miễn phí

Hỗ trợ doanh nghiệp và thiết bị được quản lý

  • Ứng dụng cần quyền Trợ năng (Accessibility), và thông thường sẽ yêu cầu quyền quản trị viên
  • Trong môi trường MDM (Jamf, Kandji, Mosaic, v.v.), có thể phê duyệt trước thông qua profile PPPC (Privacy Preferences Policy Control)
    • Bundle ID: com.github.matthartman.ghostpepper
    • Team ID: BBVMGXR9AY
    • Permission: Accessibility (com.apple.security.accessibility)

1 bình luận

 
Ý kiến trên Hacker News
  • Ứng dụng này thật sự rất tuyệt. Nhưng mỗi lần nhìn thấy nó tôi lại nhớ đến Pixel 6 của mình
    Đó là mẫu máy năm 2021, nhưng vẫn có thể chuyển giọng nói thành văn bản ngay cả khi ngoại tuyến và tự động chỉnh sửa theo ngữ cảnh. Thậm chí nếu tôi tiếp tục nói, nó còn sửa lại cả những câu trước đó.
    Thật ngạc nhiên khi Google đã tích hợp công nghệ như thế này từ sớm hơn tới 5 năm so với Whisper hay Qwen. Nhưng tôi thắc mắc vì sao bây giờ lại cần tới mô hình transformer 1GB trên những nền tảng mạnh hơn

    • Đây là chính mô hình được dùng trong WebSpeech API. Nó hoạt động hoàn toàn ngoại tuyến
      Google đã hỗ trợ huấn luyện mô hình này khoảng 10 năm trước, và tới giờ nó vẫn khá xuất sắc.
      Nó được tích hợp trong các trình duyệt dựa trên Webkit hoặc Blink, nên nhiều website đang dùng nó như một frontend đơn giản.
      Nhưng bản thân mô hình tồn tại dưới dạng blob độc quyền, nên Firefox không hỗ trợ
      Tài liệu MDN / Demo Chrome
    • Microsoft OneNote cũng từng có tính năng tương tự vào khoảng năm 2007.
      Tôi ở trong nhóm lúc đó, và vì không có nhân sự bảo trì nên chúng tôi bỏ mô hình ngoại tuyến và chuyển sang chỉ dùng trực tuyến.
      Lý do không phải kỹ thuật, mà đơn giản là thiếu người bảo trì
    • Độ chính xác thấp hơn rất nhiều.
      Trên Android tôi dùng Futo, trên macOS thì dùng MacWhisper. Cả hai đều tốt hơn nhiều so với mô hình mặc định của Apple
    • macOS và iOS cũng làm được việc này bằng tính năng đọc chính tả tích hợp sẵn. Trên Mac là phím Globe + D
    • Pixel 7 của tôi lại có tỷ lệ nhận dạng thấp đến mức gần như không dùng được.
      Trong khi đó các mô hình STT cục bộ mã nguồn mở như Whisper hay Parakeet mạnh hơn hẳn.
      Chúng cũng ít bị ảnh hưởng hơn bởi tiếng ồn nền hay giọng lầm bầm.
      Tôi làm trong mảng Voice AI, nên dùng các mô hình như thế này hằng ngày, và sự khác biệt cảm nhận được là rất lớn
  • Ứng dụng được làm rất tốt. Nếu góp ý thì,
    thứ nhất, nhất định cần có tính năng tự động dán vào clipboard. Sẽ tốt hơn nếu không cần bấm phím tắt hoặc có thể cấu hình được
    thứ hai, tốc độ hơi chậm hơn một chút so với các giải pháp khác. Điều này ảnh hưởng lớn đến trải nghiệm sử dụng
    thứ ba, sẽ tốt nếu có tính năng điều khiển định dạng. Ví dụ khi nói “new line” thì nó nên được hiểu là xuống dòng thật

  • Chủ đề này giống như một nhóm hỗ trợ cho những người tự làm ứng dụng chuyển giọng nói → văn bản cho macOS

    • Tôi đã tổng hợp tất cả các ứng dụng mình làm ở đây.
      Gần đây tôi cũng đã thêm Ghost Pepper, và bạn còn có thể tự xây ứng dụng bằng cách tạo file skill.md chứa các tính năng mình cần
    • Trên subreddit /r/macapps cũng có quá nhiều ứng dụng whisper dictation.
      Trong một danh mục đã bão hòa như vậy, cần giải thích rõ điểm khác biệt so với các ứng dụng hiện có
      Bài viết liên quan
    • Tôi cũng từng tự làm một cái, rồi sau này thấy KeyVox và đã nói chuyện với tác giả của nó.
      KeyVox GitHub
    • Tôi đã triển khai nó trên nixOS bằng cách gắn indicator vào Noctalia.
      Hiệu năng gần như ngang với Wispr Flow, và chạy hoàn toàn cục bộ
    • Theo đúng kiểu Apple, tôi đang kỳ vọng đến khoảng macOS 27 hoặc 28 thì nó sẽ thành tính năng mặc định
  • Là người dùng Linux, tôi đã phát triển Hyprwhspr
    Nếu chạy mô hình Cohere Transcribe mới nhất bằng GPU thì hiệu năng rất tốt.
    Tôi muốn biết liệu bạn đã so sánh WhisperKit với faster-whisper hay turbov3 chưa.
    Tôi cũng đang mong Apple sớm ra mắt STT native

    • Tôi muốn biết nó so với Handy thế nào.
      Tôi cũng muốn biết vì sao bạn không cải tiến dự án hiện có mà lại làm mới từ đầu
    • Tôi đang tự host Whisper large-v3 trên M2 Max.
      Độ chính xác đủ tốt nên tôi không cần mô hình dọn dẹp.
      Tuy vậy với audio dài hơn 30 giây thì tôi bắt đầu thấy độ trễ. Tôi tò mò WhisperKit xử lý audio dài như thế nào
    • Tôi dùng Hyprwhspr mỗi ngày trên Omarchy. Nó thực sự rất tuyệt
    • Tôi cũng đang định làm thứ tương tự, nên nhờ vậy mà khỏi phải làm nữa.
      Không biết bạn đã từng cân nhắc tính năng foot pedal PTT (Push-To-Talk) chưa?
      Apple cũng đã có STT, nhưng chất lượng mô hình vẫn còn hơi đáng tiếc
  • Speech-to-text là phần cốt lõi trong quy trình phát triển của tôi.
    Nó đặc biệt hữu ích khi đọc prompt cho LLM hoặc coding agent.
    Tôi đã tổng hợp các công cụ nhập liệu bằng giọng nói mã nguồn mở tốt nhất theo từng nền tảng trong repo GitHub này

    • Tôi tò mò mọi người dùng đọc chính tả trong phát triển phần mềm như thế nào.
      Tôi gõ được 120 từ mỗi phút nên nhanh hơn nói rất nhiều.
      Ngoài mục đích trợ năng, tôi thật sự muốn biết liệu đây là dành cho người gõ chậm hay để nằm trên sofa viết code
  • Chẳng phải đã có sẵn ứng dụng như Handy rồi sao?

    • Có vài điểm còn đáng tiếc.
      1. Trên Linux, có thể dễ dàng dựng một hệ thống tương tự bằng tài khoản FTP và curlftpfs, hoặc SVN/CVS
      2. Nó không thể thay thế hoàn toàn USB. Tôi vẫn mang USB theo để thuyết trình ngoại tuyến
      3. Mô hình doanh thu chưa rõ ràng. Tôi nghi ngờ việc cung cấp miễn phí mà vẫn kiếm tiền được có khả thi hay không
    • Handy là một công cụ được làm rất tốt
    • Có thể tồn tại nhiều giải pháp cho cùng một vấn đề
    • Vâng, speech-to-text thì vốn đã tồn tại rồi
    • Nó rất hợp với trường hợp sử dụng của tôi. Tôi không cần can thiệp vào UI của ứng dụng khác
  • Cảm ơn vì đã chia sẻ. Tôi thích việc nó tập trung vào tốc độ cục bộ và quyền riêng tư
    Tôi đang dùng Hex với mục tiêu tương tự, nên muốn nghe suy nghĩ của bạn về sự khác biệt giữa hai ứng dụng

  • Gần đây, khi LLM local-first ngày càng nhỏ hơn, tôi nghĩ chúng sẽ trở thành hạ tầng cốt lõi cho phát triển ứng dụng
    Giống như Electron trước đây đã giúp việc làm app đẹp trở nên dễ dàng, giờ chỉ cần hy sinh thêm một ít RAM là được

    • Đúng vậy, cuối cùng mọi thứ có lẽ sẽ trở thành kiểu ClaudeVM
      Blog liên quan
  • Có rất nhiều dự án liên quan đến Whisper, nên tôi tò mò không biết đây là mô hình OpenAI cũ hay là phiên bản đã cập nhật
    Tôi đang dùng Parakeet v3, nó nhỏ gọn và rất tốt. Nhưng tôi thắc mắc vì sao Whisper vẫn còn nhiều đến vậy

    • Whisper vẫn là một mô hình ổn định và đáng tin cậy.
      Nó ít bị ảo giác hơn các mô hình mới hơn, và cũng dễ chạy trên GPU AMD.
      Tôi đã tự port Parakeet, nhưng cuối cùng lại quay về với Whisper
    • Tôi cũng đang cân nhắc chuyển sang Parakeet.
      Nhưng tôi dùng nhiều tiếng Ba Lan và thuật ngữ chuyên ngành, nên Whisper v3 phù hợp hơn
    • Whisper hỗ trợ nhiều ngôn ngữ, và có nhiều phiên bản từ tiny tới turbo.
      Vì vậy điểm mạnh của nó là có thể điều chỉnh theo môi trường hệ thống
    • Tôi cũng dùng Parakeet trên macOS thông qua Voice Ink, còn ở nhà thì chạy Kokoro cho chuyển giọng nói → văn bản.
      Tôi cũng kết nối máy chủ Parakeet với điện thoại GrapheneOS
      Bài viết liên quan
  • Tôi thật sự thích dự án này và muốn tích hợp nó vào workflow của mình.
    Tuy vậy, câu kiểu “miễn phí trong khi bị so sánh với các AI lab lớn gọi vốn 80 triệu USD” hơi khiến tôi khó chịu.
    Công việc này không hẳn mang tính nổi loạn, mà đúng hơn là phần nối dài của nghiên cứu hiện có.
    Gọi nó là “spicy” thì có cảm giác hơi cường điệu