import tempfile ,os import gradio as gr import subprocess MAX_TXT_LEN = 800 def tts(text: str): if len(text) > MAX_TXT_LEN: text = text[:MAX_TXT_LEN] print(f"Input text was cutoff since it went over the {MAX_TXT_LEN} character limit.") print(text) import subprocess with tempfile.NamedTemporaryFile(suffix=".wav", delete=False) as fp: try: subprocess.run(f'mimic3 --voice fa/haaniye_low "{text}" > {fp.name}', shell=True, check=True, stderr=subprocess.PIPE) except subprocess.CalledProcessError as e: print("Command failed with code", e.returncode) print("Output:", e.stderr.decode()) return fp.name article= "" examples=[ "شیش سیخ جیگر سیخی شیش هزار", "سه شیشه شیر ، سه سیر سرشیر", "دزدی دزدید ز بز دزدی بزی ، عجب دزدی که دزدید ز بز دزدی بزی", "مثنوی یکی از قالب های شعری است ک هر بیت قافیه ی جداگانه دارد", "در گلو ماند خس او سالها، چیست آن خس مهر جاه و مالها", ] iface = gr.Interface( fn=tts, inputs=[ gr.Textbox( label="Text", value="زندگی فقط یک بار است؛ از آن به خوبی استفاده کن", ) ], outputs=gr.Audio(label="Output",type='filepath'), examples=examples ) iface.launch(share=False)