複数デバイスで録音された音声ファイルを自動同期し、効率的な文字起こしを支援するWebアプリケーション。
🔗 デモサイト 📖 技術ガイド - 動作原理と技術仕様の詳細
-
複数MP3ファイルの同期再生
- 最大4つまでのMP3ファイルを同時にアップロード
- 各ファイルごとのオフセット調整(±30秒)
- 個別音量調整とミュート機能
- 自動同期機能(相互相関法)
-
音声再生制御
- 再生/一時停止/シーク
- 再生速度調整(0.5x〜2.0x)
- 5秒の巻き戻し/早送り
-
文字起こし機能
- 簡易文字起こし(テンプレート作成)
- マイク入力対応(スピーカー音声の録音)
- 手動でのセグメント追加と編集
- タイムスタンプ付きセグメント管理
-
テキスト編集
- 発話者管理(インタビュアー/回答者)
- セグメントごとの発話者割り当て
- 音声再生位置とテキストの同期
-
データ管理
- IndexedDBによる音声ファイル永続化
- プロジェクトデータの自動保存
- テキストファイルとしてエクスポート
- Node.js 18以上
- Chrome または Edge ブラウザ(推奨)
# リポジトリのクローン
git clone https://github.com/code4history/oral-history-tool.git
cd oral-history-tool
# 依存関係のインストール
npm install
# 開発サーバーの起動
npm run devブラウザで http://localhost:5173 を開きます。
「新規プロジェクト」ボタンをクリックして新しいプロジェクトを作成します。
「MP3ファイルを追加」ボタンをクリックして、複数の録音ファイルをアップロードします。
- 同じインタビューを異なるデバイスで録音したファイルを選択
- 最大4ファイルまで同時に扱えます
「自動同期」ボタンをクリックして、相互相関法により自動的に同期タイミングを検出します。
各ファイルのオフセットスライダーを調整して、音声を同期させます:
- プラス方向:音声を遅らせる
- マイナス方向:音声を早める
- 特徴的な音(拍手など)を目印に調整すると良いです
- 「簡易文字起こし」ボタンをクリック
- テンプレートセグメントが作成されます
- 音声を聞きながらテキストを編集
- マイク使用の確認ダイアログで「OK」を選択
- スピーカーの音をマイクに近づける
- リアルタイムで文字起こしが行われます
「エクスポート」ボタンをクリックして、文字起こし結果をテキストファイルとして保存します。
- フロントエンド: Vue 3 + TypeScript + Vite
- データ管理: IndexedDB (Dexie.js)
- 音声処理: Web Audio API
- 文字起こし: Web Speech API
- MP3ファイルのみ対応
- Web Speech APIはマイク入力のみ対応
- 波形表示による視覚的同期は未実装
- 他の音声フォーマット対応(WAV, M4A等)
- OpenAI Whisper APIなど外部APIの統合
- 波形表示による視覚的な同期調整
- より長時間の連続文字起こし
- 話者自動分離機能
- Word/CSV形式でのエクスポート
MIT
code4history
Claude Codeハッカソン2025にて開発