- C# 96.2%
- PowerShell 3.8%
- Renamed `TryAdoptFinalizationTarget` to `TryAdoptTrackedTarget` in `BufferedEditingCoordinator` for clarity. - Updated logging messages in `BufferedEditingCoordinator` to reflect new terminology. - Changed tooltip text in `InitialSetupForm` and `SettingsForm` to clarify AI correction functionality. - Modified model compatibility descriptions in `LlmModelSelectionCatalog` for consistency. - Enhanced error messages in `ManualModelImportForm` for better user understanding. - Added new `ExternalTargetTracker` class to manage external window focus tracking using WinEvent hooks. - Removed unused event handling for external target observation in `TranscriptionEditorForm` and related classes. - Updated UI text in `ProgressForm` and `SettingsForm` to improve clarity and user experience. - Incremented version number to 1.3.6.0 in project file. |
||
|---|---|---|
| artifacts | ||
| docs | ||
| images | ||
| Koekaku.Package | ||
| scripts | ||
| SherpaSTT | ||
| SherpaSTT.ModelTests | ||
| SherpaSTT.TextTests | ||
| tools | ||
| Transcriber_service/Services | ||
| WapProjTemplate1 | ||
| .gitignore | ||
| create_msix.ps1 | ||
| favicon (1).ico | ||
| favicon.ico | ||
| output.txt | ||
| PROJECT_SUMMARY.md | ||
| README.md | ||
| SENSEVOICE_IMPLEMENTATION.md | ||
| start.wav | ||
| StoreCert.pfx | ||
| storeicon.png | ||
| storeicon_transparent.ico | ||
| storeicon_transparent.png | ||
KoeKaku (声書く) - 完全ローカルの音声入力 & 文字起こしツール
Windowsの音声入力機能を代替する、開発者・パワーユーザー向けの高速・高精度な音声入力ツールです。 「Win+H」よりも柔軟なカスタマイズが可能で、完全にローカルで動作するためプライバシーも安心です。
✨ 特徴
- IME非依存の確実な入力:
SendInputAPI (UNICODE) を使用し、IMEの状態(かな/英数)に関わらず正確に入力。 - 高精度な日本語認識:
SherpaOnnx+Parakeet TDT 0.6b v2モデルを採用。 - 完全ローカル動作: 音声データは外部に送信されず、すべてローカルPC上で処理されます。
- 自動セットアップ: 初回起動時に必要なモデル(約720MB)を自動的にダウンロードします。
- 管理者権限不要: 通常のユーザー権限で動作し、スタートアップ登録も可能です。
- Pro版機能: 制限解除でさらに便利にカスタマイズ(後述)。
💎 Pro版 vs 無料版
本アプリは「基本無料」でご利用いただけますが、設定変更などのカスタマイズ機能には制限があります。
[Pro版] ・起動時間制限: 無制限 (常時起動可能) ・音声入力機能: 利用可能 ・マイク感度(VAD)調整: 変更可能 ・ホットキー変更: 自由に変更可能 ・効果音の変更: 好きなWAVファイルに変更可能 ・スタートアップ登録: 自動起動設定が可能
[無料版] ・起動時間制限: 1時間 (再起動でリセットされます) ・音声入力機能: 利用可能 (Pro版と同等) ・マイク感度(VAD)調整: 固定 (変更不可) ・ホットキー変更: 固定 (Ctrl+Alt+H のみ) ・効果音の変更: 固定 (標準音のみ) ・スタートアップ登録: 利用不可
Pro版の購入方法: 設定画面の「情報」タブから「Pro版を購入 / 復元」ボタンをクリックすることで、Microsoft Store経由で購入できます。
🚀 セットアップ
1. 必要な環境
- OS: Windows 10/11 (64bit)
- Runtime: .NET 8.0 Desktop Runtime
- インターネット接続: 初回起動時のモデルダウンロードに必要
2. 起動
- 実行
KoeKaku.exeを実行します。- 初回起動時はモデルのダウンロードが行われます(数分かかる場合があります)。
- 常駐
- 起動するとタスクトレイにアイコンが表示され、バックグラウンドで待機します。
- 「設定」から「Windows起動時に実行する」を有効にすると便利です。
モデルを自動ダウンロードできない場合
KoeKakuは、Parakeet音声認識モデルを公式配布元から取得できない場合、KoeKakuの固定ミラーZIPへ自動的にフォールバックします。AI補正用の標準Qwen 3.5 2Bモデルは、固定リビジョンのHugging Face、KoeKaku固定ミラーの順に取得を試みます。
すべての自動取得に失敗した場合は、手動インポート画面が表示されます。
- Parakeet: ブラウザで
parakeet-tdt.zipを取得し、展開せずZIPのまま選択します。 - 標準モデル (Qwen 3.5 2B): ブラウザで
Qwen3.5-2B-Q4_K_M.ggufを取得し、そのGGUFファイルを選択します(約1.2GB)。 - 高精度モデル (Gemma 4): ブラウザで
gemma-4-E4B-it-qat-UD-Q4_K_XL.ggufを取得し、そのGGUFファイルを選択します。約4.0GBの保存領域に加えて実行用メモリが必要です。 - 設定画面の「モデル管理」からも、再ダウンロードと手動インポートを実行できます。
インポート時にはファイルサイズとSHA-256を検証します。更新中も既存モデルはバックアップされ、失敗または強制終了した場合は次回起動時に復元されます。
AI補正の既定値はQwen 3.5 2B標準モデルです。「設定」→「AI テキスト補正」→「使用するモデル」で高精度Gemma 4へ切り替えられます。通常の追加ダウンロードではモデルは個別に保持されます。旧標準からの明示的な移行時だけ、検証・ロード・設定保存の完了後に移行元モデルを削除します。
Note
: 管理者権限で動作しているアプリケーション(タスクマネージャーや一部のインストーラーなど)に入力したい場合は、本アプリも「管理者として実行」する必要があります。
📖 使い方
音声入力の開始
- 入力したいテキストボックスやエディタをクリックしてアクティブにします。
- 設定したホットキー(デフォルト:
Ctrl + Alt + H)を押します。- または、タスクトレイアイコンをダブルクリックしても設定画面が開けます。
- 「ピコッ」という開始音が鳴り、画面左上に青いオーバーレイ(認識中インジケータ)が表示されます。
- マイクに向かって話しかけてください。
- 話し終わる(無音が続く)と自動的に認識され、テキストが入力されます。
入力の停止
以下のいずれかの操作で、認識を中断します:
- キーボードの任意のキーを押す
- マウスをクリックする
- 別のウィンドウにフォーカスを移す
- ホットキーをもう一度押す
⚙️ 設定のカスタマイズ
タスクトレイのアイコンを右クリックし、「設定」を選択すると設定画面が開きます。
1. 一般
- Windows起動時に実行する: PC起動時に自動的にアプリを起動します。
- AI テキスト補正: 聞き取った文章をAIモデルで補正し、わかりやすい日本語として出力します。詳しくは「AI テキスト補正」を参照してください。
AI テキスト補正
AI テキスト補正を有効にすると、音声認識後の文章をローカルLLMで見直し、自然な日本語に補正してから入力できます。クラウド送信は行わず、音声データ、文字起こし結果、補正処理はPC上で完結します。
特徴とメリット
- 音声認識の誤変換、同音異義語、表記ゆれを補正し、読みやすい日本語に整えます。
- 句読点や文の区切りが自然になり、メール、チャット、メモ、議事録の下書きに使いやすくなります。
- 話し言葉をそのまま入力するだけで、用途に応じて自然な文章へ整形できます。
- LLM補正モデルは最後の使用から30分経過すると自動でアンロードされ、メモリ使用量を抑えます。次にホットキーを押すと再ロードされます。
- ASRモデルは入力開始の即時性を優先して常にロードされます。
モデルのダウンロードと選択
- 高速補正モデル: 軽くて待ち時間が短いモデルです。普段使い、短文入力、PC負荷を抑えたい場合に向いています。
- 高精度補正モデル: より大きいモデルです。長めの文章や自然さを重視したい場合に向いています。
- 両方のモデルをダウンロード済みの場合のみ、設定画面の「補正モデル」で使用するモデルを選択できます。
バックエンド
- 自動: 通常はこちらを選びます。環境に合わせて適切な実行方式を選択します。
- Vulkan (GPU): 対応GPUがある場合、補正が速くなることがあります。
- CPU (AVX2): GPUとの相性問題がある場合や、安定性を優先したい場合に選びます。
補正モード
- 最新のみ補正: 最新の発話だけを補正します。最も軽く、短い音声入力やリアルタイム性を重視する用途に向いています。前後の文脈はあまり見ません。
- 全文を見て補正: セッション内の前後文脈を参考にし、発話した順序や内容は保ったまま自然な日本語に整えます。文脈に依存する誤変換の補正に向いています。最新のみ補正より少し重く、文章の順番や内容を大きく書き換える用途ではありません。
- わかりやすく書き換え: セッション内の内容を読み取り、より分かりやすい文章に書き換えます。メール文、説明文、報告文の下書きや、話し言葉を自然な文章に整えたいときに向いています。3モードの中で最も重く、短文では大きく変わりすぎる場合があるため、安全判定で破棄されることがあります。厳密に発話内容をそのまま残したい場合は「全文を見て補正」をおすすめします。
読み補正
- 通常補正: ASR結果の文字列をそのままLLMに渡して補正します。処理が軽い一方で、漢字誤変換にLLMが引きずられる場合があります。
- ひらがな併用補正: ASR結果に加えて、Windowsの読み解析で生成したひらがな読みもLLMに渡します。漢字誤変換や同音異義語の補正に強く、日本語の補正品質が上がりやすくなります。読み生成処理が入るため通常補正より少し重く、Windows環境、MSIX環境、JapanesePhoneticAnalyzer の利用可否に依存します。利用できない場合は通常補正へフォールバックします。
おすすめ設定例
| 目的 | おすすめ設定 |
|---|---|
| 速度重視 | 通常補正 + 最新のみ補正 |
| 日本語の誤変換対策 | ひらがな併用補正 + 最新のみ補正 |
| 文章入力を自然にしたい | ひらがな併用補正 + 全文を見て補正 |
| 説明文や下書きを整えたい | ひらがな併用補正 + わかりやすく書き換え |
注意事項
- 小型LLMでは出力が不安定になることがあります。
- 補正結果は終了マーカーまで正常に生成された場合だけ採用します。不自然な出力、長すぎる出力、説明文混入、コンテキスト容量不足などは部分修復せず破棄し、ASR原文へフォールバックします。
- ひらがな併用補正では、補正後の文章を再度ひらがな化し、入力読みとの編集距離を検査します。出力の過剰な長文化や読みの大幅な変化は破棄します。
- コンテキスト長の既定値は1024です。出力上限は入力長と補正モードから自動計算され、1024トークン内に安全に収まらない場合は補正を行いません。
[Debug] LogTextContentの既定値はfalseです。falseでは従来どおり本文を記録せず、文字数、補正モード、フォールバック理由、モード別の最大プロンプトトークン数などの統計だけを記録します。- 調査時に
[Debug] LogTextContent=trueへ変更すると、ASR原文、ひらがな文、LLM出力全文、<result>から取得した補正文、最終出力文を[TextContent]ログとして記録します。音声入力の内容がそのままログに残るため、調査完了後はfalseへ戻してください。
使い方
- 設定の「一般」タブで「AI テキスト補正を使用する」をオンにします。
- 「高速補正モデルをダウンロード」または「高精度補正モデルをダウンロード」を押してモデルを準備します。
- 必要に応じて「読み補正」「バックエンド」「補正モデル」「補正モード」を選びます。
- 設定を保存して再起動すると、次回の音声入力から補正が有効になります。
AI補正の出力プロトコルとトークン境界の高速回帰テストは、リポジトリ直下で次のコマンドを実行します。
dotnet run --project .\SherpaSTT.TextTests\SherpaSTT.TextTests.csproj -c Release
2. 音声
- マイクデバイス: 使用するマイクを選択します。
- 聞き取り中音量ミュート: ONの場合、音声認識中はPCのスピーカー音量を一時的にミュートし、誤ってシステム音や動画の音声を拾ってしまうのを防ぎます(認識が完了または中断すると元の音量に戻ります)。
- 開始音: 入力開始時に再生するWAVファイルを指定できます(デフォルト:
start.wav)。
3. ホットキー
- キー/ボタン: Ctrl, Alt, Shift, Win の組み合わせたキーボードのキー、またはマウスのボタン(左/右/中/X1/X2)を割り当て可能。
- 設定ボタン: 押下後に実際のキー/ボタンを入力して設定します。
4. 詳細
- マイク感度 (VAD): 声を拾う感度を調整します(高いほど小さな声も拾いますが、雑音も拾いやすくなります)。
- ビーム幅: Beam Search時の探索幅(4〜10推奨)。大きいほど処理が遅くなります
5. 情報
- アプリケーションのバージョン、開発者情報、ライセンス情報を確認できます。
- AIコンテンツを通報: 生成されたAIコンテンツに問題がある場合、開発者へ通報することができます。
📜 ライセンス
本ソフトウェアは以下のオープンソースライブラリを使用しています:
- SherpaOnnx: Apache 2.0 License
- Parakeet TDT 0.6b v2: Copyright (c) 2024 NVIDIA CORPORATION & AFFILIATES. All rights reserved. Licensed under the Creative Commons Attribution 4.0 International (CC-BY-4.0) (https://creativecommons.org/licenses/by/4.0/)
- Qwen3: Apache 2.0 License, Copyright (c) 2024 Alibaba Cloud
- LLamaSharp: MIT License, Copyright (c) 2023 SciSharp STACK
- NAudio: MIT License
- .NET Runtime: MIT License