From e472ef803560aa386be742c664c6ef2d1b68c09e Mon Sep 17 00:00:00 2001 From: badmark Date: Sun, 16 Aug 2026 09:50:44 -0600 Subject: [PATCH] corrected edge tts cmd --- pipeline/__pycache__/tts_gen.cpython-314.pyc | Bin 10641 -> 12032 bytes pipeline/tts_gen.py | 25 ++++++++++++++++--- 2 files changed, 21 insertions(+), 4 deletions(-) diff --git a/pipeline/__pycache__/tts_gen.cpython-314.pyc b/pipeline/__pycache__/tts_gen.cpython-314.pyc index 9ff3f7ae7bcd5d7c379001de9a03e2d12210bfbf..d5fe7d7e13a4755ad747dbbac02112a11508d27d 100644 GIT binary patch delta 2510 zcmb7GUrbxq89(P<+t>dwF<^oL+o3=lW=sQHNPv(wb%Ffx%r$em#>Km~ui+-PuXpYx z1TTVA>O<0QO6h$dnJP7tA~lt!DHWB*9=fGZAurQSNk?^uwwLW`FP?(bEZf7*xyF!2 z)23a^zw`O~|9$5>$9Fk?b=ukEbXWm?d|Pi{h_o*|e+8xG&%X<$PoLB=-Y)3y}ry&3acH9oYD&YeWc=lA%yu$`DD|YU7 zQ>>kJ#3Ad91GX-1>9v%M%Dd)(+sK;m$906R>X%FjlTxuXv`mA+d4OGI84^C(yz9b2?lFtz>qpY85= zF&hBl7DcsqYgiTN^%^Fx^ zZ*`)c%dj@+Z6HFO>A^njwVbd|Tz)Gk(Me~G7po@&a@0IU+reRKFQ+z~QHdUR-KLWgtANykm3h%eK&fu|E|3D(qsGRHTbp7eq;Fh@XeRMvbAn`+E%VCU%7p1 z!xR1nfM%Ae==j;;UmyAO$Yy`!QGY~z{jH7u>F1@7)7j0m@F=|`Y^LQ$X&KvGf|Jw} z05XuJu8se>&hz1`AC27_`zU%VdUtTMb>Pd^fvra0%Jc`*x8JzCu-19Md3`{g{E?a# z)R!)(KUu;a#;DWOHULd$sQ0O_-Hj_F%Okg6dF<}oYUxsg$JSo{-QaHqH-}>CQ0zW> zu<*r#dTg>=?PfPx;%Y;@LW71b+zL;J+Bte3J}`e_UMs5|r#6~StFF_^f+Ml?bbA!I zyxYKtyI7$Njwsx6wX8TlaNeOmcK*V7&v1`l`{BA(^~KfmDYYbj<(m7G%lCB4-MS5+ zuHCfaTz0B~@%8$3TJ@dTbe-LBo&9HpCemjW3vv8R3gfN&nPF@MJQ%S}gz0rl-}o@K zK5X+&^cWv9%@bY5hdu)qJnS+OP7k4#$Bu3|x%w~1AqZKeyYBY~-o#$ec>?6$GicBZ z5}(hZ=h%wJ^&PDIn(J?HTIs8AG~!DioLfCrf6La+5koSb8beNQikDEDu(AX)3T!LD zK1FPM-*S;KSPZMC_Wf}5DEWB|1HN){nh77@3@4Y3A&JZJ8tg+uL_SPlgurnEqXbS6 zctx4^{TzzQKYZiOdg>9()eJ&0Cu+vIQi(_CjFR*p_mK(L4=Z||Pu>b%7 delta 1277 zcmYk6O>7%Q6o6-Juh;)}9NSTx#If_|I>AmM2`MxL2REUitugChPzkXtdy=@=UNgH+ zNl$-8ZHPa62k%_?Fu3FT601AkPGR-dJ-687$31@`j!%t8Fx*J#!=A#G ztk2Ttxq}fZpaL!k+bCzqVD^2uGma(0qybzaBn!(AB!tK?LcJ)5azYMI7$s8|s#xkq z=CMY)jS)22+JGjxM|k?txy5A*yKDMx#>!zG3qi4{X zx4D8&Y$8#NwpOxpYZnXK!-kgkVaXvmC0ACE+>%G?ki1f-cO8K%=?~Jk9f7OXYg0Fm?VkF2{Kx4dqoLP!7z|xo z`dctK$1dX|Gjceu%)CEy_0eDLy?4B!{m9gA;j8sq>$~Uo`;)(T=k^_QY{i=sC|m?f zcSdotxzRa_@f^GE`)S}T*V1!-kVO zYy z>qEi*6CgeTcoJ|DFavlBFw3-|PjG=XhEMmvnKg4oURxtnGnH$rvL-a@b$(y->|l6y z5Nb>N!ARUJ&|0~+)=G+BP%BrOVvmg^k3R!*AK(;V0q`tGEJR-d`4zx20M1M=vCl>> z;R`GhO<MXP)WU}=@>4j_!(lDW?6Uqr1@o7`JA1P9}nua zgkN;4HRyA&1W2+Q@$n9jVt!4`=Sy-ipXW*4jc3lh2S&#La{#@i?TgjAOjW&Q^^VfL we1Y@}Z?&CerYe^j6*5cr_%;ZtRM}?YjFz{gxR055O}fJ^%m! diff --git a/pipeline/tts_gen.py b/pipeline/tts_gen.py index bbad2c0..8a88f5f 100644 --- a/pipeline/tts_gen.py +++ b/pipeline/tts_gen.py @@ -40,6 +40,17 @@ except ImportError: def _run_edge_tts(text: str, voice: str, out_wav_path: str): """Synthesize high-quality natural neural voiceover directly via module or CLI.""" + global edge_tts + if edge_tts is None: + try: + import edge_tts + except ImportError: + try: + subprocess.run([sys.executable, "-m", "pip", "install", "edge-tts"], check=True, capture_output=True) + import edge_tts + except Exception as e: + logger.warning(f"[TTS] Dynamic edge-tts install failed: {e}") + tmp_mp3 = out_wav_path.replace(".wav", "_temp.mp3") if edge_tts is not None: @@ -48,11 +59,17 @@ def _run_edge_tts(text: str, voice: str, out_wav_path: str): await communicate.save(tmp_mp3) asyncio.run(_speak()) else: - r = subprocess.run([ - "edge-tts", "--voice", voice, "--text", text, "--write-media", tmp_mp3 - ], capture_output=True, text=True) + # Fallback to sys.executable -m edge_tts + cmd = [sys.executable, "-m", "edge_tts", "--voice", voice, "--text", text, "--write-media", tmp_mp3] + r = subprocess.run(cmd, capture_output=True, text=True) if r.returncode != 0: - raise RuntimeError(f"edge-tts CLI error: {r.stderr}") + edge_bin = shutil.which("edge-tts") or os.path.expanduser("~/.local/bin/edge-tts") or os.path.expanduser("~/miniconda3/bin/edge-tts") + if edge_bin and os.path.exists(edge_bin): + r2 = subprocess.run([edge_bin, "--voice", voice, "--text", text, "--write-media", tmp_mp3], capture_output=True, text=True) + if r2.returncode != 0: + raise RuntimeError(f"edge-tts failed: {r.stderr or r2.stderr}") + else: + raise RuntimeError(f"edge-tts execution error: {r.stderr}") subprocess.run([ "ffmpeg", "-y", "-i", tmp_mp3,