You need to agree to share your contact information to access this model

This repository is publicly accessible, but you have to accept the conditions to access its files and content.

Log in or Sign Up to review the conditions and access this model content.

Plapre Pico - Dansk Tekst-til-Tale

Dansk TTS-model med talerkonditionering og stemmekloningssupport. Genererer 24kHz lyd fra dansk tekst ved hjælp af autoregressiv lydtoken-prædiktion.

Modeldetaljer

Arkitektur LLaMA-baseret (30 lag, hidden_size=576)
Parametre ~118M (base) + 74K (talerprojektion)
Vocab-størrelse 20.802 (BPE + lydtokens + separatorer)
Lydtokenizer Kanade (25 tokens/sek, 12.800 codebook)
Samplerate 24kHz
Præcision bfloat16

Sådan virker det

Modellen tager dansk tekst, konverterer den til BPE-tokens, og genererer autoregressivt Kanade-lydtokens, som afkodes til en lydbølge.

Sekvensformat:

[speaker_embedding] <text> BPE tokens <audio> audio tokens <eos>

Talerkonditionering: En indlært lineær projektion (nn.Linear(128, 576)) 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.

Filer

Fil Beskrivelse
model.safetensors Base model-vægte (bfloat16)
speaker_proj.pt Talerprojektionslag (nn.Linear(128, 576))
speakers.json Indbyggede talerembeddings
tokenizer.json Tokenizer
tokenizer_config.json Tokenizer-konfiguration
config.json Modelkonfiguration
gguf/plapre-pico.f16.gguf GGUF f16 (227 MB)
gguf/plapre-pico.q8_0.gguf GGUF q8_0 (121 MB)
gguf/plapre-pico.q6_k.gguf GGUF q6_k (115 MB)
gguf/plapre-pico.q4_k_m.gguf GGUF q4_k_m (83 MB)
gguf/plapre-pico.q4_0.gguf GGUF q4_0 (70 MB)

Installation

uv add git+https://github.com/syv-ai/plapre.git

Inferens

Grundlæggende brug

from plapre import Plapre

tts = Plapre("syvai/plapre-pico")
tts.speak("Hej, hvordan har du det?", output="output.wav")

Vis tilgængelige talere

print(tts.list_speakers())
# ['tor', 'ida', 'liv', 'ask', 'kaj']

Vælg en taler

tts.speak("Hej med dig.", output="output.wav", speaker="ida")

Stemmekloning

tts.speak("Hej med dig.", output="cloned.wav", speaker_wav="reference.wav")

Lange tekster med sætningsopdeling

tts.speak(
    "Første sætning. Anden sætning. Tredje sætning!",
    output="long.wav",
    split_sentences=True,
)

Genereringsparametre

tts.speak(
    "Hej verden.",
    output="output.wav",
    temperature=0.8,     # sampling-temperatur (standard: 0.8)
    top_p=0.95,          # nucleus sampling (standard: 0.95)
    top_k=50,            # top-k sampling (standard: 50)
    max_tokens=500,      # maks lydtokens at generere (standard: 500)
)

Udtræk en talerembedding

Udtræk en 128-dim talerembedding fra en wav-fil og genbrug den på tværs af flere genereringer:

speaker_emb = tts.extract_speaker("reference.wav")
tts.speak("Hej.", output="a.wav", speaker_emb=speaker_emb)
tts.speak("Farvel.", output="b.wav", speaker_emb=speaker_emb)

Returværdi

speak() returnerer lyden som et numpy-array (24 kHz, float32) ud over at gemme filen:

audio = tts.speak("Hej.", output="output.wav")
print(f"Varighed: {len(audio) / 24000:.2f}s")

API-server

uv add "plapre[serve] @ git+https://github.com/syv-ai/plapre.git"
plapre-serve --model plapre-pico-q8_0 --port 8000
curl -X POST http://localhost:8000/v1/audio/speech \
  -H "Content-Type: application/json" \
  -d '{"text": "Hej, hvordan har du det?", "speaker": "tor"}' \
  --output output.pcm

ffmpeg -f s16le -ar 24000 -ac 1 -i output.pcm output.wav
Downloads last month
548
Safetensors
Model size
0.1B params
Tensor type
BF16
·
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for syvai/plapre-pico

Quantized
(41)
this model