|
| 1 | +--- |
| 2 | +title: "LiveTR を v2.0.0 にした — 文字起こしを入れ替えて、完成した一文だけを訳す" |
| 3 | +emoji: "🎧" |
| 4 | +type: "tech" |
| 5 | +topics: ["claudecode", "個人開発", "翻訳", "音声認識", "windows"] |
| 6 | +published: true |
| 7 | +--- |
| 8 | + |
| 9 | +:::message |
| 10 | +この記事は [Claude Code 始めました](https://kitepon.dev/blog/) からの転載です。 |
| 11 | +::: |
| 12 | + |
| 13 | +俺が作っている LiveTR を v2.0.0 にした。メジャーバージョンアップだ。PCで流れている英語の音声をその場で日本語字幕にして、同時に日本語で読み上げるWindows用アプリで、今回の主眼は翻訳の質だ。そのために文字起こしから入れ替えて、翻訳の品質がほぼ最大化されたよ。 |
| 14 | + |
| 15 | +アプリ自体の紹介と、作った時の話は[前の記事](https://kitepon.dev/blog/post/livetr-app/)に書いてある。 |
| 16 | + |
| 17 | +--- |
| 18 | + |
| 19 | +## 訳の質は、翻訳へ渡す英文で決まる |
| 20 | + |
| 21 | +LiveTR は翻訳そのものをオンラインの翻訳サービスへ投げている。向こうは渡された英文を忠実に訳して返してくるので、出てくる日本語の質は、こちらが渡す英文がどれだけ整っているかで決まる。完全な一文を渡せば、同じサービスがそのまま良い訳を返す。これは[前に一度書いた](https://kitepon.dev/blog/post/livetr-complete-sentence/)通りで、LiveTR の設計の要にしている。 |
| 22 | + |
| 23 | +v1 は音声を一定の時間ごとに区切って文字起こしして、途中で切れた断片を後ろで組み立ててから翻訳へ回していた。実況や会話の途中で文が切れると、前半と後半が別々に訳される。そのために v2.0.0 では文字起こしのモデルを Kyutai STT 1B に入れ替えて、この区切りかたごと作り直した。英語の音声を連続した流れのまま受け取り、文が完成するまで待って、一文につき一回だけ翻訳へ渡す。これで、納得のいかない文章の区切りが完全に解消した。 |
| 24 | + |
| 25 | + |
| 26 | +*v2.0.0の処理の流れ。連続した音声から文の完成を待ち、完成した一文に話者ラベルを付けて、一文につき一回だけ翻訳へ渡す* |
| 27 | + |
| 28 | +停止した時も、最後に取り込んだ音声とまだ完成していない文を処理してから閉じる。 |
| 29 | + |
| 30 | +--- |
| 31 | + |
| 32 | +## 話者の判定は、完成した文につける |
| 33 | + |
| 34 | +LiveTR は声の特徴で話者を見分けて、字幕の色と読み上げの声を話者ごとに変えている。最大8人まで区別する。 |
| 35 | + |
| 36 | +v2.0.0 では、この判定を完成した一文へのラベル付けに限定した。話者が切り替わったという理由で文章を分割しないので、判定が揺れても文の切れ目には影響しない。声の特徴を作る材料も、無音やエンジン音をできるだけ除いて、実際に人が話している部分から取るようにした。 |
| 37 | + |
| 38 | +--- |
| 39 | + |
| 40 | +## 読み上げが追いつかない時は、速度を上げる |
| 41 | + |
| 42 | +英語の実況のように次から次へと文が来ると、日本語の読み上げが追いつかなくなる。v2.0.0 は、再生中のものを含めてまだ読み上げ終わっていない文の数、残っている読み上げの秒数、新しい文が来る間隔を見て、次に読む速度を決める。 |
| 43 | + |
| 44 | + |
| 45 | +*読み上げ速度の自動調整。未完了の文の数、残りの読み上げ秒数、新しい文が来る間隔から次の読み上げ速度を決め、通常速度と最大速度の間で動かす* |
| 46 | + |
| 47 | +--- |
| 48 | + |
| 49 | +## 更新に買い直しは要らない |
| 50 | + |
| 51 | +v2.0.0 は既存の購入者もそのまま更新できる。BOOTHの商品ページから最新版をダウンロードして、同じ手順で上書きすれば最新版になる。アンインストールは要らない。 |
| 52 | + |
| 53 | +--- |
| 54 | + |
| 55 | +## 動く条件は前と同じ |
| 56 | + |
| 57 | +| 項目 | 要件 | |
| 58 | +|------|------| |
| 59 | +| OS | Windows 10 / 11(64bit) | |
| 60 | +| GPU | NVIDIA CUDA対応GPU(必須) | |
| 61 | +| VRAM | 4GB以上を推奨 | |
| 62 | +| メモリ | 16GB以上を推奨 | |
| 63 | + |
| 64 | +NVIDIA製のGPUが必要で、AMDやIntelのGPUだけのPCでは動かない。翻訳には Google Cloud Translation、DeepL、Azure Translator、Amazon Translate のいずれかのキーが要る(各社に月間の無料枠がある。取得手順はアプリの設定の中にある)。この2つは v1 から変わっていない。読み上げの通常の速度と最大速度も、同じ設定の画面で決める。最大速度は0.1倍刻みで3.0倍まで選べる。 |
| 65 | + |
| 66 | +音声認識と機械翻訳を通すので、聞き間違いや誤訳、遅れは出る。用途は英語の動画を見るときの補助だ。 |
| 67 | + |
| 68 | +--- |
| 69 | + |
| 70 | +## ダウンロード |
| 71 | + |
| 72 | +@[card](https://qo-shop.booth.pm/items/8134987) |
| 73 | + |
| 74 | +BOOTHで980円の買い切りで、アプリ側の月額はない。文字起こしのモデルはインストーラに入れていないので、初回の起動時に取得するかどうかを確認する(約2.20GiB)。後から取ることもできて、進捗の表示、取消、途中からの再開に対応している。 |
| 75 | + |
| 76 | +--- |
| 77 | + |
| 78 | +## 関連記事 |
| 79 | + |
| 80 | +- [LiveTR — 動画の英語音声をリアルタイムで日本語にするアプリ](https://kitepon.dev/blog/post/livetr-app/) — アプリそのものの紹介と、作った時の話 |
| 81 | +- [完全な文だけを訳に回す](https://kitepon.dev/blog/post/livetr-complete-sentence/) — 切れた断片を組み立てていた頃の話 |
| 82 | +- [自力じゃ無理なロジック、Claudeと論文から組み立てた話](https://kitepon.dev/blog/post/claude-research-implementation/) — 話者まわりのロジックを組んだ時の話 |
| 83 | + |
| 84 | +--- |
| 85 | + |
| 86 | +*このブログ「Claude Code 始めました」は、Claude MAX ユーザーが実際の開発で使いながら学んだことを記録していくサイトです。* |
0 commit comments