概要
利用している技術
Chrome 拡張 Manifest V3: chrome.tabCapture で取得した stream id を offscreen document に渡し、getUserMedia でタブ音声を受け取ります。AudioWorklet でモノラルの Int16 PCM(4096 サンプル単位)にして送信。
音声認識と翻訳: 最初は認識と翻訳を別サービスに分けていましたが、途中結果まで翻訳に回すため 1 時間あたり約 2.55 ドルかかりました。今は認識と翻訳を 1 本のストリームで返すプロバイダに切り替え、請求ベースで 1 時間 0.154 ドルです。
サーバー: PHP / Laravel、MySQL。テストは Linux 上で Chrome プロファイル 3 つが同じ通話で台本を話し、4 つ目の拡張入りプロファイルで字幕を検証する仕組みです。
サービスのPR点
タブをキャプチャすると、そのタブの音がスピーカーから消えてしまう問題がありました。stream を AudioContext の destination に戻すことで、相手の声を聞きながら字幕を読めます。
話者ごとの枠表示、文字サイズの調整、字幕ウィンドウのドラッグに対応しています。対応言語は 60 以上です。
今後の追加機能など
確定字幕が出るまでの遅延(現在 4〜8 秒)を短くすること、そして「タブが無音」と「認識側が止まっている」を見分けられるようにすることです。
その他メッセージ
一人で開発しています。日本語の字幕品質や表示についてのご意見をいただけるとうれしいです。技術的な質問にもお答えします。
フィードバック募集
開発報告
開発者からのリリース報告などのコメントです
過去7日間のツイートを表示します
コメント
サービスの利用者などからのフィードバックコメントです