Repository navigation
Settings Reference
対象読者:管理者・上級者 目的:設定画面の各項目が 何に効くか を、画面のグループ順にまとめる。各項目から 動作原理 の該当箇所へリンクする。
設定画面は3つのセクションに分かれます。
- 接続設定 … つながるか(実行先・プロバイダ・APIキー)
- 一般設定 … 翻訳者が触ってよい表示・作業補助
- 上級者向け設定 … 品質・モデル・閾値・修復など、管理者が整備して配布する設定
設定の共有:上級者向け設定は「共有用JSON」として書き出し、翻訳者へ配布できます。APIキー・Service Auth Token・HuggingFace Token・ワークログ保管場所は共有に 含まれません(各自が入力)。JSONやプロンプト上書きの具体的な書式は 設定ファイルリファレンス を参照してください。
各設定の正本(型・既定値)はソースコードの frontend/src/types/adminSettings.ts と frontend/src/api/adminSettings.ts、画面は frontend/src/components/SettingsTab/index.tsx。
このセクションは「つながるか」だけを扱います。モデルや品質はここに置きません。
| 設定 | 何をするか | 備考 |
|---|---|---|
| 共有設定の読み込み | 管理者が配布した共有用JSONを一括適用する | 初回セットアップの第一歩。読み込み後はAPIキー入力と接続チェックだけで使い始められる |
実行先(serviceMode) |
パイプラインを このPC(ローカル) で動かすか、リモート(Managed Service) で動かすか | リモート時のみ Service URL / Service Auth Token を表示。→ 動作原理 §2 |
Service URL(serviceUrl) |
リモート実行時の接続先URL |
managed_service のときのみ |
Service Auth Token(serviceAuthToken) |
リモート認証トークン | 共有設定に含めない |
接続先AIプロバイダ(translationProvider) |
OpenAI / Gemini / OpenAI互換(LM Studio・Ollama・Azure・Groq 等) |
翻訳・補正・短縮・分割・文脈統合など全LLM処理で使う |
APIキー(openaiApiKey / geminiApiKey) |
選択プロバイダのAPIキー | このPCに保存。共有設定に含めない |
OpenAI互換 Base URL(openaiCompatibleBaseUrl) |
ローカル/互換サーバーのBase URL。OpenAI互換 のときのみ表示。LM Studio / Ollama のショートカットあり |
/v1 まで含める |
HuggingFace Token(hfToken) |
モデル取得等で使う場合がある | 共有設定に含めない |
ボタン:接続テスト(実行先の疎通)と AI Gateway 接続チェック(/models、Chat Text、Embeddings、Chat Vision を個別に確認。失敗時は確認すべき設定——Base URL、APIキー、モデルID、API Compatibility Profile、context length など——を画面に表示する)。
OpenAI互換サーバーごとのAPI方言と、モデルの能力差を吸収する設定です。通常は auto のままで使い、LM Studio / Ollama / OpenAI互換サービスで接続チェックや実行が失敗した時だけ変更します。→ 動作原理 §8
| 設定 | 役割 |
|---|---|
API Compatibility Profile(apiCompatibilityProfilePreset / ...Json) |
接続先APIの方言(max_tokens 名、response_format、APIキー要否)。auto/openai/lmstudio/ollama/gemini_openai_compatible/user
|
Chat Text / Chat Vision / Embedding プロファイル(chatTextProfile* / chatVisionProfile* / embeddingProfile*) |
モデルごとのふるまいの差(推論=reasoningの扱い、出力形式、画像入力=Vision/意味ベクトル=Embeddingへの対応差) |
各JSONのスキーマ・不正なときの挙動は 設定ファイルリファレンス にまとめています。
ローカルLLM(LM Studio / Ollama)使用時の context length の注意は Getting Started §3 を参照。
翻訳者が触っても品質・コストが壊れない項目だけを置きます。
| 設定 | 何をするか |
|---|---|
| カラーテーマ | 表示テーマ |
| 言語 | UI表示言語(日本語 / English / 中文) |
| バージョン | 現在のアプリバージョン表示(変更不可) |
ワークログ(workLogDir) |
書き起こし・AI修正・手動編集の作業履歴をセッションごとのJSONLで記録する保管場所。空欄=アプリデータ領域内 worklogs。失敗調査・作業履歴確認に使う |
| 操作 | 内容 |
|---|---|
| 共有用JSONを出力 | プロンプト・例文・モデル・プロファイル・閾値をまとめて書き出す(OpenAI互換 Base URL は出力時に含めるか選択)。APIキー類・ワークログ保管場所は含めない |
配布されたJSONの読み込みは 接続設定 > 共有設定の読み込み で行います(翻訳者の初回導線)。
全LLMノード共通の APIの並列処理上限。レート制限などでエラーが出る場合は下げます。→ 動作原理 §8
処理段階ごとに使うモデルを指定します。「モデル一覧を更新」で選択肢を取得できます。空欄にした項目は、表の「空欄時に使うモデル」に書かれた別の設定値が代わりに使われます。各モデルがどの工程で使われるかは 動作原理 を参照。
| 設定 | 用途 | 既定 | 動作原理 |
|---|---|---|---|
補正モデル(correctionModel) |
日本語書き起こしの補正 | gpt-5.4-mini | §4.1 |
翻訳モデル(translationModel) |
字幕への翻訳。他のモデル欄を空欄にしたとき代わりに使われる基準モデルでもある | gpt-5.4-mini | §5.1 |
| 設定 | 用途 | 空欄時に使うモデル | 動作原理 |
|---|---|---|---|
圧縮モデル(compressModel) |
字幕短縮 | 空欄=翻訳モデル | §5.4 |
展開モデル(expandModel) |
短すぎ/情報不足の英文を補う | 空欄=翻訳モデル | §5.4 |
マイクロ圧縮モデル(microModel) |
1単語ずつ削る軽量短縮 | 空欄=圧縮モデル(既定 nano) | §5.4 |
文脈統合モデル(contextMergeModel) |
短い断片を前後どちらへ統合するか判断 | gpt-5.4-mini | §5.5 |
日本語分割モデル(splitJaModel) |
日本語を意味単位に分割 | 空欄=マイクロ圧縮モデル(既定 nano) | §4.2 |
| 設定 | 用途 | 既定 | 動作原理 |
|---|---|---|---|
Embeddingモデル(embeddingModel) |
字幕生成ではなく意味の近さチェック | text-embedding-3-small | §5.5 semantic check |
辞書作成を使わない場合は変更不要。→ 辞書生成の全体像は 動作原理 §3
| 設定 | 用途 |
|---|---|
PDF抽出Visionモデル(pdfExtractionVisionModel) |
Vision有効時の用語抽出。テキスト専用モデルでは失敗する |
PDF数式確認モデル(pdfFormulaMiniModel) |
数式・画像文字の追加確認。空欄=PDF抽出Visionモデルを代わりに使う |
辞書生成: 出力トークン上限(glossaryMaxOutputTokens) |
1リクエストでAIが生成できる最大量(256〜16384、既定4096)。生成結果が途中で切れる(APIが長さ上限による打ち切り=finish_reason=length を返す)場合に増やす |
| 設定 | 用途 | 既定 |
|---|---|---|
書きおこし音声の言語(transcribeLanguageCode) |
ローカルWhisperX転写が聞き取る音声の言語コード(例 ja/en)。WhisperXのアライメントモデルがある41言語のみ選択可(モデルサイズは large-v3 固定)。実行先が「このPCで実行」のときのみ有効で、設定タブにもその場合だけ表示されます。実行先が「AWS / リモート実行」のときは接続先サーバー側の設定(AWS Batchジョブ定義の WHISPERX_LANGUAGE)で決まり、アプリからは変更できません → ローカル実行の詳細は ローカルWhisperXセットアップ、AWS側の変更手順は 同ページのAWS節 を参照 |
ja |
字幕言語ラベル(subtitleLanguageLabel) |
字幕(翻訳先)の言語名。翻訳・短縮・展開・文脈統合の各プロンプトへの注入、役割反転ガード、スペル校正の辞書選択に使われる | English |
書き起こし言語ラベル(transcriptLanguageLabel) |
書きおこし(翻訳元)の言語名。同上 | Japanese |
言語プロファイルJSON(languageProfileConfigJson) |
字幕/書き起こしの言語・スクリプト定義(言語ラベル直下の折りたたみ)。既定の英日構成では空欄のままでよい | 既定JSON |
transcribeLanguageCode(音声の言語コード)とtranscriptLanguageLabel(AIプロンプト用の表示名)は別設定です。書きおこし言語を変えるときは両方を揃えてください。
注意:既知言語(English / Japanese 等)はラベルを切り替えるだけで
script(文字体系)と文末などの作法も自動で追従します(言語プロファイルJSONは空欄でよい)。未知言語(中国語など)を足すときだけ、言語プロファイルJSONでscriptと作法を明示します。いずれの場合もWhisperX(書きおこし)の言語設定は別途必要です。→ 言語構成(多言語対応)
このアプリのデータモデルは「字幕/書きおこし」という役割ベースで言語固有ではなく、UIも日本語/English/中文に対応しています。AIプロンプトの言語名も、設定した言語構成から自動で組み立てられます(後述)。
他の言語ペアで使うときに押さえるべき点は次の3つです。
- 書きおこし(音声認識)の言語・言語ラベル・言語プロファイルは設定で変えられます(下表)。
-
言語の切り替えは「ラベル」が起点です。
script(文字体系)は「どの言語か」の一部なので、ラベルが既知言語に一致すればラベルから自動導出され、言語プロファイルJSONに残った古いscriptは無視されます(ラベルとJSONの食い違いによる事故を防ぐ設計)。言語プロファイルJSONは作法(文末パターン等)の上書きと、未知言語のscript/translatedCharPatternの指定に使います。 -
日本語に特化した処理(カタカナ保持の指示・日本語特化の校正プロンプト・組み込みの日英手本など)は、
scriptがjapaneseのときだけ働きます。他言語では汎用の動作に切り替わります。 - 品質の既定値(CPS・行長など)は英語字幕向けに較正されており、また日英以外のペアでの実走検証はまだ十分ではありません。本格運用の前に短い動画での確認を推奨します。
| 何を変えるか | どこで変えるか |
|---|---|
| 書きおこし(音声認識)の言語 | デスクトップアプリでは設定タブ > 言語ラベル > 書きおこし音声の言語(WhisperX)(transcribeLanguageCode)から選択(41言語、モデルは large-v3 固定)。→ ローカルWhisperXセットアップ。手動でDockerを直接運用する場合は WHISPERX_LANGUAGE 環境変数と Dockerイメージタグ(例 large-v3-en)。リモート実行(AWS Batch等)ではバックエンド側の設定 |
| 言語名のラベル(=言語の切替起点) | 上記の subtitleLanguageLabel / transcriptLanguageLabel。翻訳・補正・短縮・展開・文脈統合の各プロンプト、役割反転ガード、スペル校正辞書の選択に効く。既知言語ならラベルから script と作法の既定も自動導出される |
| 文末・継続・断片の判定パターン/未翻訳判定 | 言語プロファイルJSON(languageProfileConfigJson)。subtitle / transcript 各ロールに sentenceEndPattern / continuationEndPattern / fragmentStartPattern(正規表現)を上書き定義できる。未知言語では script(latin/japanese/generic)と、未翻訳判定に使う translatedCharPattern もここで指定する(→ 設定ファイルリファレンス)。文脈統合の判定・スペル校正の対象スクリプト判定・未翻訳リトライ判定に使われる |
| スペル校正の辞書 | 英語 Hunspell 辞書を同梱。他のラテン文字言語は辞書のインポートで対応(→ 下記 スペル校正(綴りチェック)と辞書の追加) |
| 形の品質基準 | CPS・行長などの検査は「空白を除いた文字数」ベースで言語非依存に動く。ただし既定値(enMaxCps=16.9、enMaxCharsPerLine=80 等)は英語字幕向けの較正値なので、字幕言語を変えるならその言語の読速ガイドラインに合わせて再設定する |
📎 コード参照:
frontend/src/lib/pipeline/languageProfileConfig.tsのLanguageProfileConfig(既定値DEFAULT_LANGUAGE_PROFILE_CONFIGを含む)。
翻訳・補正・短縮・展開の既定プロンプトは言語構成から自動で組み立てられます。
-
翻訳(translateEn):「
書きおこし言語のブロックを自然な字幕言語に翻訳する」という形でラベルが注入される。書きおこしが日本語スクリプトのときだけ、日本語固有の指示(「私/先生」の扱い等)が追加される -
書きおこし校正(correctJa):書きおこしの
scriptがjapaneseなら日本語特化プロンプト、それ以外なら書きおこし言語名を注入した汎用プロンプトに自動で切り替わる - 短縮・展開(compress / expand):字幕言語/書きおこし言語のラベルが注入される
-
組み込み few-shot(日英の手本):書きおこしが日本語スクリプト以外の構成では自動的に使われません(誤った言語ペアの手本は出力言語を引きずるため)。他言語ペアでは
correctionFewShotJson/translationFewShotJsonに対象言語の手本を与えると品質が安定します(書式 → 設定ファイルリファレンス)
プロンプトの言語名はすべて言語構成から組み立てられますが、非日英ペアでの実走検証はまだ十分ではありません。本格運用の前に短い動画でのE2E確認を推奨します。
📎 コード参照:
frontend/src/lib/pipeline/prompts.tsのbuildFullTranslateSystemPrompt()/buildCompressSystemPrompt()ほか,frontend/src/lib/pipeline/correct.tsのpickCorrectionBasePrompt()。
字幕の綴り誤りを検出する機能です(Hunspell 辞書ベース)。承認時・編集確定時・SRT出力時に自動でチェックし、字幕編集画面で誤りを赤くハイライトします。設定画面の項目ではなく、辞書タブ「一般用語」サブタブで辞書を管理します(タブ操作は 画面リファレンス §5-2)。
動作の前提
- 対象はラテン文字の字幕(言語プロファイルの
subtitle.scriptがlatin)。日本語などCJKの字幕は自動的にオフ(綴りの概念が異なるため)。 -
英語は辞書を同梱しており(
en_US、ライセンス MIT AND BSD)、設定なしで動きます。 - 「専門用語」サブタブの登録語、および字幕編集画面の +辞書 で登録した語は、誤検出から除外されます。
英語以外の言語を綴りチェックする(辞書の追加)
英語以外の Hunspell 辞書は言語ごとにライセンスが異なるため同梱していません。使いたい言語は各自で追加します。
- その言語の Hunspell 辞書ファイル(
.affと.dicのペア)を入手する。推奨入手元は wooorm/dictionaries(92言語を統一形式で配布し、言語ごとのライセンスを明記)。 - 辞書タブ →「一般用語」→「一般用語辞書インポート」で、言語ラベル(例
French)と.aff/.dicを指定して 追加。 - その言語ラベルを字幕言語ラベル(
subtitleLanguageLabel)と一致させ、言語プロファイルのsubtitle.scriptをlatinにする。辞書は字幕言語ラベルで照合されるため、一致していないと使われません。
ライセンスの注意(重要)
- 追加する辞書のライセンスは利用者が各自で確認してください。Hunspell辞書には MIT/BSD のほか GPL・LGPL・MPL などコピーレフトを含むものがあります(例:
en=MIT AND BSD、fr=MPL-2.0、de=GPL)。 - インポートした辞書はこのPCにローカル保存され、アプリの配布物にも共有用設定JSONにも含まれません(アプリがユーザー辞書を再配布することはありません)。
- 管理者がチームへ辞書ファイルを配布する場合は、その辞書のライセンス条件に従ってください。
- 同梱英語辞書の告知は、配布物の
THIRD_PARTY_NOTICES.mdとen.LICENSEに記載しています。
📎 コード参照:
frontend/src/lib/pipeline/spellCheck/dictionaryRegistry.ts(同梱英語/ユーザー辞書の解決),frontend/src/components/GlossaryTab/GeneralDictionarySection.tsx(インポートUI)。
字幕の品質基準(行長・CPS・表示時間)と、違反を自動修復するエージェントの設定です。閾値が違反判定にどう効くかは 動作原理 §5.3 の違反コード分類表 が正本。
| 設定 | 何をするか | 既定 | 効く違反 |
|---|---|---|---|
1行の最大文字数(enMaxCharsPerLine) |
1行の行長上限 | 80 | line_length_only |
最大行数(enMaxLines) |
字幕の最大行数 | 2 | 行折り返し |
最大CPS(enMaxCps) |
読む速さ(文字/秒)の上限 | 16.9 | verbose_en |
字幕最短表示時間(subtitleMinDurationSec) |
1キューの最小表示秒数 | 0.833 | タイミング詰め最小値 |
補正品質閾値(qualityCorrectionThreshold) |
補正前後の意味変化/距離のしきい値 | 0.15 | 補正フラグ・semantic check |
字幕短縮の前後で意味が変わっていないかを、Embeddingモデル(文章を数値ベクトル化して意味の近さを測る)でチェックする機能。オフ / ログのみ(採否影響なし) / 有効(意味が離れすぎた短縮は差し戻し)。→ 動作原理 §5.5
| 設定 | 何をするか |
|---|---|
有効化(coverageRepairEnabled) |
ルールベース修復で直しきれなかった「原文の取りこぼし」を軽量AIモデルで自動修復する。OFF=この段を実行せず次段(汎用修復 or 人間の確認)へ |
coverage_repair モデル(coverageRepairModel) |
空欄=圧縮モデル(既定 gpt-5.4-mini) |
reasoning effort(coverageRepairEffort) |
AIの推論の深さ。深いほど精度が上がる代わりに時間とコストが増える。minimal / low(既定) / medium / high |
| 設定 | 何をするか |
|---|---|
有効化(generalRepairEnabled) |
ここまでで直しきれなかった違反をAIで修復する最後の救済段。失敗するたびに推論の深さを低→中→高と上げて再挑戦し、それでも直らなかったブロックだけ「人間の確認が必要」に確定する。OFF=残った違反は即「人間の確認が必要」扱い |
general_repair モデル(generalRepairModel) |
空欄=圧縮モデル(既定 gpt-5.4-mini) |
エスカレーション上限(generalRepairMaxEffort) |
推論の深さをどこまで上げてよいかの上限。low(1段のみ)/ medium / high(現在は medium 相当に制限) |
| 設定 | 何をするか |
|---|---|
デバッグモード(debugModeEnabled) |
マスタースイッチ。OFFの間は、下のサブ機能をONにしても実行されない(実運用ではOFFのまま) |
correctJa 効果計測(correctionDebugEmbedding) |
書きおこし補正の前後で意味がどれだけ動いたかをEmbedding(意味の近さの数値化)で測り、診断ログに記録する。デバッグモードONのときだけ動く |
自動生成の字幕出力前とSRT出力時に同じ置換ルールを適用。ルール(変換元→変換先、literal/regex)をUIで編集・プレビュー・インポート/エクスポートできる。→ 動作原理 §5.2 / §6
自動処理が字幕を分割・結合する秒数のしきい値。→ 動作原理 §4・§5.3
| 設定 | 何をするか | 既定 | 効く違反 |
|---|---|---|---|
短い字幕を結合するしきい値(pipelineShortDurationSec) |
これ未満を短すぎと判定し結合 | 1.5 | short_duration |
長い字幕を分割するしきい値(pipelineLongDurationSec) |
これ超を長すぎと判定し分割 | 14.0 | long_segment |
結合後の字幕の最長表示時間(pipelineMergedLongDurationSec) |
結合済み字幕がこれ超で違反 | 12.0 | merged_long |
英訳の文字量・読む速さの判定基準。→ 動作原理 §5.3
| 設定 | 何をするか | 既定 | 効く違反 |
|---|---|---|---|
冗長と判定する英日文字比(上限)(pipelineVerboseEnRatio) |
英語/日本語の文字比がこれ超で冗長 | 1.5 | verbose_en |
過圧縮と判定する英日文字比(下限)(pipelineOverCompressedRatio) |
この比未満で過圧縮候補 | 0.25 | over_compressed |
過圧縮判定の最小日本語文字数(pipelineOverCompressedJaChars) |
日本語がこの文字数超のときだけ過圧縮判定 | 15 | over_compressed |
低速発話と判定するCPS(下限)(pipelineSlowCps) |
CPSがこれ未満で低速 | 3.0 |
over_compressed / slow_speech
|
1ブロックを基準に合わせる短縮・展開の最大試行回数。→ 動作原理 §5.4
| 設定 | 既定 |
|---|---|
展開リトライ上限(1ブロックあたり)(pipelineMaxExpandPerBlock) |
3 |
圧縮リトライ上限(1ブロックあたり)(pipelineMaxCompressPerBlock) |
5 |
文の途中で切れた字幕を次と結合してから翻訳し、英訳のあふれ・CPS違反を防ぐ前処理。→ 動作原理 §4.3
| 設定 | 何をするか | 既定 |
|---|---|---|
未完結な文を次の字幕と結合する(pipelineMergeContinuationEnabled) |
この前処理のON/OFF | ON |
結合可能な最大隣接gap(秒)(pipelineMergeContinuationMaxGapSec) |
この間隔以内なら結合候補 | 1.5 |
結合後の最大duration(秒)(pipelineMergeContinuationMaxDurationSec) |
結合後の表示時間上限 | 12 |
結合後の最大書きおこし文字数(pipelineMergeContinuationMaxTranscriptChars) |
結合後の日本語文字数上限 | 80 |
未完結検出モデル(incompleteEndDetectionModel) |
未完結末尾の判定モデル。空欄=日本語分割モデル(既定 nano) | — |
未完結検出バッチサイズ(incompleteEndDetectionBatchSize) |
バッチ判定のサイズ | 30 |
翻訳・補正の方向性を調整する上級者向け項目。追加指示は安全(既定プロンプトに追記)、完全上書きは挙動を大きく変えるので注意。→ 動作原理 §4.1 / §5.1 / §5.4
| 設定 | 何をするか |
|---|---|
書き起こし補正 追加指示(correctionAdditionalInstructions) |
補正プロンプトへの追記 |
書き起こし補正 例文JSON(correctionFewShotJson) |
補正のfew-shot手本 |
翻訳 追加指示(translationAdditionalInstructions) |
翻訳プロンプトへの追記 |
翻訳 例文JSON(translationFewShotJson) |
翻訳のfew-shot手本 |
圧縮プロンプト上書き(compressPromptOverride) |
短縮プロンプトの完全上書き |
展開プロンプト上書き(expandPromptOverride) |
展開プロンプトの完全上書き |
- 各設定が動く処理の全体像 → 動作原理
- ローカルでWhisperXを動かす → ローカルWhisperXセットアップ
- 実務での使い方 → 操作マニュアル