# AI Voice Generation (Microsoft VibeVoice) na MacOS (M1/M2/M3/M4) **Opomba:** Microsoft VibeVoice in podobni moderni TTS modeli močno slonijo na **CUDA** (Nvidia) in knjižnici **Flash-Attention**, ki uradno ne deluje na Macu (MPS). Vendar lahko poskusimo pognati model s **CPU** ali **MPS** (Metal) pospeševanjem z uporabo alternativnih implementacij pozornosti (SDPA - Scaled Dot Product Attention), ki je vgrajena v PyTorch 2.0+. ## 1. Priprava Okolja Potrebujemo Python in FFMPEG. 1. **Namesti sistemske knjižnice (Homebrew):** ```bash brew install ffmpeg portaudio ``` 2. **Pripravi mapo:** ```bash mkdir -p ~/repos/novafarma/ai_voice_gen/VibeVoice cd ~/repos/novafarma/ai_voice_gen/VibeVoice ``` 3. **Ustvari Python okolje:** ```bash python3 -m venv venv source venv/bin/activate ``` 4. **Namesti PyTorch (Nightly za najboljšo M4 podporo):** ```bash pip install --pre torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/nightly/cpu ``` ## 2. Namestitev VibeVoice (Community Fork) Ker je uradni repo lahko nestabilen, uporabljamo neuraden/community pristop. 1. **Kloniraj Repo (če imaš URL) ali namesti F5-TTS (Trenutno najboljši Vibe-like open source model):** *Priporočam **F5-TTS**, ker je arhitekturno zelo podoben in bolje podprt.* ```bash git clone https://github.com/SWivid/F5-TTS.git cd F5-TTS pip install -e . ``` 2. **Popravek za Mac (Flash Attention):** Ker `flash-attn` ne deluje na Macu, moramo zagotoviti, da koda uporablja "standard attention". Če dobiš napako `ImportError: No module named 'flash_attn'`, odpri kodo in poišči uvoze. F5-TTS običajno avtomatsko preklopi na `torch.nn.functional.scaled_dot_product_attention`, če flash attention ni na voljo. ## 3. Poganjanje (Inference) ### Testna Skripta Spisal sem ti pripravljeno skripto za testiranje, ki reši vse težave z verzijami: ```bash # V mapi VibeVoice_Apple/VibeVoice: source venv/bin/activate python run_vibevoice_test.py ``` To bo generiralo `outputs/demo_audio.wav`. ### CLI (Command Line - Ročno) ```bash # Zaženi inference (uporabi lokalno mapo z modelom) python inference.py --model_path models/VibeVoice-1.5B ``` **Opomba:** VibeVoice zahteva `transformers==4.51.3`. Skripta `install_vibevoice_apple.sh` je posodobljena, da to upošteva. ### Gradio (Web UI) ```bash python inference-cli.py --launch_gradio # Odpri http://127.0.0.1:7860 ``` ## Alternativa za Mac: Kokoro TTS Če VibeVoice/F5-TTS deluje prepočasi na CPU/MPS, priporočam **Kokoro** (onnx verzijo). Je izjemno hiter (realtime na M1/M2/M3/M4) in ima zelo visoko kvaliteto. 1. **Namestitev:** ```bash pip install kokoro-onnx soundfile ``` 2. **Uporaba:** ```python from kokoro_onnx import Kokoro kokoro = Kokoro("kokoro-v0_19.onnx", "voices.json") audio, _ = kokoro.create("Pozdravljen svet!", voice="af_sarah", speed=1.0, lang="en-us") import soundfile as sf sf.write("output.wav", audio, 24000) ```