OBS配信向けリアルタイム字幕生成アプリケーション。ローカルで動作するWhisper.cppを使用して音声をリアルタイムで書き起こし、OBSのブラウザソースで表示できる字幕を生成します。
- リアルタイム書き起こし: whisper.cppによる高精度な音声認識
- OBS連携: ブラウザソースで簡単に字幕をオーバーレイ表示
- 字幕スタイル設定: フォント、サイズ、色、縁取り、影、文字間などをカスタマイズ
- プリセット保存: 複数のスタイルプリセットを保存・切り替え
- リアルタイムスタイル反映: スタイル変更が即座にOBS画面に反映
- 書き起こし履歴: セッションごとのログ保存・閲覧
- エクスポート: SRT、JSON、TXT形式での書き出し
- Node.js 18+
- whisper.cpp (ビルド済み)
- Whisperモデルファイル (推奨: large-v3)
# whisper.cpp をクローン
git clone https://github.com/ggerganov/whisper.cpp.git
cd whisper.cpp
# ビルド
cmake -B build
cmake --build build --config Release
# モデルをダウンロード (large-v3 推奨)
./models/download-ggml-model.sh large-v3# 依存関係をインストール
yarn install
# 環境変数を設定
cp .env.example .env
# .env を編集して whisper.cpp のパスを設定# Prismaマイグレーションを実行
npx prisma migrate devyarn devhttp://localhost:3000 を開いてください。
| 変数名 | 説明 | 例 |
|---|---|---|
DATABASE_URL |
SQLiteデータベースのパス | file:./prisma/dev.db |
WHISPER_PATH |
whisper-cliバイナリのパス | /path/to/whisper.cpp/build/bin/whisper-cli |
WHISPER_MODEL |
Whisperモデルファイルのパス | /path/to/whisper.cpp/models/ggml-large-v3.bin |
- ダッシュボード (
/dashboard) でマイクを選択 - 開始ボタンで書き起こし開始
- 字幕URL をOBSのブラウザソースに設定
- OBSで「ソース」→「ブラウザ」を追加
- URLに
http://localhost:3000/captionを入力 - 幅: 1920、高さ: 1080 (配信解像度に合わせて調整)
- 「カスタムCSS」は空のままでOK
ダッシュボードの「字幕スタイル設定」で以下を調整できます:
- フォント (Noto Sans JP, M PLUS 1p, Kosugi Maru, Keifont)
- フォントサイズ
- 文字色
- 縁取り (色・太さ)
- 影 (色・ぼかし・オフセット)
- 文字間
スタイルを変更すると、OBS画面にリアルタイムで反映されます。
- 新規保存: 現在のスタイルを名前をつけて保存
- 上書き: 選択中のプリセットを更新
- デフォルト: 次回起動時に自動適用されるプリセットを設定
/history で過去の書き起こしセッションを閲覧できます。
-
フォントファイル (.ttf, .otf) を
public/fonts/に配置 -
src/app/globals.cssに@font-faceを追加:@font-face { font-family: "フォント名"; src: url("/fonts/フォントファイル.ttf") format("truetype"); font-weight: normal; font-style: normal; font-display: swap; }
-
src/components/RecordingPanel.tsxのfonts配列に追加
- フレームワーク: Next.js 16 (App Router)
- データベース: SQLite + Prisma 7
- リアルタイム通信: Server-Sent Events (SSE)
- 音声認識: whisper.cpp (ローカル実行)
- スタイリング: Tailwind CSS
このソフトウェアは独自ライセンスの下で提供されています。詳細は LICENSE を参照してください。
- 個人利用・学習目的での使用: 許可
- 商用利用: 禁止 (著作権者の書面による許可が必要)
- 再配布・改変版の配布: 禁止