Skip to content

Latest commit

 

History

History
263 lines (176 loc) · 11 KB

File metadata and controls

263 lines (176 loc) · 11 KB

OpenSW

オープンソース音声認識デスクトップアプリケーション

OpenSW Logo

English README

Tauri React Rust License

概要

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

ソースからビルド

必要環境

プラットフォーム別の要件

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:build

Whisper モデルのダウンロード

Whisper 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 以上を推奨します。

使い方

クイックスタート

  1. Whisper モデルを選択 – 初回起動時、「Select」をクリックしてダウンロード済みの Whisper GGML モデルファイル(.bin)を選択します。

  2. オーディオ入力を設定 – ドロップダウンから使用するマイクを選択します。

  3. 録音を開始Ctrl+Alt+Space を押すか、トレイアイコンをクリックします。

  4. 録音を停止 – 再度 Ctrl+Alt+Space を押します。音声が文字起こしされ、クリップボードにコピーされます。

オプション:Ollama 連携

LLM によるテキスト修正を有効にするには:

  1. Ollama をインストールして起動
  2. モデルをプル(例:ollama pull llama3.2
  3. OpenSW で Ollama 設定を構成:
    • URL: http://localhost:11434(デフォルト)
    • Model: インストール済みのモデルを選択
    • Prompt: 修正用プロンプトをカスタマイズ

トラブルシューティング

macOS: "OpenSW.app は壊れているため開けません"

アプリを起動しようとした際に 「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 ランタイム