feat: forward language code and more config settings

This commit is contained in:
2026-01-30 20:12:48 +01:00
parent 76581db30b
commit e1a7b69f76
3 changed files with 91 additions and 12 deletions

75
main.py
View File

@@ -35,9 +35,24 @@ def main():
audio_stream = MediaHandler.get_audio_stream_index(info.episode_path, info.episode_language)
media_duration = MediaHandler.get_media_duration(info.episode_path)
print(f"Duration: {int(media_duration // 60)}m. Loading Whisper...")
model_name = "base.en" if 'english' in info.episode_language.lower() else "base"
whisper = WhisperModel(model_name, device="cpu", compute_type="int8", cpu_threads=4)
# Get the 2-letter code (e.g., "en")
whisper_lang_code = MediaHandler.get_language_code(info.episode_language)
print(f"Duration: {int(media_duration // 60)}m. Loading Whisper ({SYNC_CONFIG['device']})...")
# Load model based on Config
model_name = "base.en" if whisper_lang_code == 'en' else "base"
try:
whisper = WhisperModel(
model_name,
device=SYNC_CONFIG['device'],
compute_type=SYNC_CONFIG['compute_type'],
cpu_threads=4
)
except Exception as e:
print(f"Error loading model: {e}")
return
subtitles = SubtitleHandler.parse_srt(info.subtitle_path)
if not subtitles:
@@ -60,7 +75,16 @@ def main():
info.episode_path, int(start_sec), SYNC_CONFIG['scan_duration_sec'], audio_stream
)
segments, _ = whisper.transcribe(audio_file, vad_filter=True)
segments, _ = whisper.transcribe(
audio_file,
vad_filter=SYNC_CONFIG['vad_filter'],
vad_parameters=dict(min_silence_duration_ms=SYNC_CONFIG['vad_min_silence']),
language=whisper_lang_code,
beam_size=SYNC_CONFIG['beam_size'],
condition_on_previous_text=False,
word_timestamps=False
)
w_segments = [WhisperSegment(int(s.start * 1000), int(s.end * 1000), s.text) for s in list(segments)]
matches = TextMatcher.find_matches(subtitles, w_segments, int(start_sec * 1000))
@@ -159,11 +183,48 @@ if __name__ == '__main__':
sys.argv = [
'sync_script.py',
'episode=/home/mathieub/Documents/DEV/PycharmProjects/ai-subtitles-sync/test_data/Superman & Lois - S03E05/Superman & Lois - S03E05 - Head On Bluray-1080p.mkv',
'episode_name=Superman & Lois - S03E05',
'subtitles=/home/mathieub/Documents/DEV/PycharmProjects/ai-subtitles-sync/test_data/Superman & Lois - S03E05/Superman & Lois - S03E05 - Head On Bluray-1080p.en.srt',
'episode=/home/mathieub/Documents/DEV/PycharmProjects/ai-subtitles-sync/test_data/A Knight of the Seven Kingdoms - S01E01/A Knight of the Seven Kingdoms - S01E01 - The Hedge Knight WEBRip-1080p.mkv',
'episode_name=A Knight of the Seven Kingdoms - S01E01',
'subtitles=/home/mathieub/Documents/DEV/PycharmProjects/ai-subtitles-sync/test_data/A Knight of the Seven Kingdoms - S01E01/A Knight of the Seven Kingdoms - S01E01 - The Hedge Knight WEBRip-1080p.en.srt',
'episode_language=English',
'subtitles_language=English'
]
# sys.argv = [
# 'sync_script.py',
# 'episode=/home/mathieub/Documents/DEV/PycharmProjects/ai-subtitles-sync/test_data/Superman & Lois - S03E05/Superman & Lois - S03E05 - Head On Bluray-1080p.mkv',
# 'episode_name=Superman & Lois - S03E05',
# 'subtitles=/home/mathieub/Documents/DEV/PycharmProjects/ai-subtitles-sync/test_data/Superman & Lois - S03E05/Superman & Lois - S03E05 - Head On Bluray-1080p.en.srt',
# 'episode_language=English',
# 'subtitles_language=English'
# ]
# sys.argv = [
# 'sync_script.py',
# 'episode=/home/mathieub/Documents/DEV/PycharmProjects/ai-subtitles-sync/test_data/Free Willy 3 The Rescue (1997)/Free Willy 3 The Rescue (1997) WEBRip-1080p.mp4',
# 'episode_name=Free Willy 3: The Rescue (1997)',
# 'subtitles=/home/mathieub/Documents/DEV/PycharmProjects/ai-subtitles-sync/test_data/Free Willy 3 The Rescue (1997)/Free Willy 3 The Rescue (1997) WEBRip-1080p.en.srt',
# 'episode_language=English',
# 'subtitles_language=English'
# ]
# sys.argv = [
# 'sync_script.py',
# 'episode=/home/mathieub/Documents/DEV/PycharmProjects/ai-subtitles-sync/test_data/Zootopia 2 (2025)/Zootopia 2 (2025) WEBRip-1080p.mp4',
# 'episode_name=Zootopia 2 (2025)',
# 'subtitles=/home/mathieub/Documents/DEV/PycharmProjects/ai-subtitles-sync/test_data/Zootopia 2 (2025)/Zootopia 2 (2025) WEBRip-1080p.en.hi.srt',
# 'episode_language=English',
# 'subtitles_language=English'
# ]
# sys.argv = [
# 'sync_script.py',
# 'episode=/home/mathieub/Documents/DEV/PycharmProjects/ai-subtitles-sync/test_data/How to Train Your Dragon The Hidden World (2019)/How to Train Your Dragon The Hidden World (2019) Bluray-1080p.mp4',
# 'episode_name=How to Train Your Dragon: The Hidden World (2019)',
# 'subtitles=/home/mathieub/Documents/DEV/PycharmProjects/ai-subtitles-sync/test_data/How to Train Your Dragon The Hidden World (2019)/How to Train Your Dragon The Hidden World (2019) Bluray-1080p.en.srt',
# 'episode_language=English',
# 'subtitles_language=English'
# ]
main()