Spaces:
Running
on
Zero
Running
on
Zero
import os | |
import subprocess | |
import sys | |
# --- 1. Clone the VibeVoice Repository --- | |
# Check if the repository directory already exists | |
repo_dir = "VibeVoice" | |
if not os.path.exists(repo_dir): | |
print("Cloning the VibeVoice repository...") | |
try: | |
subprocess.run( | |
["git", "clone", "https://github.com/microsoft/VibeVoice.git"], | |
check=True, | |
capture_output=True, | |
text=True | |
) | |
print("Repository cloned successfully.") | |
except subprocess.CalledProcessError as e: | |
print(f"Error cloning repository: {e.stderr}") | |
sys.exit(1) | |
else: | |
print("Repository already exists. Skipping clone.") | |
# --- 2. Install the Package --- | |
# Navigate into the repository directory | |
os.chdir(repo_dir) | |
print(f"Changed directory to: {os.getcwd()}") | |
print("Installing the VibeVoice package...") | |
try: | |
# Use pip to install the package in editable mode | |
subprocess.run( | |
[sys.executable, "-m", "pip", "install", "-e", "."], | |
check=True, | |
capture_output=True, | |
text=True | |
) | |
print("Package installed successfully.") | |
except subprocess.CalledProcessError as e: | |
print(f"Error installing package: {e.stderr}") | |
sys.exit(1) | |
# --- 3. Launch the Gradio Demo --- | |
# Define the path to the demo script and the model to use | |
demo_script_path = "demo/gradio_demo.py" | |
model_id = "microsoft/VibeVoice-1.5B" | |
# Construct the command to run the demo | |
# The --share flag is necessary to make the Gradio app accessible within the Hugging Face Space environment | |
command = [ | |
"python", | |
demo_script_path, | |
"--model_path", | |
model_id, | |
"--share" | |
] | |
print(f"Launching Gradio demo with command: {' '.join(command)}") | |
# Run the command. This will start the Gradio server and launch the demo. | |
# The process will remain active, serving the web interface. | |
subprocess.run(command) |