karaoke-gen 0.75.53__py3-none-any.whl → 0.76.20__py3-none-any.whl
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.
- karaoke_gen/audio_fetcher.py +218 -0
- karaoke_gen/karaoke_gen.py +190 -25
- karaoke_gen/lyrics_processor.py +14 -25
- karaoke_gen/utils/__init__.py +26 -0
- karaoke_gen/utils/cli_args.py +9 -1
- karaoke_gen/utils/gen_cli.py +1 -1
- karaoke_gen/utils/remote_cli.py +33 -6
- {karaoke_gen-0.75.53.dist-info → karaoke_gen-0.76.20.dist-info}/METADATA +2 -2
- {karaoke_gen-0.75.53.dist-info → karaoke_gen-0.76.20.dist-info}/RECORD +36 -32
- lyrics_transcriber/frontend/index.html +5 -1
- lyrics_transcriber/frontend/package-lock.json +4553 -0
- lyrics_transcriber/frontend/package.json +3 -0
- lyrics_transcriber/frontend/playwright.config.ts +69 -0
- lyrics_transcriber/frontend/public/nomad-karaoke-logo.svg +5 -0
- lyrics_transcriber/frontend/src/App.tsx +88 -59
- lyrics_transcriber/frontend/src/components/AIFeedbackModal.tsx +55 -21
- lyrics_transcriber/frontend/src/components/AppHeader.tsx +65 -0
- lyrics_transcriber/frontend/src/components/CorrectedWordWithActions.tsx +5 -5
- lyrics_transcriber/frontend/src/components/DurationTimelineView.tsx +9 -9
- lyrics_transcriber/frontend/src/components/EditModal.tsx +1 -1
- lyrics_transcriber/frontend/src/components/EditWordList.tsx +1 -1
- lyrics_transcriber/frontend/src/components/Header.tsx +34 -48
- lyrics_transcriber/frontend/src/components/LyricsSynchronizer/TimelineCanvas.tsx +22 -21
- lyrics_transcriber/frontend/src/components/ReferenceView.tsx +1 -1
- lyrics_transcriber/frontend/src/components/TranscriptionView.tsx +1 -1
- lyrics_transcriber/frontend/src/components/WordDivider.tsx +3 -3
- lyrics_transcriber/frontend/src/components/shared/components/Word.tsx +2 -2
- lyrics_transcriber/frontend/src/components/shared/constants.ts +15 -5
- lyrics_transcriber/frontend/src/main.tsx +1 -7
- lyrics_transcriber/frontend/src/theme.ts +337 -135
- lyrics_transcriber/frontend/vite.config.ts +5 -0
- lyrics_transcriber/frontend/yarn.lock +1005 -1046
- lyrics_transcriber/review/server.py +1 -1
- {karaoke_gen-0.75.53.dist-info → karaoke_gen-0.76.20.dist-info}/WHEEL +0 -0
- {karaoke_gen-0.75.53.dist-info → karaoke_gen-0.76.20.dist-info}/entry_points.txt +0 -0
- {karaoke_gen-0.75.53.dist-info → karaoke_gen-0.76.20.dist-info}/licenses/LICENSE +0 -0
karaoke_gen/utils/remote_cli.py
CHANGED
|
@@ -292,6 +292,8 @@ class RemoteKaraokeClient:
|
|
|
292
292
|
# Two-phase workflow (Batch 6)
|
|
293
293
|
prep_only: bool = False,
|
|
294
294
|
keep_brand_code: Optional[str] = None,
|
|
295
|
+
# Theme system
|
|
296
|
+
theme_id: Optional[str] = None,
|
|
295
297
|
) -> Dict[str, Any]:
|
|
296
298
|
"""
|
|
297
299
|
Submit a new karaoke generation job from a YouTube/online URL.
|
|
@@ -322,6 +324,7 @@ class RemoteKaraokeClient:
|
|
|
322
324
|
clean_instrumental_model: Model for clean instrumental separation
|
|
323
325
|
backing_vocals_models: List of models for backing vocals separation
|
|
324
326
|
other_stems_models: List of models for other stems (bass, drums, etc.)
|
|
327
|
+
theme_id: Theme ID from GCS themes (e.g., 'nomad', 'default')
|
|
325
328
|
"""
|
|
326
329
|
self.logger.info(f"Submitting URL-based job: {url}")
|
|
327
330
|
|
|
@@ -367,7 +370,10 @@ class RemoteKaraokeClient:
|
|
|
367
370
|
create_request['prep_only'] = prep_only
|
|
368
371
|
if keep_brand_code:
|
|
369
372
|
create_request['keep_brand_code'] = keep_brand_code
|
|
370
|
-
|
|
373
|
+
# Theme system
|
|
374
|
+
if theme_id:
|
|
375
|
+
create_request['theme_id'] = theme_id
|
|
376
|
+
|
|
371
377
|
self.logger.info(f"Creating URL-based job at {self.config.service_url}/api/jobs/create-from-url")
|
|
372
378
|
|
|
373
379
|
response = self._request('POST', '/api/jobs/create-from-url', json=create_request)
|
|
@@ -396,9 +402,9 @@ class RemoteKaraokeClient:
|
|
|
396
402
|
return result
|
|
397
403
|
|
|
398
404
|
def submit_job(
|
|
399
|
-
self,
|
|
400
|
-
filepath: str,
|
|
401
|
-
artist: str,
|
|
405
|
+
self,
|
|
406
|
+
filepath: str,
|
|
407
|
+
artist: str,
|
|
402
408
|
title: str,
|
|
403
409
|
style_params_path: Optional[str] = None,
|
|
404
410
|
enable_cdg: bool = True,
|
|
@@ -425,6 +431,8 @@ class RemoteKaraokeClient:
|
|
|
425
431
|
# Two-phase workflow (Batch 6)
|
|
426
432
|
prep_only: bool = False,
|
|
427
433
|
keep_brand_code: Optional[str] = None,
|
|
434
|
+
# Theme system
|
|
435
|
+
theme_id: Optional[str] = None,
|
|
428
436
|
) -> Dict[str, Any]:
|
|
429
437
|
"""
|
|
430
438
|
Submit a new karaoke generation job with optional style configuration.
|
|
@@ -456,6 +464,7 @@ class RemoteKaraokeClient:
|
|
|
456
464
|
backing_vocals_models: List of models for backing vocals separation
|
|
457
465
|
other_stems_models: List of models for other stems (bass, drums, etc.)
|
|
458
466
|
existing_instrumental: Path to existing instrumental file to use instead of AI separation
|
|
467
|
+
theme_id: Theme ID from GCS themes (e.g., 'nomad', 'default')
|
|
459
468
|
"""
|
|
460
469
|
file_path = Path(filepath)
|
|
461
470
|
|
|
@@ -574,7 +583,10 @@ class RemoteKaraokeClient:
|
|
|
574
583
|
create_request['prep_only'] = prep_only
|
|
575
584
|
if keep_brand_code:
|
|
576
585
|
create_request['keep_brand_code'] = keep_brand_code
|
|
577
|
-
|
|
586
|
+
# Theme system
|
|
587
|
+
if theme_id:
|
|
588
|
+
create_request['theme_id'] = theme_id
|
|
589
|
+
|
|
578
590
|
response = self._request('POST', '/api/jobs/create-with-upload-urls', json=create_request)
|
|
579
591
|
|
|
580
592
|
if response.status_code != 200:
|
|
@@ -1195,6 +1207,8 @@ class RemoteKaraokeClient:
|
|
|
1195
1207
|
clean_instrumental_model: Optional[str] = None,
|
|
1196
1208
|
backing_vocals_models: Optional[list] = None,
|
|
1197
1209
|
other_stems_models: Optional[list] = None,
|
|
1210
|
+
# Theme system
|
|
1211
|
+
theme_id: Optional[str] = None,
|
|
1198
1212
|
) -> Dict[str, Any]:
|
|
1199
1213
|
"""
|
|
1200
1214
|
Search for audio by artist and title (Batch 5 - Flacfetch integration).
|
|
@@ -1247,7 +1261,10 @@ class RemoteKaraokeClient:
|
|
|
1247
1261
|
request_data['backing_vocals_models'] = backing_vocals_models
|
|
1248
1262
|
if other_stems_models:
|
|
1249
1263
|
request_data['other_stems_models'] = other_stems_models
|
|
1250
|
-
|
|
1264
|
+
# Theme system
|
|
1265
|
+
if theme_id:
|
|
1266
|
+
request_data['theme_id'] = theme_id
|
|
1267
|
+
|
|
1251
1268
|
# Prepare style files for upload if provided
|
|
1252
1269
|
style_files = []
|
|
1253
1270
|
local_style_files: Dict[str, str] = {} # file_type -> local_path
|
|
@@ -3029,6 +3046,8 @@ def main():
|
|
|
3029
3046
|
logger.info(f"Searching for: {artist} - {title}")
|
|
3030
3047
|
if getattr(args, 'auto_download', False) or config.non_interactive:
|
|
3031
3048
|
logger.info(f"Auto-download: enabled (will auto-select best source)")
|
|
3049
|
+
if getattr(args, 'theme', None):
|
|
3050
|
+
logger.info(f"Theme: {args.theme}")
|
|
3032
3051
|
if args.style_params_json:
|
|
3033
3052
|
logger.info(f"Style: {args.style_params_json}")
|
|
3034
3053
|
logger.info(f"CDG: {args.enable_cdg}, TXT: {args.enable_txt}")
|
|
@@ -3070,6 +3089,8 @@ def main():
|
|
|
3070
3089
|
clean_instrumental_model=getattr(args, 'clean_instrumental_model', None),
|
|
3071
3090
|
backing_vocals_models=getattr(args, 'backing_vocals_models', None),
|
|
3072
3091
|
other_stems_models=getattr(args, 'other_stems_models', None),
|
|
3092
|
+
# Theme system
|
|
3093
|
+
theme_id=getattr(args, 'theme', None),
|
|
3073
3094
|
)
|
|
3074
3095
|
|
|
3075
3096
|
job_id = result.get('job_id')
|
|
@@ -3106,6 +3127,8 @@ def main():
|
|
|
3106
3127
|
logger.info(f"Title: {title}")
|
|
3107
3128
|
if not artist and not title and is_url_input:
|
|
3108
3129
|
logger.info(f"Artist/Title: (will be auto-detected from URL)")
|
|
3130
|
+
if getattr(args, 'theme', None):
|
|
3131
|
+
logger.info(f"Theme: {args.theme}")
|
|
3109
3132
|
if args.style_params_json:
|
|
3110
3133
|
logger.info(f"Style: {args.style_params_json}")
|
|
3111
3134
|
logger.info(f"CDG: {args.enable_cdg}, TXT: {args.enable_txt}")
|
|
@@ -3206,6 +3229,8 @@ def main():
|
|
|
3206
3229
|
# Two-phase workflow (Batch 6)
|
|
3207
3230
|
prep_only=getattr(args, 'prep_only', False),
|
|
3208
3231
|
keep_brand_code=keep_brand_code_value,
|
|
3232
|
+
# Theme system
|
|
3233
|
+
theme_id=getattr(args, 'theme', None),
|
|
3209
3234
|
)
|
|
3210
3235
|
else:
|
|
3211
3236
|
# File-based job submission
|
|
@@ -3238,6 +3263,8 @@ def main():
|
|
|
3238
3263
|
# Two-phase workflow (Batch 6)
|
|
3239
3264
|
prep_only=getattr(args, 'prep_only', False),
|
|
3240
3265
|
keep_brand_code=keep_brand_code_value,
|
|
3266
|
+
# Theme system
|
|
3267
|
+
theme_id=getattr(args, 'theme', None),
|
|
3241
3268
|
)
|
|
3242
3269
|
job_id = result.get('job_id')
|
|
3243
3270
|
style_assets = result.get('style_assets_uploaded', [])
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: karaoke-gen
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.76.20
|
|
4
4
|
Summary: Generate karaoke videos with synchronized lyrics. Handles the entire process from downloading audio and lyrics to creating the final video with title screens.
|
|
5
5
|
License: MIT
|
|
6
6
|
License-File: LICENSE
|
|
@@ -308,7 +308,7 @@ karaoke-gen-remote \
|
|
|
308
308
|
|----------|-------------|---------|
|
|
309
309
|
| `KARAOKE_GEN_URL` | Backend service URL | Required |
|
|
310
310
|
| `KARAOKE_GEN_AUTH_TOKEN` | Admin auth token (for protected endpoints) | Optional |
|
|
311
|
-
| `REVIEW_UI_URL` | Lyrics review UI URL | `https://
|
|
311
|
+
| `REVIEW_UI_URL` | Lyrics review UI URL | `https://gen.nomadkaraoke.com/lyrics/` |
|
|
312
312
|
| `POLL_INTERVAL` | Seconds between status polls | `5` |
|
|
313
313
|
|
|
314
314
|
**Note:** The `REVIEW_UI_URL` defaults to the hosted lyrics review UI. For local development, set it to `http://localhost:5173` if you're running the frontend dev server.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
karaoke_gen/__init__.py,sha256=wHpDbURJxmJAMNZ0uQjISv5MIT7KD9RWYi15xlYgEhU,1351
|
|
2
|
-
karaoke_gen/audio_fetcher.py,sha256=
|
|
2
|
+
karaoke_gen/audio_fetcher.py,sha256=EuMSO_wG0z0ldfQQ_xGC8kdoUCDB1Rr2_IuWIZ218lA,71380
|
|
3
3
|
karaoke_gen/audio_processor.py,sha256=YCMsxh-OSzC6h1Oqht8gh48j4KaRDuRIMUUsNNQxJeY,39913
|
|
4
4
|
karaoke_gen/config.py,sha256=LBZKpvwSgta8YoVX2GFFW-4CP22AyRtqsBn-KCeh8eg,2499
|
|
5
5
|
karaoke_gen/file_handler.py,sha256=jnPc4kFtG-PX-IVPHYWa7maXd4lNmbkKd1HogDNzgN8,16674
|
|
@@ -12,8 +12,8 @@ karaoke_gen/instrumental_review/static/index.html,sha256=EjMFxCQJOUSrsgwIXAW3R4b
|
|
|
12
12
|
karaoke_gen/instrumental_review/waveform.py,sha256=Q6LBPZrJAD6mzZ7TmRf3Tf4gwYhUYTHumJKytLs3hSg,12940
|
|
13
13
|
karaoke_gen/karaoke_finalise/__init__.py,sha256=HqZ7TIhgt_tYZ-nb_NNCaejWAcF_aK-7wJY5TaW_keM,46
|
|
14
14
|
karaoke_gen/karaoke_finalise/karaoke_finalise.py,sha256=Wn1KcdRyINT63UxKUPT9uB-bsrFVih0Im_cjXtequS0,93534
|
|
15
|
-
karaoke_gen/karaoke_gen.py,sha256
|
|
16
|
-
karaoke_gen/lyrics_processor.py,sha256=
|
|
15
|
+
karaoke_gen/karaoke_gen.py,sha256=-kmv26iqF36OXHoKAdFCXqaLPhrqk-aH958v-cPbTWM,65694
|
|
16
|
+
karaoke_gen/lyrics_processor.py,sha256=IzwscxBtDe2l7NhmWY8PdglYeMfIXhh2AWHQMY-ro1M,22829
|
|
17
17
|
karaoke_gen/metadata.py,sha256=SZW6TuUpkGGU98gRdjPfrR8F4vWXjnfCSGry2XD5_A4,6689
|
|
18
18
|
karaoke_gen/pipeline/__init__.py,sha256=-MZnba4qobr1qGDamG9CieLl2pWCZMEB5_Yur62RKeM,2106
|
|
19
19
|
karaoke_gen/pipeline/base.py,sha256=yg4LIm7Mc9ER0zCmZcUv4huEkotSSXK_0OAFio-TSNI,6235
|
|
@@ -33,11 +33,11 @@ karaoke_gen/resources/Oswald-Bold.ttf,sha256=S_2mLpNkBsDTe8FQRzrj1Qr-wloGETMJgoA
|
|
|
33
33
|
karaoke_gen/resources/Oswald-SemiBold.ttf,sha256=G-vSJeeyEVft7D4s7FZQtGfXAViWPjzGCImV2a4u9d8,87608
|
|
34
34
|
karaoke_gen/resources/Zurich_Cn_BT_Bold.ttf,sha256=WNG5LOQ-uGUF_WWT5aQHzVbyWvQqGO5sZ4E-nRmvPuI,37780
|
|
35
35
|
karaoke_gen/style_loader.py,sha256=13010BVxwVgamRn8K8Z9fNgLBdPs9LFmWMRMLyBdits,17908
|
|
36
|
-
karaoke_gen/utils/__init__.py,sha256=
|
|
36
|
+
karaoke_gen/utils/__init__.py,sha256=zAb4sG4GMkBlkD2G1EDu-GsMbjcjFT127lFBwh0xVPI,1875
|
|
37
37
|
karaoke_gen/utils/bulk_cli.py,sha256=s2SXTnnQf7TM8Fk8yz9Cfd3Xl08uHBnve_rTkf4wE5g,19337
|
|
38
|
-
karaoke_gen/utils/cli_args.py,sha256=
|
|
39
|
-
karaoke_gen/utils/gen_cli.py,sha256=
|
|
40
|
-
karaoke_gen/utils/remote_cli.py,sha256=
|
|
38
|
+
karaoke_gen/utils/cli_args.py,sha256=4m2EOaxg-bYzXmlSOkpQUoVSi2Q9Xr3VtBZA7z3quBk,18515
|
|
39
|
+
karaoke_gen/utils/gen_cli.py,sha256=5ydiudcIOmNvA-YHe7x6QZepoQGg1dtW4bOkNOBhXhY,44142
|
|
40
|
+
karaoke_gen/utils/remote_cli.py,sha256=sWlbu29fQwoqNtIYUeC9nipux36sFJAUe-aMbGCGv_c,145647
|
|
41
41
|
karaoke_gen/video_background_processor.py,sha256=p3sryMxmkori4Uy2MYgmlk5_QQ7Uh9IoVJLAdkdLIUI,15124
|
|
42
42
|
karaoke_gen/video_generator.py,sha256=B7BQBrjkyvk3L3sctnPXnvr1rzkw0NYx5UCAl0ZiVx0,18464
|
|
43
43
|
lyrics_transcriber/__init__.py,sha256=g9ZbJg9U1qo7XzrC25J3bTKcNzzwUJWDVdi_7-hjcM4,412
|
|
@@ -124,8 +124,10 @@ lyrics_transcriber/frontend/README.md,sha256=-D6CAfKTT7Y0V3EjlZ2fMy7fyctFQ4x2TJ9
|
|
|
124
124
|
lyrics_transcriber/frontend/REPLACE_ALL_FUNCTIONALITY.md,sha256=iRZbicW5satHel9gbG-uLyZ7oq3xdp87KQlJEL1ZhK8,8384
|
|
125
125
|
lyrics_transcriber/frontend/__init__.py,sha256=nW8acRSWTjXoRwGqcTU4w-__X7tMAE0iXL0uihBN3CU,836
|
|
126
126
|
lyrics_transcriber/frontend/eslint.config.js,sha256=3ADH23ANA4NNBKFy6nCVk65e8bx1DrVd_FIaYNnhuqA,734
|
|
127
|
-
lyrics_transcriber/frontend/index.html,sha256=
|
|
128
|
-
lyrics_transcriber/frontend/package.json,sha256=
|
|
127
|
+
lyrics_transcriber/frontend/index.html,sha256=hcVQvxU1yITMrMS4vVLwn4YwvnlXsfl4XY9UNtXvWAw,1135
|
|
128
|
+
lyrics_transcriber/frontend/package-lock.json,sha256=gQekpsz4CAKMJ8Fi331Q3Pv5yqhZlQ-nbGoDNnF35WE,159262
|
|
129
|
+
lyrics_transcriber/frontend/package.json,sha256=ttlZ0EqPSz0HIkjyCt_3szk1CsFrLR-uNtyhdxsc30w,1278
|
|
130
|
+
lyrics_transcriber/frontend/playwright.config.ts,sha256=7AtyWuAP193WVbFDqzqKMYZwE1dZ7TZ_QKzNfP8hIB0,1520
|
|
129
131
|
lyrics_transcriber/frontend/public/android-chrome-192x192.png,sha256=lg-6aPF5mGLiuG7LyftZk_0RI41srmpA8wj-NkaaQms,17632
|
|
130
132
|
lyrics_transcriber/frontend/public/android-chrome-512x512.png,sha256=x-zuKT3NYsTqAWzhKRTZeD4-0uYoUjqMPZpKTChqNJ8,123447
|
|
131
133
|
lyrics_transcriber/frontend/public/apple-touch-icon.png,sha256=6y5vGra54w5oc8VP6sn2JjoQtN9hWTKn0YPhmdlmfU0,16188
|
|
@@ -133,27 +135,29 @@ lyrics_transcriber/frontend/public/favicon-16x16.png,sha256=2wy_7ZmVS4d7umByJVHQ
|
|
|
133
135
|
lyrics_transcriber/frontend/public/favicon-32x32.png,sha256=6TyrRMIw6G8dpG4_QWVTY8DMxo0bIGzc_9aOJrkiJKM,1297
|
|
134
136
|
lyrics_transcriber/frontend/public/favicon.ico,sha256=ZK7QvdBuZp0QxPkluCW4IKxfleFmFLp1KkG_d5xmx7E,15406
|
|
135
137
|
lyrics_transcriber/frontend/public/nomad-karaoke-logo.png,sha256=jTTBFXV6hGJGolZYQ-dIjgQQbMsehk5XGtsllhLrdzg,212641
|
|
136
|
-
lyrics_transcriber/frontend/
|
|
138
|
+
lyrics_transcriber/frontend/public/nomad-karaoke-logo.svg,sha256=0LOH346_a-1JeYquMWd1v2A3XMN8zLDBeujfWAOeNYk,9185
|
|
139
|
+
lyrics_transcriber/frontend/src/App.tsx,sha256=STVmqN3xtXambV_5X4M0MNuwYjARHBQfn1cuCqxNGkw,7979
|
|
137
140
|
lyrics_transcriber/frontend/src/api.ts,sha256=GcjbOrlU7EdUpZ7MUPFqE1rtH-ckdw8wHtgyQxWateY,8648
|
|
138
|
-
lyrics_transcriber/frontend/src/components/AIFeedbackModal.tsx,sha256=
|
|
141
|
+
lyrics_transcriber/frontend/src/components/AIFeedbackModal.tsx,sha256=kDmfdTgPzqNVPMbh6ztkVod5iXE7QAfgkMMyseO07ww,5602
|
|
139
142
|
lyrics_transcriber/frontend/src/components/AddLyricsModal.tsx,sha256=ubJwQewryjUrXwpBkITQNu4POhoUtDbNA93cqa-yJKY,3416
|
|
140
143
|
lyrics_transcriber/frontend/src/components/AgenticCorrectionMetrics.tsx,sha256=Yg6FG0LtrneRfAYeBu3crt_RdN-_o7FojtYhDMDKi0o,8595
|
|
144
|
+
lyrics_transcriber/frontend/src/components/AppHeader.tsx,sha256=5KUVADDv9cAs2WNX9M31utQIYHKMi81unzrCW3j1fl0,2396
|
|
141
145
|
lyrics_transcriber/frontend/src/components/AudioPlayer.tsx,sha256=XOCz0VtGiAIBs1qnCwrAixwfgHbTSGpjEb1jQg8wqzc,5441
|
|
142
|
-
lyrics_transcriber/frontend/src/components/CorrectedWordWithActions.tsx,sha256=
|
|
146
|
+
lyrics_transcriber/frontend/src/components/CorrectedWordWithActions.tsx,sha256=lcOQhSQBuTBv-adGB4uOb66qR-uX4OuN5P0CfFMxmHo,4941
|
|
143
147
|
lyrics_transcriber/frontend/src/components/CorrectionAnnotationModal.tsx,sha256=XtF5XNLL2ztm714tXql7rKi2BX4k_bsizpZ_ZCvpu8s,13368
|
|
144
148
|
lyrics_transcriber/frontend/src/components/CorrectionDetailCard.tsx,sha256=Hp-i1iSB3pzrpPH2wIREtEHHaReimBaYi8vcSUUArlg,9512
|
|
145
149
|
lyrics_transcriber/frontend/src/components/CorrectionMetrics.tsx,sha256=CoTZS9Z3pf4lfPrzpQ2hZvLqFvt-IarSGBSCxFxD-y4,6274
|
|
146
|
-
lyrics_transcriber/frontend/src/components/DurationTimelineView.tsx,sha256=
|
|
150
|
+
lyrics_transcriber/frontend/src/components/DurationTimelineView.tsx,sha256=d950EHJ52ODkygUkdlO4QNta5Ru8h7DRZIqR8IjOlvQ,10121
|
|
147
151
|
lyrics_transcriber/frontend/src/components/EditActionBar.tsx,sha256=nLRVA3m3bQFqLtqlYasn7WeZNXvPvpG0sXuIv5QXvDc,2174
|
|
148
|
-
lyrics_transcriber/frontend/src/components/EditModal.tsx,sha256=
|
|
152
|
+
lyrics_transcriber/frontend/src/components/EditModal.tsx,sha256=4smUvxF-45k-SAGXwkoBJmV37-nWWkE7HsR9w1OS6x8,24687
|
|
149
153
|
lyrics_transcriber/frontend/src/components/EditTimelineSection.tsx,sha256=VQy5fpzKBG_9ZLyWHB8b8Ii61YwckCOjnYf1oezY0d4,19586
|
|
150
|
-
lyrics_transcriber/frontend/src/components/EditWordList.tsx,sha256=
|
|
154
|
+
lyrics_transcriber/frontend/src/components/EditWordList.tsx,sha256=XN59JnNPYNI4KrSenW7cYC6zUIlK7GvlyRbj9eg-Eac,13716
|
|
151
155
|
lyrics_transcriber/frontend/src/components/FileUpload.tsx,sha256=fwn2rMWtMLPTZLREMb3ps4prSf9nzxGwnjmeC6KYsJA,2383
|
|
152
156
|
lyrics_transcriber/frontend/src/components/FindReplaceModal.tsx,sha256=U7duKns4IqNXwbWFbQfdyaswnvkSRpfsU0UG__-Serc,20192
|
|
153
|
-
lyrics_transcriber/frontend/src/components/Header.tsx,sha256=
|
|
157
|
+
lyrics_transcriber/frontend/src/components/Header.tsx,sha256=UmQzQpsdLrtzi9U5HFDtvtr6vq9qZu3cnPDnT_T3QuI,18151
|
|
154
158
|
lyrics_transcriber/frontend/src/components/LyricsAnalyzer.tsx,sha256=TFo2HCr6k9bENsQm-AfT797ZyFLqvKDa8g5W-pw1v24,54256
|
|
155
159
|
lyrics_transcriber/frontend/src/components/LyricsSynchronizer/SyncControls.tsx,sha256=j4rQjBQVbaPsp1ra_rvEoCqmX3JFJdfNnFvj3BvfsgQ,6069
|
|
156
|
-
lyrics_transcriber/frontend/src/components/LyricsSynchronizer/TimelineCanvas.tsx,sha256=
|
|
160
|
+
lyrics_transcriber/frontend/src/components/LyricsSynchronizer/TimelineCanvas.tsx,sha256=DuQBAdF8bYcAYKNEWVklXSAlEykhIDQKbELq_4SEPCg,27415
|
|
157
161
|
lyrics_transcriber/frontend/src/components/LyricsSynchronizer/UpcomingWordsBar.tsx,sha256=BXkEeo5yMgHkeOCBcZKqxMb1rspjXH-X5_6X9Hl7z3E,2588
|
|
158
162
|
lyrics_transcriber/frontend/src/components/LyricsSynchronizer/index.tsx,sha256=jOAmlkodaGzceQLG11ihprFMcARVbeJ_qjMcUkQj5Oo,34275
|
|
159
163
|
lyrics_transcriber/frontend/src/components/MetricsDashboard.tsx,sha256=33XpyHj0siBQivE8vLgliyiwmdsAfnNQh5Py4mnhXi8,1724
|
|
@@ -161,18 +165,18 @@ lyrics_transcriber/frontend/src/components/ModeSelectionModal.tsx,sha256=eihGI49
|
|
|
161
165
|
lyrics_transcriber/frontend/src/components/ModeSelector.tsx,sha256=HnBAK_gFgNBJLtMC_ESMVdUapDjmqmoLX8pQeyHfpOw,2651
|
|
162
166
|
lyrics_transcriber/frontend/src/components/ModelSelector.tsx,sha256=lfG_B5VAzSfrU0FqJl8XptN6DVt2kSljU96HMXo8mf4,559
|
|
163
167
|
lyrics_transcriber/frontend/src/components/PreviewVideoSection.tsx,sha256=59ZhG5XsxUZ_dkK8BjTQhYmYP5Wv86uRR-xtuwFRK8c,5582
|
|
164
|
-
lyrics_transcriber/frontend/src/components/ReferenceView.tsx,sha256=
|
|
168
|
+
lyrics_transcriber/frontend/src/components/ReferenceView.tsx,sha256=_9idlSTHQ8YZqPslhpuW8R_6kAHGWPMC9GvikpwH-AY,10532
|
|
165
169
|
lyrics_transcriber/frontend/src/components/ReplaceAllLyricsModal.tsx,sha256=pVlqHrSloxXZV_Ib8cbk1invF7WA3uge5b7pnFPe9Pc,12290
|
|
166
170
|
lyrics_transcriber/frontend/src/components/ReviewChangesModal.tsx,sha256=VQg_gBFViAxQu9Z75o6rOsvmH5DZBjKq9FkU8aB_7mI,13790
|
|
167
171
|
lyrics_transcriber/frontend/src/components/SegmentDetailsModal.tsx,sha256=6ME02FkFwCgDAxW49yW260N4vbr80eAJ332Ex811GOo,1643
|
|
168
172
|
lyrics_transcriber/frontend/src/components/TimelineEditor.tsx,sha256=gJRCxdmJo80g0h5hq5AtDHK-HbOoYhMaQYvP2WgOuRI,13201
|
|
169
173
|
lyrics_transcriber/frontend/src/components/TimingOffsetModal.tsx,sha256=aivGi6ehI6cDqwtoKBb6Eif8gpPqi0t3mJT8i5Feu7Q,4803
|
|
170
|
-
lyrics_transcriber/frontend/src/components/TranscriptionView.tsx,sha256=
|
|
171
|
-
lyrics_transcriber/frontend/src/components/WordDivider.tsx,sha256=
|
|
174
|
+
lyrics_transcriber/frontend/src/components/TranscriptionView.tsx,sha256=SK5nVjey4Eg2_JiVAnJbOtNwDEmrKYlNb529F7Q0nLY,11337
|
|
175
|
+
lyrics_transcriber/frontend/src/components/WordDivider.tsx,sha256=ynib_j0w0q4iOYAk7D4IyZJCq71LykX7SaD9haGlZeI,6695
|
|
172
176
|
lyrics_transcriber/frontend/src/components/shared/components/HighlightedText.tsx,sha256=ZVZ61rwrKLdlmhlNuSNR7-sgdl7JdBxVTeSeKO6K-3w,16321
|
|
173
177
|
lyrics_transcriber/frontend/src/components/shared/components/SourceSelector.tsx,sha256=FpMn-0i1NFxdIHZN0dxHkWzIIsOEi9CJc_rQMpLyxVw,2031
|
|
174
|
-
lyrics_transcriber/frontend/src/components/shared/components/Word.tsx,sha256=
|
|
175
|
-
lyrics_transcriber/frontend/src/components/shared/constants.ts,sha256=
|
|
178
|
+
lyrics_transcriber/frontend/src/components/shared/components/Word.tsx,sha256=CXzepxI3Negx2cqdfqLNGgesNbbIcczomXed71FupNw,2676
|
|
179
|
+
lyrics_transcriber/frontend/src/components/shared/constants.ts,sha256=GByG5KFLJOX0iCs80_PLXxZKQ5FBX5Qw0Mg05Xf8Faw,1142
|
|
176
180
|
lyrics_transcriber/frontend/src/components/shared/hooks/useWordClick.ts,sha256=eEgBHiKIWOzFK8eBzBgcQRv7StKpaPchqh3k2kFlwgY,6253
|
|
177
181
|
lyrics_transcriber/frontend/src/components/shared/styles.ts,sha256=J1jCSuRqpk1mOFYAqJudhxeozH-q1bi-dsOibLukBJU,411
|
|
178
182
|
lyrics_transcriber/frontend/src/components/shared/types.js,sha256=1DqoH1vIn6o1ng-XyBS6JRVVkf8Hj7ub_UD4x8loMjA,77
|
|
@@ -184,8 +188,8 @@ lyrics_transcriber/frontend/src/components/shared/utils/segmentOperations.ts,sha
|
|
|
184
188
|
lyrics_transcriber/frontend/src/components/shared/utils/timingUtils.ts,sha256=s3xdwGPg6ltZEcQ4AzgpznAR-fLhCTCYW7pfXaD60JY,4597
|
|
185
189
|
lyrics_transcriber/frontend/src/components/shared/utils/wordUtils.ts,sha256=bZbsvEgY3JoI15l4SdB51tHE33OkUxDH-WSG8doLcCQ,721
|
|
186
190
|
lyrics_transcriber/frontend/src/hooks/useManualSync.ts,sha256=cP19QsK-o5uz-Udq8m5d4NhMaPupHEQQz7uf0aE4Hs8,19403
|
|
187
|
-
lyrics_transcriber/frontend/src/main.tsx,sha256=
|
|
188
|
-
lyrics_transcriber/frontend/src/theme.ts,sha256=
|
|
191
|
+
lyrics_transcriber/frontend/src/main.tsx,sha256=bd2cO-7CSbqQwJ-8N3p_xPJvTFmg5lcJi2I-WgkIb6k,337
|
|
192
|
+
lyrics_transcriber/frontend/src/theme.ts,sha256=bVq-h3lYZhqHbM9yE0Le6DmpJS9n_u76xe-bQ_SjGE8,12498
|
|
189
193
|
lyrics_transcriber/frontend/src/types/global.d.ts,sha256=NvltPF-n4_1oRLfihD3oHXbdT7txMC8B6fhCgvNY-jk,191
|
|
190
194
|
lyrics_transcriber/frontend/src/types.js,sha256=1DqoH1vIn6o1ng-XyBS6JRVVkf8Hj7ub_UD4x8loMjA,77
|
|
191
195
|
lyrics_transcriber/frontend/src/types.ts,sha256=gQBu13DDbSBUtbI-TwzAlmlIYfOehXar4WuvZ9GkziE,4880
|
|
@@ -198,7 +202,7 @@ lyrics_transcriber/frontend/tsconfig.tsbuildinfo,sha256=TGnTUZG3ScMXJTHpm1GmyxtE
|
|
|
198
202
|
lyrics_transcriber/frontend/update_version.js,sha256=PxkqCnsucXnXiIqutsanVcx00Gq4k7pgCYj_uXCa4qw,411
|
|
199
203
|
lyrics_transcriber/frontend/vite.config.d.ts,sha256=S5bdGf0pSdKM6A6RNBKwAm3EIeW_bDHYfHtesRtXU7Q,76
|
|
200
204
|
lyrics_transcriber/frontend/vite.config.js,sha256=P4GuPgRZzwEWPQZpyujUe7eA3mjPoFAe2CgE5sQAXg8,232
|
|
201
|
-
lyrics_transcriber/frontend/vite.config.ts,sha256=
|
|
205
|
+
lyrics_transcriber/frontend/vite.config.ts,sha256=EgliYm4wf_nx1mZOx6xx2Hu4aVAgoJ4jdbtsaXfawqI,306
|
|
202
206
|
lyrics_transcriber/frontend/web_assets/android-chrome-192x192.png,sha256=lg-6aPF5mGLiuG7LyftZk_0RI41srmpA8wj-NkaaQms,17632
|
|
203
207
|
lyrics_transcriber/frontend/web_assets/android-chrome-512x512.png,sha256=x-zuKT3NYsTqAWzhKRTZeD4-0uYoUjqMPZpKTChqNJ8,123447
|
|
204
208
|
lyrics_transcriber/frontend/web_assets/apple-touch-icon.png,sha256=6y5vGra54w5oc8VP6sn2JjoQtN9hWTKn0YPhmdlmfU0,16188
|
|
@@ -209,7 +213,7 @@ lyrics_transcriber/frontend/web_assets/favicon-32x32.png,sha256=6TyrRMIw6G8dpG4_
|
|
|
209
213
|
lyrics_transcriber/frontend/web_assets/favicon.ico,sha256=ZK7QvdBuZp0QxPkluCW4IKxfleFmFLp1KkG_d5xmx7E,15406
|
|
210
214
|
lyrics_transcriber/frontend/web_assets/index.html,sha256=qqHYlM3VAy_3YJn3QgETGjR94XTWL3Ci_S-5_lHYgxw,830
|
|
211
215
|
lyrics_transcriber/frontend/web_assets/nomad-karaoke-logo.png,sha256=jTTBFXV6hGJGolZYQ-dIjgQQbMsehk5XGtsllhLrdzg,212641
|
|
212
|
-
lyrics_transcriber/frontend/yarn.lock,sha256=
|
|
216
|
+
lyrics_transcriber/frontend/yarn.lock,sha256=baEFTcZVRQBGZGUKDvzTutfipBZcmoBQvHlM5wxguuc,130621
|
|
213
217
|
lyrics_transcriber/lyrics/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
214
218
|
lyrics_transcriber/lyrics/base_lyrics_provider.py,sha256=SskR5RIKorLcHhNSpHV35_kCnSA027_OOO9E45Jbv88,9168
|
|
215
219
|
lyrics_transcriber/lyrics/file_provider.py,sha256=WNd6mHMV2FhrnHiWBvxUxPkdVi47mbLE4hXaTYqStTM,4290
|
|
@@ -270,7 +274,7 @@ lyrics_transcriber/output/segment_resizer.py,sha256=rrgcQC28eExSAmGnm6ytkF-E-nH4
|
|
|
270
274
|
lyrics_transcriber/output/subtitles.py,sha256=TW8IFTedj7-jHDyKKLYk1rFSFmuk8qysrI83Lkc3x-o,19555
|
|
271
275
|
lyrics_transcriber/output/video.py,sha256=n6QtT3ljtx1t8CT9jmVTKSpdezF2gC0FJsYDDtkP5fE,24084
|
|
272
276
|
lyrics_transcriber/review/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
273
|
-
lyrics_transcriber/review/server.py,sha256=
|
|
277
|
+
lyrics_transcriber/review/server.py,sha256=pTeTniQWAeiPxH-I0lnPuAWNY9DyJjFvLIS7nUOYkxk,29459
|
|
274
278
|
lyrics_transcriber/storage/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
275
279
|
lyrics_transcriber/storage/dropbox.py,sha256=Dyam1ULTkoxD1X5trkZ5dGp5XhBGCn998moC8IS9-68,9804
|
|
276
280
|
lyrics_transcriber/transcribers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -280,8 +284,8 @@ lyrics_transcriber/transcribers/whisper.py,sha256=YcCB1ic9H6zL1GS0jD0emu8-qlcH0Q
|
|
|
280
284
|
lyrics_transcriber/types.py,sha256=UJjaxhVd2o14AG4G8ToU598p0JeYdiTFjpG38jGCoYQ,27917
|
|
281
285
|
lyrics_transcriber/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
282
286
|
lyrics_transcriber/utils/word_utils.py,sha256=-cMGpj9UV4F6IsoDKAV2i1aiqSO8eI91HMAm_igtVMk,958
|
|
283
|
-
karaoke_gen-0.
|
|
284
|
-
karaoke_gen-0.
|
|
285
|
-
karaoke_gen-0.
|
|
286
|
-
karaoke_gen-0.
|
|
287
|
-
karaoke_gen-0.
|
|
287
|
+
karaoke_gen-0.76.20.dist-info/METADATA,sha256=LuFlyEoDv5uHvTPpoUcAQChjNC1QdHnRBQzmdZRUPIw,20667
|
|
288
|
+
karaoke_gen-0.76.20.dist-info/WHEEL,sha256=zp0Cn7JsFoX2ATtOhtaFYIiE2rmFAD4OcMhtUki8W3U,88
|
|
289
|
+
karaoke_gen-0.76.20.dist-info/entry_points.txt,sha256=xIyLe7K84ZyjO8L0_AmNectz93QjGSs5AkApMtlAd4g,160
|
|
290
|
+
karaoke_gen-0.76.20.dist-info/licenses/LICENSE,sha256=81R_4XwMZDODHD7JcZeUR8IiCU8AD7Ajl6bmwR9tYDk,1074
|
|
291
|
+
karaoke_gen-0.76.20.dist-info/RECORD,,
|
|
@@ -2,6 +2,10 @@
|
|
|
2
2
|
<html lang="en">
|
|
3
3
|
<head>
|
|
4
4
|
<meta charset="UTF-8" />
|
|
5
|
+
<!-- Load Inter font to match karaoke-gen styling -->
|
|
6
|
+
<link rel="preconnect" href="https://fonts.googleapis.com">
|
|
7
|
+
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
|
8
|
+
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap" rel="stylesheet">
|
|
5
9
|
<link rel="icon" type="image/x-icon" href="/favicon.ico" />
|
|
6
10
|
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png" />
|
|
7
11
|
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png" />
|
|
@@ -9,7 +13,7 @@
|
|
|
9
13
|
<link rel="icon" type="image/png" sizes="192x192" href="/android-chrome-192x192.png" />
|
|
10
14
|
<link rel="icon" type="image/png" sizes="512x512" href="/android-chrome-512x512.png" />
|
|
11
15
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
12
|
-
<title>Nomad Karaoke: Lyrics Review</title>
|
|
16
|
+
<title>Nomad Karaoke: Lyrics Transcription Review</title>
|
|
13
17
|
</head>
|
|
14
18
|
<body>
|
|
15
19
|
<div id="root"></div>
|