ライブ文字起こし
ブラウザのマイクから直接AmiVoice WebSocketに接続し、リアルタイムで音声を文字起こしします。
⚠️ライブ文字起こしパックが必要です。この機能を使用するには、管理者が 管理者 → 機能 でライブ文字起こしパックを有効化する必要があります。
仕組み
ライブ文字起こしはすべてブラウザ内で動作します。バックエンドはAmiVoice接続設定を提供するだけで、音声データはブラウザから直接AmiVoiceに送信されます。
ブラウザ → GET /api/live-transcription/config → AmiVoice WS設定取得
ブラウザ → getUserMedia → AudioContext(16kHz) → AudioWorklet → Int16 PCM → WSバイナリフレーム → AmiVoice
ブラウザ → getUserMedia → AudioContext(16kHz) → AudioWorklet → Int16 PCM → WSバイナリフレーム → AmiVoice
- ブラウザが
GET /api/live-transcription/configでAmiVoice WS URLとAPIキーを取得。 getUserMediaでマイクアクセスを要求。AudioContextを16kHzで初期化し、AudioWorkletでFloat32→Int16に変換。- バイナリフレーム(
0x70プレフィックス付き)をAmiVoice WebSocketに送信。 - AmiVoiceからのレスポンスをブラウザ上にリアルタイム表示。
WebSocket接続先
デフォルトの接続先: wss://acp-api.amivoice.com/v1/nolog/
環境変数 AMIVOICE_WS_URL で変更可能です(ログ保存あり/なしエンドポイントの切り替えなど)。
レスポンスイベント
| イベント | 意味 |
|---|---|
| U | 中間結果(まだ確定していない) |
| A / R | 最終結果(確定した認識結果) |
| s | セッションエラー(スペースあり) |
| e | セッション終了 |
要件と注意事項
- HTTPS必須:
navigator.mediaDevicesはHTTPSまたはlocalhostでのみ利用可能です。 - マイクの許可: ブラウザがマイクへのアクセス許可を求めます。許可を与えてください。
- 言語選択: UIで録音開始前に言語を選択できます(ja-JP / en-US)。
- 通話録音とは別: ライブ文字起こしはリアルタイム確認用です。文字起こし結果はバッチ処理のように自動保存されません。
ℹ️
getUserMedia の制約には sampleRate を含めないでください。一部のドライバーでは NotFoundError が発生します。ライブ文字起こしの使い方
- ナビゲーションバーの ライブ をクリックします(機能が有効な場合のみ表示)。
- 言語を選択します(デフォルト: ja-JP)。
- 録音開始 をクリックしてマイクの許可を与えます。
- 話すと画面上にリアルタイムで文字起こし結果が表示されます。
- 録音停止 をクリックしてセッションを終了します。