OpenSW は、音声をテキストに変換するためのクロスプラットフォーム対応デスクトップアプリケーションです。OpenAI Whisper を使用してローカルで音声認識を行い、オプションで Ollama と連携して LLM による文章の修正・加工ができます。
- 🎤 ローカル音声認識 – Whisper によるオフライン音声認識(クラウド不要)
- ⚡ GPU アクセラレーション – Windows では CUDA、macOS では Metal による高速推論
- 🤖 LLM によるテキスト修正 – Ollama 連携でフィラー除去・句読点補正が可能
- ⌨️ グローバルショートカット – どの画面からでも
Ctrl+Alt+Spaceで録音開始/停止 - 📋 自動クリップボードコピー – 文字起こし結果を自動的にクリップボードにコピー
- 🔔 システム通知 – 文字起こし完了時に通知
- 📍 システムトレイ常駐 – バックグラウンドで動作し、トレイアイコンからアクセス可能
- 🖥️ コンパクト録音モード – 録音中はミニマルなフローティングウィンドウを表示
| 録音中 | 文字起こし中 | 修正中 | コピー完了 |
|---|---|---|---|
![]() |
![]() |
![]() |
![]() |
Windows および macOS(Apple Silicon)向けのビルド済みバイナリを提供しています:
| プラットフォーム | ファイル |
|---|---|
| Windows (exe) | OpenSW.exe |
| Windows (msi) | OpenSW_0.1.0_x64_en-US.msi |
| macOS (Apple Silicon) | OpenSW_0.1.0_aarch64.dmg |
- Bun(または npm/yarn)
- Rust(1.70 以上)
- Whisper GGML モデル(tiny, base, small, medium, large のいずれか)
Windows:
- Visual Studio Build Tools 2019 以上
- CUDA Toolkit(GPU アクセラレーション用、推奨)
macOS:
- Xcode Command Line Tools
- Metal は自動的に GPU アクセラレーションに使用されます
Linux:
- 標準的な開発ツール(
build-essentialなど) - CUDA Toolkit(GPU アクセラレーション用)
# リポジトリをクローン
git clone https://github.com/liebe-magi/OpenSW.git
cd OpenSW
# 依存関係をインストール
bun install
# 開発モードで実行
bun run tauri dev
# 本番用ビルド(プラットフォーム固有の環境変数を自動設定)
bun run tauri:buildWhisper GGML モデルを以下からダウンロードしてください:
👉 https://huggingface.co/ggerganov/whisper.cpp/tree/main
| モデル | サイズ | 精度 | 速度 |
|---|---|---|---|
ggml-tiny.bin |
約 75 MB | 低 | 最速 |
ggml-base.bin |
約 142 MB | 中 | 速い |
ggml-small.bin |
約 466 MB | 良 | 普通 |
ggml-medium.bin |
約 1.5 GB | 高 | 遅い |
ggml-large-v3-turbo.bin |
約 1.6 GB | 高 | 普通 |
ggml-large-v3.bin |
約 3 GB | 最高 | 最遅 |
ヒント: 日本語の文字起こしには、精度の観点から
ggml-medium.bin以上を推奨します。
-
Whisper モデルを選択 – 初回起動時、「Select」をクリックしてダウンロード済みの Whisper GGML モデルファイル(
.bin)を選択します。 -
オーディオ入力を設定 – ドロップダウンから使用するマイクを選択します。
-
録音を開始 –
Ctrl+Alt+Spaceを押すか、トレイアイコンをクリックします。 -
録音を停止 – 再度
Ctrl+Alt+Spaceを押します。音声が文字起こしされ、クリップボードにコピーされます。
LLM によるテキスト修正を有効にするには:
- Ollama をインストールして起動
- モデルをプル(例:
ollama pull llama3.2) - OpenSW で Ollama 設定を構成:
- URL:
http://localhost:11434(デフォルト) - Model: インストール済みのモデルを選択
- Prompt: 修正用プロンプトをカスタマイズ
- URL:
アプリを起動しようとした際に 「OpenSW.app は壊れているため開けません。ゴミ箱に入れる必要があります。」 というメッセージが表示される場合があります。これはアプリが Apple による公証(Notarization)を受けていないため、macOS のセキュリティ機能(Gatekeeper)によって実行がブロックされている状態です。ファイル自体は破損していません。
解決策:
ターミナルで以下のコマンドを実行して、アプリの検疫属性(Quarantine)を解除してください:
xattr -cr /Applications/OpenSW.app(アプリを別の場所にインストールした場合は、パスを適宜変更してください)
すべての設定はローカルに保存され、セッション間で保持されます:
| 設定 | 説明 |
|---|---|
| Audio Device | 入力マイクの選択 |
| Whisper Model | GGML モデルファイルのパス |
| Language | 文字起こし言語(日本語/英語) |
| Ollama URL | Ollama サーバーアドレス |
| Ollama Model | テキスト修正用の LLM モデル |
| Prompt Template | 修正用カスタムプロンプト |
- フロントエンド: React 18、TypeScript、Vite
- バックエンド: Rust、Tauri 2.0
- 音声認識: whisper-rs(whisper.cpp バインディング)
- オーディオ処理: cpal、hound、rodio
- LLM 連携: reqwest 経由の Ollama API
OpenSW には自動更新機能が組み込まれています。配布されるバイナリはセキュアな更新のために署名されています。
ソースからビルドする場合、署名は任意です:
- 署名なし: 開発ビルドは通常通り動作します(
bun run tauri dev) - 署名あり: 自動更新付きの署名済みリリースを配布する場合のみ必要
# 署名キーを生成
bunx tauri signer generate -w ~/.tauri/opensw.key
# .env.example を .env.local にコピーして設定
cp .env.example .env.local
# .env.local にキーのパスとパスワードを設定
# 署名付きビルド
bun run tauri:build
# リリース用の latest.json を生成
bun run release:prepare注意:
tauri.conf.jsonの公開鍵は更新の検証に使用されます。このプロジェクトをフォークして自動更新を使用する場合は、独自のキーペアを生成し、公開鍵を更新する必要があります。
OpenSW/
├── src/ # React フロントエンド
│ ├── components/ # UI コンポーネント
│ └── App.tsx
├── src-tauri/ # Rust バックエンド
│ ├── src/
│ │ ├── main.rs # アプリケーションエントリポイント
│ │ ├── audio.rs # 録音/再生
│ │ ├── ollama.rs # Ollama API クライアント
│ │ ├── clipboard.rs # クリップボード操作
│ │ └── tray.rs # システムトレイ設定
│ └── Cargo.toml
└── package.json
# 開発
bun run dev # Vite 開発サーバー起動
bun run tauri dev # Tauri を開発モードで実行
# ビルド
bun run build # フロントエンドビルド
bun run tauri:build # 配布用ビルド(署名設定時は署名付き)
bun run release:prepare # 更新用の latest.json を生成
# コード品質
bun run lint # ESLint 実行
bun run format # Prettier でフォーマットコントリビューションを歓迎します!Issue や Pull Request をお気軽にお寄せください。
このプロジェクトは以下のいずれかのライセンスの下でデュアルライセンスされています:
お好みに応じてお選びください。
- OpenAI Whisper – 音声認識モデル
- whisper.cpp – 軽量 Whisper 実装
- Tauri – クロスプラットフォームデスクトップフレームワーク
- Ollama – ローカル LLM ランタイム





