feat(subtitles): use loaded subtitles to guide generation timing (#249)

This commit is contained in:
2026-09-18 00:24:42 -07:00
committed by GitHub
parent 186d4a0640
commit a8c16147ad
24 changed files with 965 additions and 75 deletions
+2
View File
@@ -1,4 +1,5 @@
import type {
SubtitleGenerationAcceleration,
SubtitleGenerationConfig,
SubtitleGenerationModelStatus,
SubtitleGenerationProgress,
@@ -13,6 +14,7 @@ export interface SubtitleGenerationStatus {
model: SubtitleGenerationModelStatus;
vad: { enabled: boolean; model: SubtitleGenerationModelStatus };
tools: SubtitleGenerationTools;
acceleration: SubtitleGenerationAcceleration;
managedModel: SubtitleGenerationConfig['managedModel'];
externalModelPath: string | null;
mediaPath: string | null;
@@ -45,7 +45,7 @@ const MODEL_CATALOG = {
id: 'small',
size: 487601967,
sha256: '1be3a9b2063867b937e64e2ec7483364a79917e157fa98c5d94b5c1fffea987b',
description: 'Recommended starting point for accuracy and processing time.',
description: 'Balances accuracy and processing time with modest memory requirements.',
},
'small-q5_1': {
id: 'small-q5_1',
+10
View File
@@ -41,6 +41,16 @@ export type SubtitleGenerationToolStatus =
| { kind: 'found'; path: string }
| { kind: 'missing'; message: string };
export type SubtitleGenerationAcceleration =
| { kind: 'nvidia-cuda'; gpuName: string }
| { kind: 'unavailable' };
export function recommendedSubtitleGenerationModel(acceleration: SubtitleGenerationAcceleration) {
return acceleration.kind === 'nvidia-cuda'
? 'large-v3-turbo'
: RECOMMENDED_SUBTITLE_GENERATION_MODEL;
}
/** Executables generation depends on. `vad` is null unless dialogue mode is on. */
export interface SubtitleGenerationTools {
ffmpeg: SubtitleGenerationToolStatus;