import os import requests import zipfile MODEL_URL = "https://alphacephei.com/vosk/models/vosk-model-fa-0.42.zip" MODEL_ZIP = "vosk-model-fa-0.42.zip" MODEL_DIR = "vosk-model-fa-0.42" # Download the model zip if not present if not os.path.exists(MODEL_ZIP): print(f"Downloading {MODEL_URL} ...") with requests.get(MODEL_URL, stream=True) as r: r.raise_for_status() total = int(r.headers.get('content-length', 0)) with open(MODEL_ZIP, 'wb') as f: downloaded = 0 for chunk in r.iter_content(chunk_size=8192): if chunk: f.write(chunk) downloaded += len(chunk) print(f"\rDownloaded {downloaded/1024/1024:.2f} MB / {total/1024/1024:.2f} MB", end='', flush=True) print("\nDownload complete.") else: print(f"{MODEL_ZIP} already exists.") # Extract the model zip if not already extracted if not os.path.exists(MODEL_DIR): print(f"Extracting {MODEL_ZIP} ...") with zipfile.ZipFile(MODEL_ZIP, 'r') as zip_ref: zip_ref.extractall() print(f"Extracted to {MODEL_DIR}.") else: print(f"{MODEL_DIR} already extracted.")