Views
No views yet
| Arkitektur | SmolLM2-360M (LLaMA-baseret, 32 lag, hidden_size=960) |
| Parametre | ~327M (base) + 123K (talerprojektion) |
| Vocab-størrelse | 20.884 (8000 BPE + 78 fonem + 12.800 lyd + separatorer) |
| Lydtokenizer | Kanade (25 tokens/sek, 12.800 codebook) |
| Fonemisering | espeak-ng (dansk IPA) |
| Samplerate | 24kHz |
| Præcision | bfloat16 |
[speaker_embedding] <text> BPE tokens </text> <phonemes> phone tokens </phonemes> <audio> audio tokens </audio> <eos>nn.Linear(128, 960)) mapper en 128-dimensionel Kanade-talerembedding til modellens skjulte dimension. Denne indsættes som det første token i sekvensen, så modellen kan konditionere på taleridentitet via attention. Til stemmekloning udtrækkes talerembeddingen fra et referenceaudioklip via Kanade-encoderen.1# Installér espeak-ng
2# macOS
3brew install espeak-ng
4# Ubuntu/Debian
5sudo apt install espeak-ng
6
7# Installér plapre
8uv add git+https://github.com/syv-ai/plapre.git| Tilstand | Tokens/sek | Realtidsfaktor | Gennemløb |
|---|---|---|---|
| Enkelt (q8_0) | 383 | 0,065 | 15,3x realtid |
| Enkelt (q4_k_m) | 412 | 0,061 | 16,5x realtid |
| Batch=4 (q8_0) | 869 | 0,029 | 34,8x realtid |
| Batch=16 (q8_0) | 1.334 | 0,019 | 53,3x realtid |
| Batch=16 (q4_k_m) | 1.507 | 0,017 | 60,3x realtid |
1from plapre import Plapre
2
3tts = Plapre("syvai/plapre-turbo")
4tts.speak("Hej, hvordan har du det?", output="output.wav")f16, q8_0 (standard), q6_k, q4_k_m, q4_0.tts = Plapre("syvai/plapre-turbo", quant="q4_k_m")tts = Plapre("syvai/plapre-turbo", model_path="/sti/til/model.gguf")tts.speak("Hej med dig.", output="output.wav", speaker="nic")tts.speak("Hej med dig.", output="cloned.wav", speaker_wav="reference.wav")1tts.speak(
2 "Første sætning. Anden sætning. Tredje sætning!",
3 output="long.wav",
4 split_sentences=True,
5)1tts.speak(
2 "Hej verden.",
3 output="output.wav",
4 temperature=0.8, # sampling-temperatur (standard: 0.8)
5 top_p=0.95, # nucleus sampling (standard: 0.95)
6 top_k=50, # top-k sampling (standard: 50)
7 max_tokens=500, # maks lydtokens at generere (standard: 500)
8)1speaker_emb = tts.extract_speaker("reference.wav")
2tts.speak("Hej.", output="a.wav", speaker_emb=speaker_emb)
3tts.speak("Farvel.", output="b.wav", speaker_emb=speaker_emb)1tts.replace_speaker("kilde.wav", output="konverteret.wav", speaker="nic")
2
3# Eller brug en referencefil som målstemme
4tts.replace_speaker("kilde.wav", output="konverteret.wav", speaker_wav="målstemme.wav")speak() returnerer lyden som et numpy-array (24 kHz, float32) ud over at gemme filen:1audio = tts.speak("Hej.", output="output.wav")
2print(f"Varighed: {len(audio) / 24000:.2f}s")