51 lines
1.3 KiB
Python
51 lines
1.3 KiB
Python
import os
|
|
import subprocess
|
|
import sys
|
|
import urllib.request
|
|
import zipfile
|
|
import shutil
|
|
|
|
VENV_DIR = "venv"
|
|
REQUIREMENTS_FILE = "requirements.txt"
|
|
MODEL_URL = "https://alphacephei.com/vosk/models/vosk-model-small-pl-0.22.zip"
|
|
MODEL_ZIP = "vosk-model-small-pl-0.22.zip"
|
|
MODEL_DIR = "vosk-model-small-pl-0.22"
|
|
|
|
|
|
def create_virtualenv():
|
|
print("[+] Tworzenie środowiska wirtualnego...")
|
|
subprocess.check_call([sys.executable, "-m", "venv", VENV_DIR])
|
|
|
|
|
|
def install_requirements():
|
|
print("[+] Instalacja pakietów z requirements.txt...")
|
|
pip_path = os.path.join(VENV_DIR, "bin", "pip") if os.name != "nt" else os.path.join(VENV_DIR, "Scripts", "pip.exe")
|
|
subprocess.check_call([pip_path, "install", "-r", REQUIREMENTS_FILE])
|
|
|
|
|
|
def download_model():
|
|
if os.path.exists(MODEL_DIR):
|
|
print("[i] Model już istnieje, pomijam pobieranie.")
|
|
return
|
|
|
|
print(f"[+] Pobieranie modelu z {MODEL_URL}...")
|
|
urllib.request.urlretrieve(MODEL_URL, MODEL_ZIP)
|
|
|
|
print("[+] Rozpakowywanie modelu...")
|
|
with zipfile.ZipFile(MODEL_ZIP, 'r') as zip_ref:
|
|
zip_ref.extractall(".")
|
|
|
|
print("[+] Usuwanie archiwum ZIP...")
|
|
os.remove(MODEL_ZIP)
|
|
|
|
|
|
def main():
|
|
create_virtualenv()
|
|
install_requirements()
|
|
download_model()
|
|
print("[✓] Gotowe!")
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main()
|