{"id":49187599,"url":"https://github.com/ibank/listen-k","last_synced_at":"2026-04-23T05:01:33.921Z","repository":{"id":353139891,"uuid":"1215947840","full_name":"ibank/listen-k","owner":"ibank","description":"Local AI voice dictation for Apple Silicon Macs — first-class Korean, Japanese, and Chinese alongside English. Double-tap a hotkey, speak, and it pastes into the focused app.","archived":false,"fork":false,"pushed_at":"2026-04-22T17:30:54.000Z","size":574,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-04-22T17:36:26.264Z","etag":null,"topics":["apple-silicon","chinese","dictation","electron","japanese","korean","local-first","macos","privacy","speech-to-text","swift","voice-typing","whisper","whisperkit"],"latest_commit_sha":null,"homepage":"https://listenk.com","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ibank.png","metadata":{"files":{"readme":"README.ja.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":["ibank"],"custom":["https://listenk.com/#buy"]}},"created_at":"2026-04-20T12:14:12.000Z","updated_at":"2026-04-22T17:31:17.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/ibank/listen-k","commit_stats":null,"previous_names":["ibank/listen-k"],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/ibank/listen-k","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ibank%2Flisten-k","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ibank%2Flisten-k/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ibank%2Flisten-k/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ibank%2Flisten-k/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ibank","download_url":"https://codeload.github.com/ibank/listen-k/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ibank%2Flisten-k/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32166660,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-23T02:19:40.750Z","status":"ssl_error","status_checked_at":"2026-04-23T02:17:55.737Z","response_time":53,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["apple-silicon","chinese","dictation","electron","japanese","korean","local-first","macos","privacy","speech-to-text","swift","voice-typing","whisper","whisperkit"],"created_at":"2026-04-23T05:01:31.302Z","updated_at":"2026-04-23T05:01:33.913Z","avatar_url":"https://github.com/ibank.png","language":"JavaScript","funding_links":["https://github.com/sponsors/ibank","https://listenk.com/#buy"],"categories":[],"sub_categories":[],"readme":"[English](README.md) · [한국어](README.ko.md) · **日本語** · [简体中文](README.zh-CN.md)\n\n# Listen K\n\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)\n[![GitHub release](https://img.shields.io/github/v/release/ibank/listen-k)](https://github.com/ibank/listen-k/releases)\n[![macOS 14+](https://img.shields.io/badge/macOS-14%2B-blue)](https://developer.apple.com/macos/)\n[![Star on GitHub](https://img.shields.io/github/stars/ibank/listen-k?style=social)](https://github.com/ibank/listen-k)\n\nApple Silicon Mac 向けの **ローカル AI 音声入力** アプリ。**韓国語・日本語・中国語のファーストクラス対応** と英語をサポート。Right Shift を 2 回タップすると HUD が表示され、話した内容がリアルタイムで表示されます。もう一度 2 回タップすると、フォーカスされていたアプリの入力欄に自動でペーストされます。\n\n\n- **エンジン**: WhisperKit (デフォルト, `openai_whisper-large-v3-turbo`) · Apple Speech · whisper.cpp · OpenAI API (BYOK)\n- **後処理**: ルールベース (デフォルト, 依存 0) · 無効 · Ollama (Gemma など) · OpenAI による文体整形\n- **デフォルト設定では一切外部送信しない** — WhisperKit + ルール後処理は 100% ローカル\n- **UI** は韓国語 · 英語 · 日本語 · 簡体字中国語、システムロケールから自動選択\n- **対象**: Apple Silicon · macOS 14 (Sonoma) 以降\n- **ライセンス**: MIT — ソース公開、署名・公証済み DMG は [listenk.com](https://listenk.com) で販売\n\n## なぜ Listen K か?\n\nmacOS 向けの音声入力アプリは既に良いものがいくつもあります。Listen K は次のポジションに位置します:\n\n| | Listen K | [Superwhisper](https://superwhisper.com) | [Wispr Flow](https://wisprflow.ai) | [MacWhisper](https://goodsnooze.gumroad.com/l/macwhisper) | [Whisper Notes](https://whispernotes.app) | Apple 音声入力 |\n|---|---|---|---|---|---|---|\n| **ソース公開** | MIT オープンソース | 非公開 | 非公開 | 非公開 | 非公開 | 非公開 |\n| **デフォルトでローカル処理** | ✅ | ✅ | ❌ (クラウド) | ✅ | ✅ | ✅ |\n| **韓国語・日本語・中国語の品質** | CJK 専用プロンプト調整 | 良好 | 良好 | 不安定 | 良好 | 長文 CJK は弱い |\n| **フォーカス先への自動ペースト** | ✅ | ✅ | ✅ | 手動コピー | 手動コピー | システム内のみ |\n| **ホットキーの自由度** | 5 種 (fn 含む) | 3 種 | fn のみ | 1 種 | 1 種 | 固定 |\n| **価格** | ソース無料 · 署名 DMG $29 | $8.49/月 · $249 永久 | $15/月 | $79.99 永久 | $6.99 買い切り | 無料 (OS 同梱) |\n| **多言語 UI** | ko / en / ja / zh-CN | en のみ | en のみ | en のみ | en のみ | システムロケール |\n\n日本語で毎日文章を書き、テキストをマシンの外に出さず、サブスクは避けたい方に最適です。\n\n\u003e 翻訳の改善 PR は歓迎します。本ファイルは初版機械翻訳ベースであり、ネイティブによる仕上げ磨きを募集しています。\n\n---\n\n## インストール\n\n### 公証済みリリース (Developer ID 署名後の本番経路)\n1. [Releases](https://github.com/ibank/listen-k/releases) から最新の `ListenK-x.y.z-arm64.dmg` をダウンロード\n2. 開いて Listen K を Applications にドラッグ\n3. 起動 — 初回起動時にダッシュボードが自動で開きます\n4. 案内に従って 2 つの権限を許可\n   - **アクセシビリティ**: `/Applications/Listen K.app` を追加 (ホットキー検出と自動ペースト両方をカバー)\n   - **マイク**: 初回録音時に自動でプロンプト\n5. (任意) Ollama 後処理を使うには: `brew install ollama \u0026\u0026 ollama pull gemma3:4b`\n\n初回起動時に Core ML がモデルをコンパイルするため約 40 秒待機します。キャッシュ後は即座に準備完了になります。\n\n### Ad-hoc 開発ビルド (v0.3 以下)\n公証前のビルドを入手された場合、初回のみ Gatekeeper 回避が必要です:\n- 短縮: `xattr -cr \"/Applications/Listen K.app\"`\n- または: システム設定 → プライバシーとセキュリティ → \"Listen K はブロックされました\" の横の **このまま開く**\n\n## 使い方\n\n1. テキストを入れたい場所にカーソルを置く\n2. **⇧⇧** (Right Shift を 2 回タップ) — HUD が表示され録音開始\n3. 話す (HUD にリアルタイムで文字が流れる)\n4. 再度 **⇧⇧** または HUD の `✓` — 後処理 → フォーカス先に自動ペースト\n5. キャンセル: HUD の `✕`\n\n**代替ホットキー**: `⌥⌥` / `⌃⌃` / `⌘⌘` / `fn`、設定で変更可能。メニューバーアイコンクリックでトレイポップオーバーが開きます。\n\n---\n\n## 設定\n\n`~/Library/Application Support/Listen K/config.json` に永続化されます (アプリが直接更新):\n\n| キー | 値 | 説明 |\n|---|---|---|\n| `hotkey` | `rshift-double` (デフォルト) · `ropt-double` · `rctl-double` · `rcmd-double` · `fn` | グローバルホットキー |\n| `engine` | `whisperkit` (デフォルト) · `apple` · `whisper.cpp` · `openai` | 文字起こしエンジン |\n| `language` | `ko-KR` · `en-US` · `ja-JP` · `zh-CN` | Whisper 言語ヒント |\n| `uiLocale` | `ko` · `en` · `ja` · `zh-CN` | UI 言語 (デフォルトはシステムロケール) |\n| `theme` | `system` (デフォルト) · `light` · `dark` | テーマ |\n| `streaming` | `true` (デフォルト) · `false` | HUD でリアルタイム文字を表示するか |\n| `mode` | `rules` (デフォルト) · `off` · `ollama` · `translate` | 後処理 |\n\n初回起動マーカー: 同じディレクトリの `.first-run-done` (削除すると再度ダッシュボードが自動で開きます)\n\n---\n\n## ソースからビルド\n\n要件: macOS 14+, Apple Silicon, Xcode 15+, Node.js 20 LTS。\n\n```bash\ngit clone https://github.com/ibank/listen-k.git\ncd listen-k\nnpm install\nnpm run build:helper       # Swift ヘルパー: fn-listener, paste-helper, focus-helper\nnpm run build:transcribe   # bin/transcribe-helper (WhisperKit)\nnpm run model:whisperkit   # Core ML モデル (~632 MB) → models/whisperkit/\n\nnpm start                  # 開発モード\nnpm run dist               # DMG ビルド (predist で上記 3 つを自動実行)\nnpm run icon               # アイコン再生成\n```\n\n別のモデルバリアントに切り替える:\n```bash\nbash scripts/download-whisperkit-model.sh openai_whisper-base\nbash scripts/download-whisperkit-model.sh openai_whisper-large-v3-v20240930_626MB\n```\n`models/whisperkit/` 以下のフォルダから品質優先順位順に自動選択されます。\n\n## トラブルシューティング\n\n- **HUD が出るがテキストが表示されない**: ターミナルで `npm start` を実行し `[audio] buf=` ログを確認。buf が 0 のままならマイク権限が不足。\n- **幻覚 (発話していないのに \"Thank you for watching\" など)**: マイクが無音を取り込んでいます。アプリバンドルにマイク権限が付与されているか確認。`turbo` モデルは小さいモデルより幻覚が少ない。\n- **⇧⇧ を押しても反応しない**: ダッシュボードの「ホットキー検出」行を確認。アクセシビリティが有効なら緑。それでも反応しない場合は Right Shift の 2 回タップ間隔を 380ms 以内に。\n- **フォーカス復元失敗、ペーストが Listen K に入る**: バンドル ID 認識失敗が多い。一般的な macOS アプリでない場合に発生 (Web ブラウザのタブ内ウィジェットなど)。\n- **Core ML 読み込みが 1 分以上**: Neural Engine コンパイルが走っている可能性 (現状コードは cpuAndGPU のみ使うため通常 ~40 秒)。`rm -rf ~/Library/Caches/transcribe-helper` 後に再実行。\n\n---\n\n## コントリビュート\n\nIssue・PR・翻訳 を歓迎します。[CONTRIBUTING.md](CONTRIBUTING.md) と [Code of Conduct](CODE_OF_CONDUCT.md) を参照。セキュリティ問題は [SECURITY.md](SECURITY.md) の手順で。\n\n## ライセンス\n\nMIT — [LICENSE](LICENSE) 参照。同梱ライブラリのライセンスは [THIRD_PARTY_LICENSES.md](THIRD_PARTY_LICENSES.md) に記載。\n\n## 商標\n\n**Listen K** という名称、ロゴ、アプリアイコンは © 2026 ibank が保有しており、**ソースコードの MIT ライセンスには含まれません**。フォークする場合は独自の名称とアイコンに変更してください。\n\n## プロジェクトのサポート\n\n[listenk.com](https://listenk.com) で公証済み DMG を購入することで開発資金になります。[GitHub Sponsors](https://github.com/sponsors/ibank) からの継続的な支援も可能です。\n\n## ロードマップ\n\n- [x] ライトモード (`prefers-color-scheme`)\n- [x] 文字起こし履歴\n- [x] Apple Speech / OpenAI / whisper.cpp エンジン対応\n- [x] 4 ロケール UI\n- [ ] 自動アップデート (`electron-updater`、公証後)\n- [ ] アプリ別トーン・スタイル自動切替\n- [ ] 個人辞書 / カスタム発音辞書\n- [ ] チームライセンス\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fibank%2Flisten-k","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fibank%2Flisten-k","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fibank%2Flisten-k/lists"}