50 lines
1.4 KiB
Python
50 lines
1.4 KiB
Python
"""Quick test: analyze 20 samples to verify everything works before full batch."""
|
|
import sys
|
|
import os
|
|
import time
|
|
import warnings
|
|
|
|
warnings.filterwarnings("ignore")
|
|
|
|
PROJECT = r"C:\Users\Administrator\Documents\fl_control"
|
|
os.chdir(PROJECT)
|
|
sys.path.insert(0, PROJECT)
|
|
|
|
from src.analyzer import collect_audio_files, batch_analyze
|
|
|
|
lib1 = os.path.join(PROJECT, "libreria", "reggaeton")
|
|
lib2 = os.path.join(PROJECT, "librerias", "reggaeton")
|
|
|
|
files = collect_audio_files(lib1, lib2)
|
|
print(f"Total files: {len(files)}")
|
|
|
|
# Take first 20
|
|
test_files = files[:20]
|
|
print(f"Testing with {len(test_files)} files...\n")
|
|
|
|
start = time.time()
|
|
results = batch_analyze(test_files, workers=8)
|
|
elapsed = time.time() - start
|
|
|
|
valid = [r for r in results if "error" not in r]
|
|
errors = [r for r in results if "error" in r]
|
|
|
|
print(f"\nDone in {elapsed:.1f}s ({elapsed/len(test_files):.2f}s/file)")
|
|
print(f"Valid: {len(valid)} | Errors: {len(errors)}")
|
|
|
|
for r in valid:
|
|
role = r["role"]
|
|
char = r["character"]
|
|
key = r["musical"]["key"]
|
|
bpm = r["perceptual"]["tempo"]
|
|
new = r["new_name"]
|
|
orig = os.path.basename(r["original_path"])
|
|
print(f" {orig:45s} -> {role:10s} {char:12s} {key:5s} {bpm:5.0f}bpm -> {new}")
|
|
|
|
if errors:
|
|
print(f"\nErrors:")
|
|
for e in errors:
|
|
print(f" {e}")
|
|
|
|
print(f"\n{'OK - Ready for full batch!' if len(valid) > 15 else 'Too many errors!'}")
|