import os,requests,json,subprocess from scenarios import SCEN,FOLLOWUP import sys SCEN={k:v for k,v in SCEN.items() if k=='angry_caller'} SCEN['followup']=[FOLLOWUP] from ledger import add os.makedirs("audio",exist_ok=True); chars=0 for k,turns in SCEN.items(): for i,t in enumerate(turns): r=requests.post("https://api.x.ai/v1/tts",headers={"Authorization":"Bearer "+os.environ["XAI_API_KEY"]}, json={"text":t,"voice_id":"rex","language":"en","output_format":{"codec":"pcm","sample_rate":24000}},timeout=60) if r.status_code!=200: print(r.status_code,r.text[:300]); raise SystemExit(1) p="audio/followup_yes" if k=="followup" else f"audio/{k}_caller{i+1}"; open(p+".pcm","wb").write(r.content); chars+=len(t) subprocess.run(["ffmpeg","-y","-loglevel","error","-f","s16le","-ar","24000","-ac","1","-i",p+".pcm",p+".mp3"]) print(p,len(r.content)/48000,"s") print("chars",chars, add("voice-tts-caller-audio",chars*15/1e6))