Skip to content

code4history/oral-history-tool

Repository files navigation

オーラルヒストリー文字起こし支援ツール

複数デバイスで録音された音声ファイルを自動同期し、効率的な文字起こしを支援する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 を開きます。

使い方

1. プロジェクトの作成

「新規プロジェクト」ボタンをクリックして新しいプロジェクトを作成します。

2. 音声ファイルのアップロード

「MP3ファイルを追加」ボタンをクリックして、複数の録音ファイルをアップロードします。

  • 同じインタビューを異なるデバイスで録音したファイルを選択
  • 最大4ファイルまで同時に扱えます

3. 音声の同期調整

自動同期

「自動同期」ボタンをクリックして、相互相関法により自動的に同期タイミングを検出します。

手動調整

各ファイルのオフセットスライダーを調整して、音声を同期させます:

  • プラス方向:音声を遅らせる
  • マイナス方向:音声を早める
  • 特徴的な音(拍手など)を目印に調整すると良いです

4. 文字起こし

簡易文字起こし

  1. 「簡易文字起こし」ボタンをクリック
  2. テンプレートセグメントが作成されます
  3. 音声を聞きながらテキストを編集

マイク入力(オプション)

  1. マイク使用の確認ダイアログで「OK」を選択
  2. スピーカーの音をマイクに近づける
  3. リアルタイムで文字起こしが行われます

5. エクスポート

「エクスポート」ボタンをクリックして、文字起こし結果をテキストファイルとして保存します。

技術スタック

  • フロントエンド: Vue 3 + TypeScript + Vite
  • データ管理: IndexedDB (Dexie.js)
  • 音声処理: Web Audio API
  • 文字起こし: Web Speech API

制限事項(MVP版)

  • MP3ファイルのみ対応
  • Web Speech APIはマイク入力のみ対応
  • 波形表示による視覚的同期は未実装

今後の改善予定

  • 他の音声フォーマット対応(WAV, M4A等)
  • OpenAI Whisper APIなど外部APIの統合
  • 波形表示による視覚的な同期調整
  • より長時間の連続文字起こし
  • 話者自動分離機能
  • Word/CSV形式でのエクスポート

ライセンス

MIT

開発者

code4history

謝辞

Claude Codeハッカソン2025にて開発

About

オーラルヒストリー文字起こし支援ツール

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages