Repository navigation
Releases: matsuolab/lecture_subtitle_translator
Release list
v1.3.1
v1.1.1
v1.1.1
改善
- 「このPCで実行」を使用する場合、WhisperXの書きおこし言語を41言語から選択できるようになりました。従来どおり日本語が初期設定です。
- macOS版の配布処理を改善し、同梱FFmpegとアプリの署名構造を検証してから配布するようにしました。「破損しているため開けません」と表示される問題への暫定対応です。
注意事項
- 言語を変更した場合、初回実行時に言語別のDockerイメージ(約10GB)をダウンロードします。
- macOS版は、Apple Developer IDによる正式な署名・公証にはまだ対応していません。今回の変更後も、利用環境によっては初回起動時にmacOSの警告が表示される可能性があります。
ご報告と改善案をご共有いただいた @Blackphi6 さん、ありがとうございました。
変更内容の比較: v1.1.0...v1.1.1
v1.1.0
✨ 新機能
- パイプライン中断ボタン — 実行中の処理を安全に停止できます(実行中リクエストの完了を待つ協調的キャンセル)
- LLMリクエストタイムアウト設定 — ローカルLLMが応答しなくなった場合の打ち切り時間を設定画面から変更可能(既定600秒、ja/en/zh 対応)
- 進捗ハートビート — 長時間の処理段階で経過秒数・API応答待ち件数・停滞秒数を15秒ごとに表示。「時間がかかっているだけ」と「フリーズ」を見分けられます
- Structured Outputs 対応 — LM Studio では json_schema、OpenAI/Gemini では json_object を自動選択し、LLM出力の形式崩れを大幅に削減
- 診断エクスポート — プロジェクトJSONに LLM 呼び出しの usage(トークン実数)とエラー詳細(デバッグ専用領域)を記録
🐛 修正
- 1件の失敗がパイプライン全体を全損させる問題を修正 — ページ/ブロック/バッチ単位の失敗は救済(部分パース→条件変更リトライ)または該当分のみの降格に局所化されます
- APIレート制限(429)への耐性 — Retry-After / x-ratelimit ヘッダを尊重したバックオフ + ジッタで自動リトライ。クォータ枯渇(insufficient_quota)は即時に明示エラーで停止
- GPT-5系モデルの 400 エラーを解消 — temperature 非対応(公式仕様)への事前対応と、json_object モードの "JSON" 語要件の充足
- 同時実行数の制御 — 再帰リトライで設定値を超過していた実効同時実行数を全体セマフォで制限。レート制限時は動的に縮退し、回復後に自動復帰
- ローカルLLMのコンテキスト枯渇対策 — LM Studio の実際のロード済みコンテキスト長を取得して max_tokens をクランプ。thinking系モデルの reasoning 消費分も確保
- 書き起こし補正の全滅を修正 — context_size_exceeded を決定的エラーとして分割再試行し、失敗時も部分失敗件数をトレースに明示
- 復元時の「実行中」固着を解消 — 実行中に終了したセッションを復元した際、復帰不能な実行中表示にならず「中断」として整合
- エラー詳細の字幕混入を防止 — プロバイダの生エラー応答(組織ID等を含む)が字幕テキストに埋め込まれる問題を修正。字幕には短い分類コードのみ、詳細はデバッグ領域へ分離
🧹 メンテナンス
- Behavior change: 翻訳失敗ブロックは
[UNTRANSLATED: <分類コード>]マーカー形式に変更
Full Changelog: v1.0.1...v1.1.0
v1.0.1
🐛 修正
- 字幕言語を切り替えたとき(例: 英語→日本語)に、翻訳結果が出力されない/字幕本文に
[UNTRANSLATED: ...]診断タグが混入する不具合を修正。言語ラベルの切替だけで文字体系(script)と作法が追従するようになりました - 言語ラベルと言語プロファイルJSONの設定だけで中国語など他言語を追加できるよう、未翻訳判定を一般化(
translatedCharPattern対応)
Full Changelog: v1.0.0...v1.0.1
v1.0.0
✨ 新機能
- AI Gateway による多モデル対応 — 推論(翻訳・補正・辞書生成)呼び出しを集約し、OpenAI / ローカルOpenAI互換(LM Studio・Ollama 等)/ Gemini を設定で切り替え可能に。Model Profile でモデルごとの推論作法・トークン上限を吸収
- 翻訳・補正系プロンプトの多言語化 — 既定プロンプトを言語プロファイルから組み立て、日英以外の構成にも対応
- 字幕スペル校正(Hunspell)導入と辞書タブ再編 — 英語字幕のスペルチェック、専門用語/一般用語のサブタブ整理
- 設定画面をユーザーストーリー基準で再配置し、報告用 JSON の保存導線を追加
- プロジェクト JSON にアプリバージョンを記録
🐛 修正
- LLM 応答のロバスト化 — 巨大ブロック誤帰属(分割ユニットの先頭セグメント集積)、翻訳件数ずれ、不正 JSON(閉じ括弧・カンマ欠落・未エスケープ引用符)をコード側で吸収
要確認バッジを測定形式違反のみに限定し、用語集プロンプトの件数上限を撤廃- AI Gateway 接続チェックのプロファイル反映を修正
- S3 CORS から
tauri://localhostを削除(S3 が受け付けないため)
🧹 整理
- デッドコードの全体 sweep、pipeline API の二重命名解消・未使用 export 削除
- 設定画面の UX 整理、デッド設定・開発用スタブの削除
SubtitleBlockのsource/targetをsubtitle/transcriptへ改名- アプリ内ヘルプを Wiki 正本に合わせて再構成、README に推奨環境・必要スペック・Wiki 誘導を整理
📦 配布・ライセンス
- Apache-2.0 ライセンスで公開。LICENSE / NOTICE / THIRD_PARTY_NOTICES を整備し、CI にライセンスチェック(cargo-deny)を追加
- Windows / macOS / Linux 向けビルドを配布
Full Changelog: v0.4.14...v1.0.0
v0.4.14
✨ 新機能
- SRT の出力形式を選べるようにしました(字幕のみ/書きおこしのみ/両方)。ツールバーから選択でき、選んだ形式は自動で保存されます。
- 文書からの専門用語リストの生成を刷新しました。
- 章題・見出し・一般語を候補から除外し、専門用語を取りこぼさないようにしました。
‐ 辞書化による取りこぼしがでないようリスト作成を中心の機能としました。フィルタを 有効/無効/カテゴリ のみに簡素化しました。
- 章題・見出し・一般語を候補から除外し、専門用語を取りこぼさないようにしました。
🐛 修正
- 字幕編集時の処理より編集中に突然「起動前エラー」画面になってアプリが落ちることがある問題を修正しました。
Full Changelog: v0.4.13...v0.4.14
v0.4.13
✨ 改善
字幕の整え方を強化
字幕生成後の調整処理を改善し、文の途中で切れた字幕や、短すぎる字幕が残りにくくなりました。
字幕の長さ、読みやすさ、表示時間のバランスも見直し、長い講義動画でも確認しやすい字幕になるよう調整しています。
内容抜け・用語ゆれの検出を改善
生成結果に元の内容が十分反映されていない場合や、用語の扱いに問題がありそうな場合を検出しやすくしました。
手動で字幕を結合したときの読みやすさを改善
字幕ブロックを「前と結合」「後ろと結合」したとき、結合した文章の間に改行が入るようにしました。
🐛 修正
一部のブロックで処理に失敗すると、全体のパイプラインが止まる問題を修正
字幕ブロックごとの処理で一部失敗が発生した場合に、残りの処理まで止まってしまうことがありました。失敗したブロックを検出しつつ、可能な範囲で後続処理を継続できるように修正しました。
無音区間をまたいで字幕が不自然につながる問題を修正
短い字幕を結合するときに、無音区間まで吸収して前後の字幕が不自然につながることがありました。結合候補の選び方を見直し、タイミングが崩れにくくなるよう修正しました。
AI処理の失敗を検出しやすく修正
AI処理から期待した形式の結果が返らなかった場合に、失敗として扱えないケースがありました。返り値の確認を強化し、問題がある場合に後続処理へ流れにくくしました。
Full Changelog: v0.4.12...v0.4.13
v0.4.12
🐛 修正
Tauri 環境で「すべて置換」が dialog.confirm not allowed で失敗する問題を修正
v0.4.11 で導入した検索・置換機能のうち、「すべて置換」ボタンを押すと Tauri ランタイムで dialog.confirm not allowed. Command not found エラーが発生して操作できない状態でした。Tauri 上でも動作するように @tauri-apps/plugin-dialog の confirm を呼ぶ実装に修正しました。
作業ログが中断・再開で失われる問題を修正し記録を改善(v0.4.11 から継続)
これまでの作業記録は localStorage の単一スナップショットに依存しており、パイプライン実行状況によって進捗ログが残らないことがある/編集履歴がブロックあたり50件で打ち切られる/別プロジェクトを開くと過去の記録が上書きで消失する、といった問題がありました。
書き起こし起点・AI修正・手動編集・ブロック系譜をセッション単位の JSONL ファイルへ即追記する方式へ変更。イベント発生のたびに即追記し、中断・再起動をまたいで同一セッションへ継続記録するため、改善用データとして欠損なく回収できるようになりました。
- 作業ログの保管場所を設定タブから指定可能に。「フォルダを開く」ボタンも追加
- 「JSON保存」に現セッションのワークログを同梱し、ファイル名にセッションIDを付与
✨ 新機能(v0.4.11 から継続)
字幕ブロックの全文検索・置換 (#6)
- 編集モードのツールバーに 🔍 ボタンを追加。
Ctrl/Cmd + Fでも開閉可 - 検索スコープを「すべて/字幕のみ/書きおこしのみ」で切替
- オプション:大文字/小文字区別、単語単位(完全一致)、承認済みも対象
Enterで次のマッチ、Shift+Enterで前のマッチ、Escで閉じる- ヒット件数と現在位置 (n / m) を表示
- 1件置換 / 件数確認付きの全置換に対応
🧹 整理(v0.4.11 から継続)
- 「再分割」「再翻訳」ボタンを撤去(クリックすると alert が出るだけのダミー実装だったため)
source/target⇔「字幕 / 書きおこし」のラベル取り違え防止のため、SUBTITLE_FIELD_LABELS定数を導入
Full Changelog: v0.4.11...v0.4.12
v0.4.11
✨ 新機能
字幕ブロックの全文検索・置換
- 編集モードのツールバーに 🔍 ボタンを追加。
Ctrl/Cmd + Fでも開閉可 - 検索スコープを「すべて/字幕のみ/書きおこしのみ」で切替
- オプション:大文字/小文字区別、単語単位(完全一致)、承認済みも対象
Enterで次のマッチ、Shift+Enterで前のマッチ、Escで閉じる- ヒット件数と現在位置 (n / m) を表示
- 1件置換 / 件数確認付きの全置換に対応
🐛 修正
作業ログ保存の問題を修正し記録を改善
これまでの作業記録は localStorage の単一スナップショットに依存しており、パイプライン実行状況によって進捗ログが残らないことがある/編集履歴がブロックあたり50件で打ち切られる/別プロジェクトを開くと過去の記録が上書きで消失する、といった問題がありました。
書き起こし起点・AI修正・手動編集・ブロック系譜をセッション単位の JSONL ファイルへ即追記する方式へ変更。イベント発生のたびに即追記し、中断・再起動をまたいで同一セッションへ継続記録するため、改善用データとして欠損なく回収できるようになりました。
- 作業ログの保管場所を設定タブから指定可能に。「フォルダを開く」ボタンも追加
- 「JSON保存」に現セッションのワークログを同梱し、ファイル名にセッションIDを付与
🧹 整理
- 「再分割」「再翻訳」ボタンを撤去(クリックすると alert が出るだけのダミー実装だったため)
source/target⇔「字幕 / 書きおこし」のラベル取り違え防止のため、SUBTITLE_FIELD_LABELS定数を導入
Full Changelog: v0.4.9...v0.4.11
v0.4.9
Macで大容量MP4動画を読み込んだときに、黒画面または再生不可になる問題への対策を追加しました。