3.0 KiB
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.
-
Namesti sistemske knjižnice (Homebrew):
brew install ffmpeg portaudio -
Pripravi mapo:
mkdir -p ~/repos/novafarma/ai_voice_gen/VibeVoice cd ~/repos/novafarma/ai_voice_gen/VibeVoice -
Ustvari Python okolje:
python3 -m venv venv source venv/bin/activate -
Namesti PyTorch (Nightly za najboljšo M4 podporo):
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.
-
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.
git clone https://github.com/SWivid/F5-TTS.git cd F5-TTS pip install -e . -
Popravek za Mac (Flash Attention): Ker
flash-attnne 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 natorch.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:
# 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)
# 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)
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.
- Namestitev:
pip install kokoro-onnx soundfile - Uporaba:
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)