#!/usr/bin/env python3
import importlib.util, json, re, time
from pathlib import Path
PROJECT=Path('/data/video-pipeline/Youtube-Video-Maker/Project/28052026-002-Tran-Quang-Dieu-Bui-Thi-Xuan')
STEP7=PROJECT/'scripts_run_step_07_tts_v2.py'
SCENES=PROJECT/'script/scenes.json'
OUT=PROJECT/'audio/pronunciation_review_candidates_tran_phonetic'
TARGETS=['scene_047','scene_070','scene_093']
VARIANTS=[
 ('phonetic_chan','Chần Quang Diệu'),
 ('phonetic_trang','Trầng Quang Diệu'),
 ('phonetic_tron','Trờn Quang Diệu'),
 ('phonetic_trann','Trầnn Quang Diệu'),
 ('name_pause_tran','Trần, Quang Diệu'),
 ('title_insert','vị tướng Trần Quang Diệu'),
]
def log(m): print(time.strftime('%Y-%m-%d %H:%M:%S ')+m, flush=True)
def main():
 OUT.mkdir(parents=True,exist_ok=True)
 spec=importlib.util.spec_from_file_location('step7',STEP7); mod=importlib.util.module_from_spec(spec); spec.loader.exec_module(mod)
 old_audio_dir=mod.AUDIO_DIR; mod.AUDIO_DIR=OUT
 scenes={s['scene_id']:s for s in json.loads(SCENES.read_text(encoding='utf-8'))['scenes']}
 try:
  for sid in TARGETS:
   base,changes=mod.normalize(scenes[sid]['narration'])
   for i,(name,repl) in enumerate(VARIANTS,1):
    tts=re.sub(r'\btrần\s+quang\s+diệu\b', repl, base, flags=re.I)
    cand_id=f'{sid}_tranfix_cand{i:02d}_{name}'
    item={'scene_id':cand_id,'narration':scenes[sid]['narration'],'tts_text':tts,'normalization':changes+[name],'output':str(OUT/f'{cand_id}.wav')}
    log(f'GEN {cand_id}')
    r=mod.generate(item)
    log(f"{r.get('status')} {cand_id} dur={r.get('duration')}")
 finally:
  mod.AUDIO_DIR=old_audio_dir
if __name__=='__main__': main()
