| import os |
| import subprocess |
| import sys |
| import time |
| from pathlib import Path |
|
|
| import gradio as gr |
|
|
| |
| SPACE_ID = os.getenv("SPACE_ID", "broadfield-dev/voxtral-local") |
| HF_TOKEN = os.getenv("HF_TOKEN") |
|
|
| |
| PORT = 7860 |
| HOST = "0.0.0.0" |
|
|
| print("๐ Starting Voxtral TTS Gradio Demo on Hugging Face Spaces...") |
|
|
| |
| repo_dir = Path("vllm-omni") |
| if not repo_dir.exists(): |
| print("Cloning vllm-omni repository...") |
| subprocess.run( |
| ["git", "clone", "https://github.com/vllm-project/vllm-omni.git"], |
| check=True |
| ) |
| else: |
| print("Repository already cloned.") |
|
|
| os.chdir(repo_dir) |
|
|
| |
| |
| print("Installing dependencies with uv...") |
| subprocess.run(["uv", "pip", "install", "gradio==5.50"], check=True) |
|
|
| |
| print("Installing vllm-omni from source...") |
| subprocess.run( |
| ["uv", "pip", "install", "-e", "."], |
| check=True |
| ) |
|
|
| |
| subprocess.run( |
| ["uv", "pip", "install", "soundfile", "numpy"], |
| check=True |
| ) |
|
|
| print("โ
Dependencies installed.") |
|
|
| |
| print(f"Launching Gradio demo on http://{HOST}:{PORT} ...") |
|
|
| |
| |
| cmd = [ |
| sys.executable, |
| "examples/online_serving/voxtral_tts/gradio_demo.py", |
| "--host", HOST, |
| "--port", str(PORT), |
| ] |
|
|
| |
| |
|
|
| print("Running command:", " ".join(cmd)) |
|
|
| |
| process = subprocess.Popen( |
| cmd, |
| stdout=sys.stdout, |
| stderr=sys.stderr, |
| env=os.environ.copy() |
| ) |
|
|
| |
| try: |
| while True: |
| time.sleep(60) |
| if process.poll() is not None: |
| print("โ ๏ธ Gradio process exited unexpectedly.") |
| break |
| except KeyboardInterrupt: |
| print("Shutting down...") |
| process.terminate() |