日本語中心の音声文字起こしWebツール(OpenAI先行、Gemini拡張対応)
- ユーザー登録 / ログイン
- 任意MFA(TOTP)セットアップ + 有効化API
- ユーザーごとのプロジェクト分離
- 音声アップロード(署名付きURL)
- Redisキュー投入
- Workerによる文字起こし(OpenAI / Gemini provider切替)
- 文字起こし/セグメント保存
- 話者ラベル保存(speaker profile)
- 自動同定の基盤(マッチ履歴、再同定API、埋め込み学習テーブル)
- エクスポート(txt/srt/json)
- OPENAIだけでは話者埋め込みを直接取得しにくいため、 現在は「自動同定の土台」は実装済みだが、埋め込み供給を別providerで強化する前提。
- そのため、現時点では話者分離精度は限定的(多くが
SPEAKER_00になる)。 - 次段でDiarization/Voiceprint provider(外部API)を追加すると、継続同定精度を大幅に上げられる。
cp .env.example .env
# .env に OPENAI_API_KEY を設定(Geminiを使うなら GEMINI_API_KEY も)
sudo docker compose up -d --buildWeb: http://localhost:3000
MinIO Console: http://localhost:9001
POST /api/auth/registerPOST /api/auth/loginPOST /api/auth/mfa/setupPOST /api/auth/mfa/enableGET/POST /api/projectsPOST /api/audio/upload-urlPOST /api/audio/enqueue/:idGET /api/audio/:idGET /api/transcripts/:idGET /api/transcripts/:id/matchesPOST /api/transcripts/:id/labelPOST /api/transcripts/:id/auto-identifyGET /api/transcripts/:id/export?format=txt|srt|jsonGET /api/speakers
TRANSCRIPTION_PROVIDER=openai|geminiOPENAI_API_KEY=...OPENAI_TRANSCRIBE_MODEL=gpt-4o-mini-transcribeGEMINI_API_KEY=...GEMINI_TRANSCRIBE_MODEL=gemini-2.0-flashSPEAKER_AUTO_THRESHOLD=0.78SPEAKER_SUGGEST_THRESHOLD=0.70
- Google Cloud Speech-to-Text APIを有効化
- サービスアカウントJSONを配置(例:
./secrets/gcp-stt.json) .envに以下を設定
DIARIZATION_PROVIDER=google
GOOGLE_APPLICATION_CREDENTIALS=/app/secrets/gcp-stt.json
GOOGLE_STT_LANGUAGE=ja-JP
GOOGLE_STT_SPEAKER_COUNT=2
GOOGLE_STT_MODEL=latest_long
GOOGLE_STT_ENCODING=MP3
GOOGLE_STT_SAMPLE_RATE=16000注意: Google diarizationは speakerTag を返します。現在は speakerTag から疑似埋め込みを生成して継続同定に接続しています。