Files
novafarma/ai_voice_gen/apple.md

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.

  1. Namesti sistemske knjižnice (Homebrew):

    brew install ffmpeg portaudio
    
  2. Pripravi mapo:

    mkdir -p ~/repos/novafarma/ai_voice_gen/VibeVoice
    cd ~/repos/novafarma/ai_voice_gen/VibeVoice
    
  3. Ustvari Python okolje:

    python3 -m venv venv
    source venv/bin/activate
    
  4. 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.

  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.

    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:

# 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.

  1. Namestitev:
    pip install kokoro-onnx soundfile
    
  2. 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)