feat: Upload models, outputs and results

Add model folders with early instructions and a main.py file for testing. Add output folder for wav files generated. Add asset folder with manito.wav inside. Add env.example. Update readme.md for clear instructions to follow.
This commit is contained in:
Alonso Cárdenas
2026-11-02 00:59:13 -03:00
parent 2a1a992dfa
commit f2b43a4bb6
40 changed files with 9353 additions and 9 deletions
+42
View File
@@ -0,0 +1,42 @@
import time
import numpy as np
import soundfile as sf
import sounddevice as sd
import torch
from qwen_tts import Qwen3TTSModel
model = Qwen3TTSModel.from_pretrained(
"Qwen/Qwen3-TTS-12Hz-0.6B-Base",
device_map="cpu",
dtype=torch.float32,
)
prompt = model.create_voice_clone_prompt(
ref_audio="../../assets/manito.wav",
ref_text="¡Hola! Me llamo Manito y me encanta aprender contigo. ¿Jugamos un rato? Vamos a descubrir colores, formas y números juntos.",
)
texto = "¡Hola! Me llamo Manito y me encanta aprender contigo. ¿Jugamos un rato? Vamos a descubrir colores, formas y números juntos."
t0 = time.time()
primero = None
chunks = []
for chunk, sr in model.stream_generate_voice_clone(
text=texto,
language="Spanish",
voice_clone_prompt=prompt,
emit_every_frames=4,
decode_window_frames=80,
overlap_samples=0,
):
if primero is None:
primero = time.time() - t0
chunks.append(np.asarray(chunk, dtype=np.float32))
total = time.time() - t0
audio = np.concatenate(chunks)
dur = len(audio) / sr
sf.write("../../outputs/qwen3-tts-6b/qwen_stream.wav", audio, sr)
print(f"primer chunk {primero:.2f}s | total {total:.2f}s | audio {dur:.2f}s | RTF {total/dur:.2f} | chunks {len(chunks)}")
sd.play(audio, sr)
sd.wait()