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)