lyrics-transcriber 0.66.0__tar.gz → 0.68.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/PKG-INFO +1 -1
- {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/core/config.py +1 -1
- {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/core/controller.py +22 -0
- {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/correction/anchor_sequence.py +16 -3
- {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/frontend/package.json +1 -1
- lyrics_transcriber-0.66.0/lyrics_transcriber/frontend/web_assets/assets/index-BMWgZ3MR.js → lyrics_transcriber-0.68.0/lyrics_transcriber/frontend/web_assets/assets/index-D7BQUJXK.js +2 -2
- lyrics_transcriber-0.66.0/lyrics_transcriber/frontend/web_assets/assets/index-BMWgZ3MR.js.map → lyrics_transcriber-0.68.0/lyrics_transcriber/frontend/web_assets/assets/index-D7BQUJXK.js.map +1 -1
- {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/frontend/web_assets/index.html +1 -1
- {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/lyrics/base_lyrics_provider.py +1 -1
- lyrics_transcriber-0.68.0/lyrics_transcriber/output/ass/config.py +85 -0
- {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/output/ass/lyrics_line.py +1 -1
- {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/output/generator.py +21 -5
- {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/output/subtitles.py +2 -1
- {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/pyproject.toml +1 -1
- lyrics_transcriber-0.66.0/lyrics_transcriber/output/ass/config.py +0 -48
- {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/LICENSE +0 -0
- {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/README.md +0 -0
- {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/__init__.py +0 -0
- {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/cli/__init__.py +0 -0
- {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/cli/cli_main.py +0 -0
- {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/core/__init__.py +0 -0
- {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/correction/corrector.py +0 -0
- {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/correction/handlers/__init__.py +0 -0
- {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/correction/handlers/base.py +0 -0
- {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/correction/handlers/extend_anchor.py +0 -0
- {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/correction/handlers/levenshtein.py +0 -0
- {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/correction/handlers/llm.py +0 -0
- {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/correction/handlers/llm_providers.py +0 -0
- {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/correction/handlers/no_space_punct_match.py +0 -0
- {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/correction/handlers/relaxed_word_count_match.py +0 -0
- {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/correction/handlers/repeat.py +0 -0
- {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/correction/handlers/sound_alike.py +0 -0
- {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/correction/handlers/syllables_match.py +0 -0
- {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/correction/handlers/word_count_match.py +0 -0
- {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/correction/handlers/word_operations.py +0 -0
- {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/correction/operations.py +0 -0
- {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/correction/phrase_analyzer.py +0 -0
- {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/correction/text_utils.py +0 -0
- {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/frontend/.gitignore +0 -0
- {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/frontend/.yarn/releases/yarn-4.7.0.cjs +0 -0
- {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/frontend/.yarnrc.yml +0 -0
- {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/frontend/README.md +0 -0
- {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/frontend/__init__.py +0 -0
- {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/frontend/eslint.config.js +0 -0
- {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/frontend/index.html +0 -0
- {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/frontend/public/android-chrome-192x192.png +0 -0
- {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/frontend/public/android-chrome-512x512.png +0 -0
- {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/frontend/public/apple-touch-icon.png +0 -0
- {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/frontend/public/favicon-16x16.png +0 -0
- {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/frontend/public/favicon-32x32.png +0 -0
- {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/frontend/public/favicon.ico +0 -0
- {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/frontend/public/nomad-karaoke-logo.png +0 -0
- {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/frontend/src/App.tsx +0 -0
- {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/frontend/src/api.ts +0 -0
- {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/frontend/src/components/AddLyricsModal.tsx +0 -0
- {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/frontend/src/components/AudioPlayer.tsx +0 -0
- {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/frontend/src/components/CorrectionMetrics.tsx +0 -0
- {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/frontend/src/components/EditActionBar.tsx +0 -0
- {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/frontend/src/components/EditModal.tsx +0 -0
- {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/frontend/src/components/EditTimelineSection.tsx +0 -0
- {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/frontend/src/components/EditWordList.tsx +0 -0
- {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/frontend/src/components/FileUpload.tsx +0 -0
- {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/frontend/src/components/FindReplaceModal.tsx +0 -0
- {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/frontend/src/components/Header.tsx +0 -0
- {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/frontend/src/components/LyricsAnalyzer.tsx +0 -0
- {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/frontend/src/components/ModeSelector.tsx +0 -0
- {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/frontend/src/components/PreviewVideoSection.tsx +0 -0
- {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/frontend/src/components/ReferenceView.tsx +0 -0
- {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/frontend/src/components/ReviewChangesModal.tsx +0 -0
- {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/frontend/src/components/SegmentDetailsModal.tsx +0 -0
- {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/frontend/src/components/TimelineEditor.tsx +0 -0
- {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/frontend/src/components/TimingOffsetModal.tsx +0 -0
- {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/frontend/src/components/TranscriptionView.tsx +0 -0
- {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/frontend/src/components/WordDivider.tsx +0 -0
- {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/frontend/src/components/shared/components/HighlightedText.tsx +0 -0
- {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/frontend/src/components/shared/components/SourceSelector.tsx +0 -0
- {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/frontend/src/components/shared/components/Word.tsx +0 -0
- {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/frontend/src/components/shared/constants.ts +0 -0
- {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/frontend/src/components/shared/hooks/useWordClick.ts +0 -0
- {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/frontend/src/components/shared/styles.ts +0 -0
- {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/frontend/src/components/shared/types.js +0 -0
- {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/frontend/src/components/shared/types.ts +0 -0
- {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/frontend/src/components/shared/utils/keyboardHandlers.ts +0 -0
- {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/frontend/src/components/shared/utils/localStorage.ts +0 -0
- {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/frontend/src/components/shared/utils/referenceLineCalculator.ts +0 -0
- {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/frontend/src/components/shared/utils/segmentOperations.ts +0 -0
- {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/frontend/src/components/shared/utils/timingUtils.ts +0 -0
- {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/frontend/src/components/shared/utils/wordUtils.ts +0 -0
- {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/frontend/src/hooks/useManualSync.ts +0 -0
- {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/frontend/src/main.tsx +0 -0
- {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/frontend/src/theme.ts +0 -0
- {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/frontend/src/types/global.d.ts +0 -0
- {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/frontend/src/types.js +0 -0
- {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/frontend/src/types.ts +0 -0
- {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/frontend/src/validation.ts +0 -0
- {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/frontend/src/vite-env.d.ts +0 -0
- {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/frontend/tsconfig.app.json +0 -0
- {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/frontend/tsconfig.json +0 -0
- {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/frontend/tsconfig.node.json +0 -0
- {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/frontend/tsconfig.tsbuildinfo +0 -0
- {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/frontend/update_version.js +0 -0
- {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/frontend/vite.config.d.ts +0 -0
- {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/frontend/vite.config.js +0 -0
- {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/frontend/vite.config.ts +0 -0
- {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/frontend/web_assets/android-chrome-192x192.png +0 -0
- {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/frontend/web_assets/android-chrome-512x512.png +0 -0
- {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/frontend/web_assets/apple-touch-icon.png +0 -0
- {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/frontend/web_assets/favicon-16x16.png +0 -0
- {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/frontend/web_assets/favicon-32x32.png +0 -0
- {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/frontend/web_assets/favicon.ico +0 -0
- {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/frontend/web_assets/nomad-karaoke-logo.png +0 -0
- {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/frontend/yarn.lock +0 -0
- {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/lyrics/file_provider.py +0 -0
- {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/lyrics/genius.py +0 -0
- {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/lyrics/musixmatch.py +0 -0
- {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/lyrics/spotify.py +0 -0
- {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/lyrics/user_input_provider.py +0 -0
- {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/output/__init__.py +0 -0
- {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/output/ass/__init__.py +0 -0
- {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/output/ass/ass.py +0 -0
- {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/output/ass/ass_specs.txt +0 -0
- {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/output/ass/constants.py +0 -0
- {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/output/ass/event.py +0 -0
- {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/output/ass/formatters.py +0 -0
- {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/output/ass/lyrics_screen.py +0 -0
- {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/output/ass/section_detector.py +0 -0
- {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/output/ass/section_screen.py +0 -0
- {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/output/ass/style.py +0 -0
- {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/output/cdg.py +0 -0
- {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/output/cdgmaker/__init__.py +0 -0
- {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/output/cdgmaker/cdg.py +0 -0
- {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/output/cdgmaker/composer.py +0 -0
- {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/output/cdgmaker/config.py +0 -0
- {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/output/cdgmaker/images/instrumental.png +0 -0
- {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/output/cdgmaker/images/intro.png +0 -0
- {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/output/cdgmaker/pack.py +0 -0
- {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/output/cdgmaker/render.py +0 -0
- {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/output/cdgmaker/transitions/centertexttoplogobottomtext.png +0 -0
- {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/output/cdgmaker/transitions/circlein.png +0 -0
- {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/output/cdgmaker/transitions/circleout.png +0 -0
- {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/output/cdgmaker/transitions/fizzle.png +0 -0
- {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/output/cdgmaker/transitions/largecentertexttoplogo.png +0 -0
- {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/output/cdgmaker/transitions/rectangle.png +0 -0
- {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/output/cdgmaker/transitions/spiral.png +0 -0
- {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/output/cdgmaker/transitions/topleftmusicalnotes.png +0 -0
- {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/output/cdgmaker/transitions/wipein.png +0 -0
- {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/output/cdgmaker/transitions/wipeleft.png +0 -0
- {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/output/cdgmaker/transitions/wipeout.png +0 -0
- {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/output/cdgmaker/transitions/wiperight.png +0 -0
- {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/output/cdgmaker/utils.py +0 -0
- {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/output/fonts/AvenirNext-Bold.ttf +0 -0
- {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/output/fonts/DMSans-VariableFont_opsz,wght.ttf +0 -0
- {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/output/fonts/DMSerifDisplay-Regular.ttf +0 -0
- {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/output/fonts/Oswald-SemiBold.ttf +0 -0
- {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/output/fonts/Zurich_Cn_BT_Bold.ttf +0 -0
- {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/output/fonts/arial.ttf +0 -0
- {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/output/fonts/georgia.ttf +0 -0
- {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/output/fonts/verdana.ttf +0 -0
- {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/output/lrc_to_cdg.py +0 -0
- {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/output/lyrics_file.py +0 -0
- {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/output/plain_text.py +0 -0
- {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/output/segment_resizer.py +0 -0
- {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/output/video.py +0 -0
- {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/review/__init__.py +0 -0
- {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/review/server.py +0 -0
- {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/storage/__init__.py +0 -0
- {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/storage/dropbox.py +0 -0
- {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/transcribers/audioshake.py +0 -0
- {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/transcribers/base_transcriber.py +0 -0
- {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/transcribers/whisper.py +0 -0
- {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/types.py +0 -0
- {lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/utils/word_utils.py +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.3
|
2
2
|
Name: lyrics-transcriber
|
3
|
-
Version: 0.
|
3
|
+
Version: 0.68.0
|
4
4
|
Summary: Automatically create synchronised lyrics files in ASS and MidiCo LRC formats with word-level timestamps, using Whisper and lyrics from Genius and Spotify
|
5
5
|
License: MIT
|
6
6
|
Author: Andrew Beveridge
|
@@ -26,7 +26,7 @@ class OutputConfig:
|
|
26
26
|
"""Configuration for output generation."""
|
27
27
|
|
28
28
|
output_styles_json: str
|
29
|
-
|
29
|
+
default_max_line_length: int = 36
|
30
30
|
styles: Dict[str, Any] = field(default_factory=dict)
|
31
31
|
output_dir: Optional[str] = os.getcwd()
|
32
32
|
cache_dir: str = os.getenv(
|
{lyrics_transcriber-0.66.0 → lyrics_transcriber-0.68.0}/lyrics_transcriber/core/controller.py
RENAMED
@@ -109,6 +109,9 @@ class LyricsTranscriber:
|
|
109
109
|
# Initialize results
|
110
110
|
self.results = LyricsControllerResult()
|
111
111
|
|
112
|
+
# Load styles early so lyrics providers can use them
|
113
|
+
self._load_styles()
|
114
|
+
|
112
115
|
# Initialize components (with dependency injection)
|
113
116
|
self.transcribers = transcribers or self._initialize_transcribers()
|
114
117
|
self.lyrics_providers = lyrics_providers or self._initialize_lyrics_providers()
|
@@ -127,6 +130,20 @@ class LyricsTranscriber:
|
|
127
130
|
if self.output_config.render_video:
|
128
131
|
self.logger.info(f" Video resolution: {self.output_config.video_resolution}")
|
129
132
|
|
133
|
+
def _load_styles(self) -> None:
|
134
|
+
"""Load styles from JSON file if available."""
|
135
|
+
if self.output_config.output_styles_json and os.path.exists(self.output_config.output_styles_json):
|
136
|
+
try:
|
137
|
+
with open(self.output_config.output_styles_json, "r") as f:
|
138
|
+
self.output_config.styles = json.load(f)
|
139
|
+
self.logger.debug(f"Loaded output styles from: {self.output_config.output_styles_json}")
|
140
|
+
except Exception as e:
|
141
|
+
self.logger.warning(f"Failed to load output styles file: {str(e)}")
|
142
|
+
self.output_config.styles = {}
|
143
|
+
else:
|
144
|
+
self.logger.debug("No styles JSON file provided or file does not exist")
|
145
|
+
self.output_config.styles = {}
|
146
|
+
|
130
147
|
def _sanitize_filename(self, filename: str) -> str:
|
131
148
|
"""Replace or remove characters that are unsafe for filenames."""
|
132
149
|
if not filename:
|
@@ -189,6 +206,10 @@ class LyricsTranscriber:
|
|
189
206
|
"""Initialize available lyrics providers."""
|
190
207
|
providers = {}
|
191
208
|
|
209
|
+
# Get max_line_length from styles if available, otherwise use config default
|
210
|
+
max_line_length = self.output_config.styles.get("karaoke", {}).get("max_line_length", self.output_config.default_max_line_length)
|
211
|
+
self.logger.info(f"Using max_line_length for lyrics providers: {max_line_length}")
|
212
|
+
|
192
213
|
# Create provider config with all necessary parameters
|
193
214
|
provider_config = LyricsProviderConfig(
|
194
215
|
genius_api_token=self.lyrics_config.genius_api_token,
|
@@ -197,6 +218,7 @@ class LyricsTranscriber:
|
|
197
218
|
lyrics_file=self.lyrics_config.lyrics_file,
|
198
219
|
cache_dir=self.output_config.cache_dir,
|
199
220
|
audio_filepath=self.audio_filepath,
|
221
|
+
max_line_length=max_line_length,
|
200
222
|
)
|
201
223
|
|
202
224
|
if provider_config.lyrics_file and os.path.exists(provider_config.lyrics_file):
|
@@ -432,11 +432,12 @@ class AnchorSequenceFinder:
|
|
432
432
|
self.logger.info(f"🔍 ANCHOR SEARCH: ✅ All {len(async_results)} jobs submitted")
|
433
433
|
|
434
434
|
# Collect results with individual timeouts
|
435
|
+
batch_results = []
|
436
|
+
batch_size = 10
|
437
|
+
|
435
438
|
for i, async_result in enumerate(async_results):
|
436
439
|
n_gram_length = n_gram_lengths[i]
|
437
440
|
try:
|
438
|
-
self.logger.info(f"🔍 ANCHOR SEARCH: ⏳ Collecting result {i+1}/{len(async_results)} for n-gram length {n_gram_length}")
|
439
|
-
|
440
441
|
# Check remaining time for pool timeout (more lenient than overall timeout)
|
441
442
|
elapsed_time = time.time() - start_time
|
442
443
|
remaining_time = max(10, self.timeout_seconds - elapsed_time) if self.timeout_seconds > 0 else pool_timeout
|
@@ -449,12 +450,24 @@ class AnchorSequenceFinder:
|
|
449
450
|
result = async_result.get(timeout=individual_timeout)
|
450
451
|
results.append(result)
|
451
452
|
|
452
|
-
|
453
|
+
# Batch logging - collect info for batched logging
|
454
|
+
batch_results.append((n_gram_length, len(result)))
|
455
|
+
|
456
|
+
# Log progress every batch_size results or on the last result
|
457
|
+
if (i + 1) % batch_size == 0 or (i + 1) == len(async_results):
|
458
|
+
total_anchors_in_batch = sum(anchor_count for _, anchor_count in batch_results)
|
459
|
+
n_gram_ranges = [str(ng) for ng, _ in batch_results]
|
460
|
+
range_str = f"{n_gram_ranges[0]}-{n_gram_ranges[-1]}" if len(n_gram_ranges) > 1 else n_gram_ranges[0]
|
461
|
+
self.logger.info(f"🔍 ANCHOR SEARCH: ✅ Completed n-gram lengths {range_str} ({i+1-len(batch_results)+1}-{i+1}/{len(async_results)}) - found {total_anchors_in_batch} anchors total")
|
462
|
+
batch_results = [] # Reset batch
|
453
463
|
|
454
464
|
except Exception as e:
|
455
465
|
self.logger.warning(f"🔍 ANCHOR SEARCH: ⚠️ n-gram length {n_gram_length} failed or timed out: {str(e)}")
|
456
466
|
results.append([]) # Add empty result to maintain order
|
457
467
|
|
468
|
+
# Add failed result to batch for logging
|
469
|
+
batch_results.append((n_gram_length, 0))
|
470
|
+
|
458
471
|
# If we're running short on time, trigger fallback early
|
459
472
|
if self.timeout_seconds > 0 and (time.time() - start_time) > (self.timeout_seconds * 0.8):
|
460
473
|
self.logger.warning(f"🔍 ANCHOR SEARCH: ⚠️ Approaching timeout limit, triggering early fallback")
|
@@ -38915,7 +38915,7 @@ const theme = createTheme({
|
|
38915
38915
|
spacing: (factor) => `${0.6 * factor}rem`
|
38916
38916
|
// Further reduced from 0.8 * factor
|
38917
38917
|
});
|
38918
|
-
const version = "0.
|
38918
|
+
const version = "0.68.0";
|
38919
38919
|
const packageJson = {
|
38920
38920
|
version
|
38921
38921
|
};
|
@@ -38926,4 +38926,4 @@ ReactDOM$1.createRoot(document.getElementById("root")).render(
|
|
38926
38926
|
/* @__PURE__ */ jsxRuntimeExports.jsx(App, {})
|
38927
38927
|
] })
|
38928
38928
|
);
|
38929
|
-
//# sourceMappingURL=index-
|
38929
|
+
//# sourceMappingURL=index-D7BQUJXK.js.map
|