diff --git a/tests/base-CUDA0-BF16.log b/tests/base-CUDA0-BF16.log new file mode 100644 index 0000000..393ddf4 --- /dev/null +++ b/tests/base-CUDA0-BF16.log @@ -0,0 +1,30 @@ +ggml_cuda_init: found 1 CUDA devices (Total VRAM: 97247 MiB): + Device 0: NVIDIA RTX PRO 6000 Blackwell Workstation Edition, compute capability 12.0, VMM: yes, VRAM: 97247 MiB +load_backend: loaded CUDA backend from /mnt/workspace/qwentts.cpp/build/libggml-cuda.so +ggml_vulkan: Found 1 Vulkan devices: +ggml_vulkan: 0 = NVIDIA RTX PRO 6000 Blackwell Workstation Edition (NVIDIA) | uma: 0 | fp16: 1 | bf16: 0 | warp size: 32 | shared memory: 49152 | int dot: 1 | matrix cores: NV_coopmat2 +load_backend: loaded Vulkan backend from /mnt/workspace/qwentts.cpp/build/libggml-vulkan.so +load_backend: loaded CPU backend from /mnt/workspace/qwentts.cpp/build/libggml-cpu-zen4.so +[Load] Talker backend: CUDA0 (CPU threads: 16) +[GGUF] ../models/qwen-talker-1.7b-base-BF16.gguf: 480 tensors, data at offset 5954496 +[WeightCtx] Loaded 316 tensors, 3322.0 MB into backend +[Talker] Loaded: 28 layers, hidden 2048, heads 16/8, head_dim 128, FFN 6144, RoPE theta 1000000, mrope sections [24,20,20] interleaved=0 +[WeightCtx] Loaded 88 tensors, 334.1 MB into backend +[CodePredictor] Loaded: 5 layers, hidden 1024, heads 16/8, head_dim 128, FFN 3072, RoPE theta 1000000, 15 acoustic codebooks (vocab 2048 each), mtp_proj linear +[WeightCtx] Loaded 76 tensors, 34.9 MB into backend +[SpeakerEncoder] Loaded: enc_dim=2048 sr=24000 mel_dim=128 hidden=512 mfa=1536 asp_attn=128 se=128 scale=8 +[GGUF] ../models/qwen-tokenizer-12hz-BF16.gguf: 398 tensors, data at offset 29760 +[WeightCtx] Loaded 18 tensors, 33.0 MB into backend +[Quantizer] Loaded: 16 codebooks (1 semantic + 15 acoustic), 2048 entries x 256 dim, hidden 512 +[WeightCtx] Loaded 93 tensors, 58.1 MB into backend +[Transformer] Loaded: 8 layers, hidden 512, heads 16/16, head_dim 64, FFN 1024, RoPE theta 10000, sliding window 72 +[CausalTransConv] FATAL: 'tok_dec.upsample.0.conv.weight' expected F32 or F16, got type 30 +[Input] Prompt: 100 chars: qwentts.cpp is a minimal C++17 and GGML port of Qwen3-TTS fo... +[Input] Lang: english Seed: 42 MaxNewTokens: 64 +[Input] Mode: greedy +[Python] Device: cuda +[Python] InputIds shape: (1, 38) +[Python] Codes shape: (63, 16) (T_frames, num_code_groups) +[Python] Audio: 120960 samples 24000 Hz 5.04s -> python/base/base-python.wav +[Quant] BF16 -> ../models/qwen-talker-1.7b-base-BF16.gguf + ../models/qwen-tokenizer-12hz-BF16.gguf +[GGML] Cmd: ../build/qwen-tts --model ../models/qwen-talker-1.7b-base-BF16.gguf --codec ../models/qwen-tokenizer-12hz-BF16.gguf --seed 42 --text qwentts.cpp is a minimal C++17 and GGML port of Qwen3-TTS for zero shot multilingual text to speech. --lang english --max-new 64 --dump cpp/base -o cpp/base/base-cpp.wav --greedy diff --git a/tests/base-CUDA0-F32.log b/tests/base-CUDA0-F32.log new file mode 100644 index 0000000..95ee902 --- /dev/null +++ b/tests/base-CUDA0-F32.log @@ -0,0 +1,125 @@ +ggml_cuda_init: found 1 CUDA devices (Total VRAM: 97247 MiB): + Device 0: NVIDIA RTX PRO 6000 Blackwell Workstation Edition, compute capability 12.0, VMM: yes, VRAM: 97247 MiB +load_backend: loaded CUDA backend from /mnt/workspace/qwentts.cpp/build/libggml-cuda.so +ggml_vulkan: Found 1 Vulkan devices: +ggml_vulkan: 0 = NVIDIA RTX PRO 6000 Blackwell Workstation Edition (NVIDIA) | uma: 0 | fp16: 1 | bf16: 0 | warp size: 32 | shared memory: 49152 | int dot: 1 | matrix cores: NV_coopmat2 +load_backend: loaded Vulkan backend from /mnt/workspace/qwentts.cpp/build/libggml-vulkan.so +load_backend: loaded CPU backend from /mnt/workspace/qwentts.cpp/build/libggml-cpu-zen4.so +[Load] Talker backend: CUDA0 (CPU threads: 16) +[GGUF] ../models/qwen-talker-1.7b-base-F32.gguf: 480 tensors, data at offset 5954432 +[WeightCtx] Loaded 316 tensors, 6643.5 MB into backend +[Talker] Loaded: 28 layers, hidden 2048, heads 16/8, head_dim 128, FFN 6144, RoPE theta 1000000, mrope sections [24,20,20] interleaved=0 +[WeightCtx] Loaded 88 tensors, 668.1 MB into backend +[CodePredictor] Loaded: 5 layers, hidden 1024, heads 16/8, head_dim 128, FFN 3072, RoPE theta 1000000, 15 acoustic codebooks (vocab 2048 each), mtp_proj linear +[WeightCtx] Loaded 76 tensors, 45.8 MB into backend +[SpeakerEncoder] Loaded: enc_dim=2048 sr=24000 mel_dim=128 hidden=512 mfa=1536 asp_attn=128 se=128 scale=8 +[GGUF] ../models/qwen-tokenizer-12hz-F32.gguf: 398 tensors, data at offset 29664 +[WeightCtx] Loaded 18 tensors, 33.0 MB into backend +[Quantizer] Loaded: 16 codebooks (1 semantic + 15 acoustic), 2048 entries x 256 dim, hidden 512 +[WeightCtx] Loaded 93 tensors, 116.1 MB into backend +[Transformer] Loaded: 8 layers, hidden 512, heads 16/16, head_dim 64, FFN 1024, RoPE theta 10000, sliding window 72 +[WeightCtx] Loaded 22 tensors, 80.1 MB into backend +[Upsample] Loaded: 2 blocks (2x ratio per block), channels 1024, dwconv kernel 7 +[WeightCtx] Loaded 118 tensors, 199.8 MB into backend +[DAC] Loaded: 4 blocks (strides 8/5/4/3), 24 kHz mono out, weights 199.8 MB +[WeightCtx] Loaded 2 tensors, 6.0 MB into backend +[WeightCtx] Loaded 28 tensors, 48.2 MB into backend +[SEANet] Loaded: 4 stages (ratios 4/5/6/8), 64 -> 512 channels, weights 48.2 MB +[WeightCtx] Loaded 96 tensors, 96.1 MB into backend +[EncTransformer] Loaded: 8 layers, hidden 512, heads 8/8, head_dim 64, FFN 2048, RoPE theta 10000 +[WeightCtx] Loaded 1 tensors, 4.0 MB into backend +[EncDownsample] Loaded: k=4 stride=2, 512 -> 512 channels, weights 4.0 MB +[WeightCtx] Loaded 20 tensors, 34.0 MB into backend +[EncQuantizer] Loaded: 16 codebooks (1 semantic + 15 acoustic), 2048 entries x 256 dim, hidden 512, weights 34.0 MB +[Pipeline] Ready: hop 1920 samples @ 24000 Hz mono, 16 codebooks @ 12.5 Hz +[KVCache] Allocated: 28 layers, 8 KV heads, head_dim 128, max_seq_len 4096 -> 896 MB +[KVCache] Allocated: 5 layers, 8 KV heads, head_dim 128, max_seq_len 16 -> 0 MB +[Pipeline] Loaded: arch=1b7 variant=base tokenizer=qwen3_tts_tokenizer_12hz codebooks=16 speaker_encoder=loaded speakers=0 +[BPE] Loaded from GGUF: 151676 vocab, 151291 merges, eos_id=151643 +[BPE] Registered 5 arch special tokens (total specials=6) +[Prompt] Built: 38 ids, N_text=30, N_instruct=0, T_ctx=40, hidden=2048, lang=english (id=2050), speaker=none (id=-1) ref_spk_emb=no icl=no +[Debug] prompt-ids: [38] first4: 151644.000000 77091.000000 198.000000 80.000000 +[Debug] talker-input-embed: [40, 2048] first4: 0.022157 -0.009049 0.008161 -0.020214 +[Debug] trailing-text-hidden: [1, 2048] first4: -0.005331 0.008751 -0.004225 0.001141 +[Debug] tts-pad-embed: [2048] first4: -0.005331 0.008751 -0.004225 0.001141 +[Debug] talker-hidden-prefill-l0: [40, 2048] first4: -0.460968 -0.069929 0.016047 -0.039092 +[Debug] talker-hidden-prefill-l7: [40, 2048] first4: -1.525317 -0.007488 0.340215 1.777318 +[Debug] talker-hidden-prefill-l14: [40, 2048] first4: -1.296772 0.189306 0.441261 1.743797 +[Debug] talker-hidden-prefill-l21: [40, 2048] first4: -0.771753 0.171251 0.791418 1.111589 +[Debug] talker-hidden-prefill-l27: [40, 2048] first4: 7.133080 -34.474182 -7.108909 28.674915 +[Debug] talker-hidden-prefill-final: [40, 2048] first4: 0.242892 -1.225839 -0.224931 0.890014 +[Debug] talker-logits-prefill: [3072] first4: -4.261972 -6.399906 -0.996095 -3.238420 +[Sample] step=0 c0=1995 u=-1.0000000000 subseq=0 +[Sample-CP] g=0 c=1159 u=-1.0000000000 subseq=1 +[Sample-CP] g=1 c=355 u=-1.0000000000 subseq=2 +[Sample-CP] g=2 c=22 u=-1.0000000000 subseq=3 +[Sample-CP] g=3 c=1174 u=-1.0000000000 subseq=4 +[Sample-CP] g=4 c=1093 u=-1.0000000000 subseq=5 +[Sample-CP] g=5 c=625 u=-1.0000000000 subseq=6 +[Sample-CP] g=6 c=1814 u=-1.0000000000 subseq=7 +[Sample-CP] g=7 c=1058 u=-1.0000000000 subseq=8 +[Sample-CP] g=8 c=905 u=-1.0000000000 subseq=9 +[Sample-CP] g=9 c=1846 u=-1.0000000000 subseq=10 +[Sample-CP] g=10 c=1247 u=-1.0000000000 subseq=11 +[Sample-CP] g=11 c=1677 u=-1.0000000000 subseq=12 +[Sample-CP] g=12 c=889 u=-1.0000000000 subseq=13 +[Sample-CP] g=13 c=812 u=-1.0000000000 subseq=14 +[Sample-CP] g=14 c=901 u=-1.0000000000 subseq=15 +[Debug] codes-step0: [16] first4: 1995.000000 1159.000000 355.000000 22.000000 +[Debug] next-emb-step0: [2048] first4: -0.042911 -0.033715 -0.000281 0.188977 +[Debug] talker-hidden-step1: [2048] first4: 1.683677 -2.524468 6.789280 0.745043 +[Sample] step=1 c0=215 u=-1.0000000000 subseq=16 +[Sample-CP] g=0 c=1722 u=-1.0000000000 subseq=17 +[Sample-CP] g=1 c=355 u=-1.0000000000 subseq=18 +[Sample-CP] g=2 c=310 u=-1.0000000000 subseq=19 +[Sample-CP] g=3 c=1174 u=-1.0000000000 subseq=20 +[Sample-CP] g=4 c=1093 u=-1.0000000000 subseq=21 +[Sample-CP] g=5 c=625 u=-1.0000000000 subseq=22 +[Sample-CP] g=6 c=1814 u=-1.0000000000 subseq=23 +[Sample-CP] g=7 c=930 u=-1.0000000000 subseq=24 +[Sample-CP] g=8 c=1144 u=-1.0000000000 subseq=25 +[Sample-CP] g=9 c=679 u=-1.0000000000 subseq=26 +[Sample-CP] g=10 c=1247 u=-1.0000000000 subseq=27 +[Sample-CP] g=11 c=896 u=-1.0000000000 subseq=28 +[Sample-CP] g=12 c=889 u=-1.0000000000 subseq=29 +[Sample-CP] g=13 c=812 u=-1.0000000000 subseq=30 +[Sample-CP] g=14 c=803 u=-1.0000000000 subseq=31 +[Pipeline] Generated 8 frames +[Pipeline] Generated 16 frames +[Pipeline] Generated 24 frames +[Pipeline] Generated 32 frames +[Pipeline] Generated 40 frames +[Pipeline] Generated 48 frames +[Pipeline] Generated 56 frames +[Pipeline] Generated 64 frames +[Pipeline] Generation done : 64 frames +[Debug] codes-full: [64, 16] first4: 1995.000000 1159.000000 355.000000 22.000000 +[Debug] output-audio: [122880] first4: 0.000015 0.000017 0.000015 0.000017 +[WAV] Wrote cpp/base/base-cpp.wav: 122880 samples, 24000 Hz, mono S16 +[Pipeline] Wrote 122880 samples (5.12 s) -> cpp/base/base-cpp.wav +[Input] Prompt: 100 chars: qwentts.cpp is a minimal C++17 and GGML port of Qwen3-TTS fo... +[Input] Lang: english Seed: 42 MaxNewTokens: 64 +[Input] Mode: greedy +[Python] Device: cuda +[Python] InputIds shape: (1, 38) +[Python] Codes shape: (63, 16) (T_frames, num_code_groups) +[Python] Audio: 120960 samples 24000 Hz 5.04s -> python/base/base-python.wav +[Quant] F32 -> ../models/qwen-talker-1.7b-base-F32.gguf + ../models/qwen-tokenizer-12hz-F32.gguf +[GGML] Cmd: ../build/qwen-tts --model ../models/qwen-talker-1.7b-base-F32.gguf --codec ../models/qwen-tokenizer-12hz-F32.gguf --seed 42 --text qwentts.cpp is a minimal C++17 and GGML port of Qwen3-TTS for zero shot multilingual text to speech. --lang english --max-new 64 --dump cpp/base -o cpp/base/base-cpp.wav --greedy +[GGML] Audio: 122880 samples 24000 Hz 5.12s -> cpp/base/base-cpp.wav +[Cossim] PromptIDs exact: 100.00% (38 values) +[Cossim] Embed cos: 1.000000 max: 2.2650e-06 mean: 1.8841e-08 +[Cossim] TrailingText cos: 1.000000 max: 1.0431e-06 mean: 9.3616e-09 +[Cossim] TTSPadEmbed cos: 1.000000 max: 1.0431e-06 mean: 9.3616e-09 +[Cossim] L0 cos: 1.000000 max: 7.6294e-06 mean: 7.2511e-08 +[Cossim] L7 cos: 1.000000 max: 4.8828e-04 mean: 2.9065e-07 +[Cossim] L14 cos: 1.000000 max: 4.8828e-04 mean: 6.4957e-07 +[Cossim] L21 cos: 1.000000 max: 4.8828e-04 mean: 1.9102e-06 +[Cossim] L27 cos: 1.000000 max: 2.6855e-03 mean: 7.3149e-06 +[Cossim] Final cos: 1.000000 max: 5.0545e-05 mean: 4.7584e-07 +[Cossim] Logits cos: 1.000000 max: 1.5259e-05 mean: 2.1238e-06 +[Cossim] NextEmbStep0 cos: 1.000000 max: 1.0431e-06 mean: 9.3024e-09 +[Cossim] TalkerHiddenStep1 cos: 1.000000 max: 1.4544e-05 mean: 2.0600e-06 +[Cossim] CodesFull exact: 100.00% (1008 values) +[Cossim] Audio cos: 0.981927 +[Cossim] WAV stft_cos: 0.989278 samples: 120960 diff --git a/tests/base-CUDA0-Q4_K_M.log b/tests/base-CUDA0-Q4_K_M.log new file mode 100644 index 0000000..688ed2b --- /dev/null +++ b/tests/base-CUDA0-Q4_K_M.log @@ -0,0 +1,125 @@ +ggml_cuda_init: found 1 CUDA devices (Total VRAM: 97247 MiB): + Device 0: NVIDIA RTX PRO 6000 Blackwell Workstation Edition, compute capability 12.0, VMM: yes, VRAM: 97247 MiB +load_backend: loaded CUDA backend from /mnt/workspace/qwentts.cpp/build/libggml-cuda.so +ggml_vulkan: Found 1 Vulkan devices: +ggml_vulkan: 0 = NVIDIA RTX PRO 6000 Blackwell Workstation Edition (NVIDIA) | uma: 0 | fp16: 1 | bf16: 0 | warp size: 32 | shared memory: 49152 | int dot: 1 | matrix cores: NV_coopmat2 +load_backend: loaded Vulkan backend from /mnt/workspace/qwentts.cpp/build/libggml-vulkan.so +load_backend: loaded CPU backend from /mnt/workspace/qwentts.cpp/build/libggml-cpu-zen4.so +[Load] Talker backend: CUDA0 (CPU threads: 16) +[GGUF] ../models/qwen-talker-1.7b-base-Q4_K_M.gguf: 480 tensors, data at offset 5954496 +[WeightCtx] Loaded 316 tensors, 1012.7 MB into backend +[Talker] Loaded: 28 layers, hidden 2048, heads 16/8, head_dim 128, FFN 6144, RoPE theta 1000000, mrope sections [24,20,20] interleaved=0 +[WeightCtx] Loaded 88 tensors, 109.5 MB into backend +[CodePredictor] Loaded: 5 layers, hidden 1024, heads 16/8, head_dim 128, FFN 3072, RoPE theta 1000000, 15 acoustic codebooks (vocab 2048 each), mtp_proj linear +[WeightCtx] Loaded 76 tensors, 34.9 MB into backend +[SpeakerEncoder] Loaded: enc_dim=2048 sr=24000 mel_dim=128 hidden=512 mfa=1536 asp_attn=128 se=128 scale=8 +[GGUF] ../models/qwen-tokenizer-12hz-Q4_K_M.gguf: 398 tensors, data at offset 29760 +[WeightCtx] Loaded 18 tensors, 33.0 MB into backend +[Quantizer] Loaded: 16 codebooks (1 semantic + 15 acoustic), 2048 entries x 256 dim, hidden 512 +[WeightCtx] Loaded 93 tensors, 16.4 MB into backend +[Transformer] Loaded: 8 layers, hidden 512, heads 16/16, head_dim 64, FFN 1024, RoPE theta 10000, sliding window 72 +[WeightCtx] Loaded 22 tensors, 25.1 MB into backend +[Upsample] Loaded: 2 blocks (2x ratio per block), channels 1024, dwconv kernel 7 +[WeightCtx] Loaded 118 tensors, 142.9 MB into backend +[DAC] Loaded: 4 blocks (strides 8/5/4/3), 24 kHz mono out, weights 142.9 MB +[WeightCtx] Loaded 2 tensors, 3.0 MB into backend +[WeightCtx] Loaded 28 tensors, 24.1 MB into backend +[SEANet] Loaded: 4 stages (ratios 4/5/6/8), 64 -> 512 channels, weights 24.1 MB +[WeightCtx] Loaded 96 tensors, 13.6 MB into backend +[EncTransformer] Loaded: 8 layers, hidden 512, heads 8/8, head_dim 64, FFN 2048, RoPE theta 10000 +[WeightCtx] Loaded 1 tensors, 2.0 MB into backend +[EncDownsample] Loaded: k=4 stride=2, 512 -> 512 channels, weights 2.0 MB +[WeightCtx] Loaded 20 tensors, 34.0 MB into backend +[EncQuantizer] Loaded: 16 codebooks (1 semantic + 15 acoustic), 2048 entries x 256 dim, hidden 512, weights 34.0 MB +[Pipeline] Ready: hop 1920 samples @ 24000 Hz mono, 16 codebooks @ 12.5 Hz +[KVCache] Allocated: 28 layers, 8 KV heads, head_dim 128, max_seq_len 4096 -> 896 MB +[KVCache] Allocated: 5 layers, 8 KV heads, head_dim 128, max_seq_len 16 -> 0 MB +[Pipeline] Loaded: arch=1b7 variant=base tokenizer=qwen3_tts_tokenizer_12hz codebooks=16 speaker_encoder=loaded speakers=0 +[BPE] Loaded from GGUF: 151676 vocab, 151291 merges, eos_id=151643 +[BPE] Registered 5 arch special tokens (total specials=6) +[Prompt] Built: 38 ids, N_text=30, N_instruct=0, T_ctx=40, hidden=2048, lang=english (id=2050), speaker=none (id=-1) ref_spk_emb=no icl=no +[Debug] prompt-ids: [38] first4: 151644.000000 77091.000000 198.000000 80.000000 +[Debug] talker-input-embed: [40, 2048] first4: 0.022105 -0.009079 0.008285 -0.019901 +[Debug] trailing-text-hidden: [1, 2048] first4: -0.005388 0.008927 -0.004415 0.000679 +[Debug] tts-pad-embed: [2048] first4: -0.005388 0.008927 -0.004415 0.000679 +[Debug] talker-hidden-prefill-l0: [40, 2048] first4: -0.447358 -0.062733 0.006189 0.016085 +[Debug] talker-hidden-prefill-l7: [40, 2048] first4: -8.846175 0.797751 0.613486 0.111307 +[Debug] talker-hidden-prefill-l14: [40, 2048] first4: -8.782341 1.143654 0.709960 0.178828 +[Debug] talker-hidden-prefill-l21: [40, 2048] first4: -8.581591 1.646079 1.301754 -0.414389 +[Debug] talker-hidden-prefill-l27: [40, 2048] first4: 4.360051 -31.890827 -6.769986 22.778488 +[Debug] talker-hidden-prefill-final: [40, 2048] first4: 0.147967 -1.130170 -0.213488 0.704625 +[Debug] talker-logits-prefill: [3072] first4: -6.952660 -4.840123 0.336555 -1.941904 +[Sample] step=0 c0=1995 u=-1.0000000000 subseq=0 +[Sample-CP] g=0 c=1159 u=-1.0000000000 subseq=1 +[Sample-CP] g=1 c=412 u=-1.0000000000 subseq=2 +[Sample-CP] g=2 c=22 u=-1.0000000000 subseq=3 +[Sample-CP] g=3 c=350 u=-1.0000000000 subseq=4 +[Sample-CP] g=4 c=1748 u=-1.0000000000 subseq=5 +[Sample-CP] g=5 c=1636 u=-1.0000000000 subseq=6 +[Sample-CP] g=6 c=1202 u=-1.0000000000 subseq=7 +[Sample-CP] g=7 c=1058 u=-1.0000000000 subseq=8 +[Sample-CP] g=8 c=1144 u=-1.0000000000 subseq=9 +[Sample-CP] g=9 c=743 u=-1.0000000000 subseq=10 +[Sample-CP] g=10 c=903 u=-1.0000000000 subseq=11 +[Sample-CP] g=11 c=706 u=-1.0000000000 subseq=12 +[Sample-CP] g=12 c=1529 u=-1.0000000000 subseq=13 +[Sample-CP] g=13 c=82 u=-1.0000000000 subseq=14 +[Sample-CP] g=14 c=803 u=-1.0000000000 subseq=15 +[Debug] codes-step0: [16] first4: 1995.000000 1159.000000 412.000000 22.000000 +[Debug] next-emb-step0: [2048] first4: -0.000769 -0.046681 -0.010753 0.124454 +[Debug] talker-hidden-step1: [2048] first4: 2.771324 -2.807498 6.536952 -0.717196 +[Sample] step=1 c0=215 u=-1.0000000000 subseq=16 +[Sample-CP] g=0 c=1134 u=-1.0000000000 subseq=17 +[Sample-CP] g=1 c=2025 u=-1.0000000000 subseq=18 +[Sample-CP] g=2 c=1176 u=-1.0000000000 subseq=19 +[Sample-CP] g=3 c=947 u=-1.0000000000 subseq=20 +[Sample-CP] g=4 c=819 u=-1.0000000000 subseq=21 +[Sample-CP] g=5 c=625 u=-1.0000000000 subseq=22 +[Sample-CP] g=6 c=1202 u=-1.0000000000 subseq=23 +[Sample-CP] g=7 c=993 u=-1.0000000000 subseq=24 +[Sample-CP] g=8 c=1870 u=-1.0000000000 subseq=25 +[Sample-CP] g=9 c=743 u=-1.0000000000 subseq=26 +[Sample-CP] g=10 c=903 u=-1.0000000000 subseq=27 +[Sample-CP] g=11 c=1677 u=-1.0000000000 subseq=28 +[Sample-CP] g=12 c=1759 u=-1.0000000000 subseq=29 +[Sample-CP] g=13 c=1845 u=-1.0000000000 subseq=30 +[Sample-CP] g=14 c=803 u=-1.0000000000 subseq=31 +[Pipeline] Generated 8 frames +[Pipeline] Generated 16 frames +[Pipeline] Generated 24 frames +[Pipeline] Generated 32 frames +[Pipeline] Generated 40 frames +[Pipeline] Generated 48 frames +[Pipeline] Generated 56 frames +[Pipeline] Generated 64 frames +[Pipeline] Generation done : 64 frames +[Debug] codes-full: [64, 16] first4: 1995.000000 1159.000000 412.000000 22.000000 +[Debug] output-audio: [122880] first4: 0.000016 0.000016 0.000013 0.000013 +[WAV] Wrote cpp/base/base-cpp.wav: 122880 samples, 24000 Hz, mono S16 +[Pipeline] Wrote 122880 samples (5.12 s) -> cpp/base/base-cpp.wav +[Input] Prompt: 100 chars: qwentts.cpp is a minimal C++17 and GGML port of Qwen3-TTS fo... +[Input] Lang: english Seed: 42 MaxNewTokens: 64 +[Input] Mode: greedy +[Python] Device: cuda +[Python] InputIds shape: (1, 38) +[Python] Codes shape: (63, 16) (T_frames, num_code_groups) +[Python] Audio: 120960 samples 24000 Hz 5.04s -> python/base/base-python.wav +[Quant] Q4_K_M -> ../models/qwen-talker-1.7b-base-Q4_K_M.gguf + ../models/qwen-tokenizer-12hz-Q4_K_M.gguf +[GGML] Cmd: ../build/qwen-tts --model ../models/qwen-talker-1.7b-base-Q4_K_M.gguf --codec ../models/qwen-tokenizer-12hz-Q4_K_M.gguf --seed 42 --text qwentts.cpp is a minimal C++17 and GGML port of Qwen3-TTS for zero shot multilingual text to speech. --lang english --max-new 64 --dump cpp/base -o cpp/base/base-cpp.wav --greedy +[GGML] Audio: 122880 samples 24000 Hz 5.12s -> cpp/base/base-cpp.wav +[Cossim] PromptIDs exact: 100.00% (38 values) +[Cossim] Embed cos: 0.999695 max: 1.0566e-02 mean: 9.6975e-04 +[Cossim] TrailingText cos: 0.999969 max: 1.4858e-03 mean: 2.2947e-04 +[Cossim] TTSPadEmbed cos: 0.999969 max: 1.4858e-03 mean: 2.2947e-04 +[Cossim] L0 cos: 0.999266 max: 6.6433e-01 mean: 6.6418e-03 +[Cossim] L7 cos: 0.997458 max: 3.4222e+01 mean: 5.8657e-01 +[Cossim] L14 cos: 0.997451 max: 3.4328e+01 mean: 6.7567e-01 +[Cossim] L21 cos: 0.997227 max: 4.1874e+01 mean: 1.1036e+00 +[Cossim] L27 cos: 0.982909 max: 1.6701e+03 mean: 5.0607e+00 +[Cossim] Final cos: 0.944197 max: 2.4863e+01 mean: 2.9907e-01 +[Cossim] Logits cos: 0.975393 max: 3.6027e+00 mean: 7.2304e-01 +[Cossim] NextEmbStep0 cos: 0.804895 max: 2.9351e-01 mean: 3.5512e-02 +[Cossim] TalkerHiddenStep1 cos: 0.745795 max: 7.8548e+00 mean: 1.3562e+00 +[Cossim] CodesFull exact: 28.47% (1008 values) +[Cossim] Audio cos: 0.790801 +[Cossim] WAV stft_cos: 0.859112 samples: 120960 diff --git a/tests/base-CUDA0-Q8_0.log b/tests/base-CUDA0-Q8_0.log new file mode 100644 index 0000000..153dbec --- /dev/null +++ b/tests/base-CUDA0-Q8_0.log @@ -0,0 +1,125 @@ +ggml_cuda_init: found 1 CUDA devices (Total VRAM: 97247 MiB): + Device 0: NVIDIA RTX PRO 6000 Blackwell Workstation Edition, compute capability 12.0, VMM: yes, VRAM: 97247 MiB +load_backend: loaded CUDA backend from /mnt/workspace/qwentts.cpp/build/libggml-cuda.so +ggml_vulkan: Found 1 Vulkan devices: +ggml_vulkan: 0 = NVIDIA RTX PRO 6000 Blackwell Workstation Edition (NVIDIA) | uma: 0 | fp16: 1 | bf16: 0 | warp size: 32 | shared memory: 49152 | int dot: 1 | matrix cores: NV_coopmat2 +load_backend: loaded Vulkan backend from /mnt/workspace/qwentts.cpp/build/libggml-vulkan.so +load_backend: loaded CPU backend from /mnt/workspace/qwentts.cpp/build/libggml-cpu-zen4.so +[Load] Talker backend: CUDA0 (CPU threads: 16) +[GGUF] ../models/qwen-talker-1.7b-base-Q8_0.gguf: 480 tensors, data at offset 5954496 +[WeightCtx] Loaded 316 tensors, 1765.0 MB into backend +[Talker] Loaded: 28 layers, hidden 2048, heads 16/8, head_dim 128, FFN 6144, RoPE theta 1000000, mrope sections [24,20,20] interleaved=0 +[WeightCtx] Loaded 88 tensors, 177.5 MB into backend +[CodePredictor] Loaded: 5 layers, hidden 1024, heads 16/8, head_dim 128, FFN 3072, RoPE theta 1000000, 15 acoustic codebooks (vocab 2048 each), mtp_proj linear +[WeightCtx] Loaded 76 tensors, 34.9 MB into backend +[SpeakerEncoder] Loaded: enc_dim=2048 sr=24000 mel_dim=128 hidden=512 mfa=1536 asp_attn=128 se=128 scale=8 +[GGUF] ../models/qwen-tokenizer-12hz-Q8_0.gguf: 398 tensors, data at offset 29760 +[WeightCtx] Loaded 18 tensors, 33.0 MB into backend +[Quantizer] Loaded: 16 codebooks (1 semantic + 15 acoustic), 2048 entries x 256 dim, hidden 512 +[WeightCtx] Loaded 93 tensors, 30.9 MB into backend +[Transformer] Loaded: 8 layers, hidden 512, heads 16/16, head_dim 64, FFN 1024, RoPE theta 10000, sliding window 72 +[WeightCtx] Loaded 22 tensors, 33.1 MB into backend +[Upsample] Loaded: 2 blocks (2x ratio per block), channels 1024, dwconv kernel 7 +[WeightCtx] Loaded 118 tensors, 142.9 MB into backend +[DAC] Loaded: 4 blocks (strides 8/5/4/3), 24 kHz mono out, weights 142.9 MB +[WeightCtx] Loaded 2 tensors, 3.0 MB into backend +[WeightCtx] Loaded 28 tensors, 24.1 MB into backend +[SEANet] Loaded: 4 stages (ratios 4/5/6/8), 64 -> 512 channels, weights 24.1 MB +[WeightCtx] Loaded 96 tensors, 25.6 MB into backend +[EncTransformer] Loaded: 8 layers, hidden 512, heads 8/8, head_dim 64, FFN 2048, RoPE theta 10000 +[WeightCtx] Loaded 1 tensors, 2.0 MB into backend +[EncDownsample] Loaded: k=4 stride=2, 512 -> 512 channels, weights 2.0 MB +[WeightCtx] Loaded 20 tensors, 34.0 MB into backend +[EncQuantizer] Loaded: 16 codebooks (1 semantic + 15 acoustic), 2048 entries x 256 dim, hidden 512, weights 34.0 MB +[Pipeline] Ready: hop 1920 samples @ 24000 Hz mono, 16 codebooks @ 12.5 Hz +[KVCache] Allocated: 28 layers, 8 KV heads, head_dim 128, max_seq_len 4096 -> 896 MB +[KVCache] Allocated: 5 layers, 8 KV heads, head_dim 128, max_seq_len 16 -> 0 MB +[Pipeline] Loaded: arch=1b7 variant=base tokenizer=qwen3_tts_tokenizer_12hz codebooks=16 speaker_encoder=loaded speakers=0 +[BPE] Loaded from GGUF: 151676 vocab, 151291 merges, eos_id=151643 +[BPE] Registered 5 arch special tokens (total specials=6) +[Prompt] Built: 38 ids, N_text=30, N_instruct=0, T_ctx=40, hidden=2048, lang=english (id=2050), speaker=none (id=-1) ref_spk_emb=no icl=no +[Debug] prompt-ids: [38] first4: 151644.000000 77091.000000 198.000000 80.000000 +[Debug] talker-input-embed: [40, 2048] first4: 0.021979 -0.009018 0.008292 -0.020170 +[Debug] trailing-text-hidden: [1, 2048] first4: -0.005270 0.008716 -0.004355 0.001036 +[Debug] tts-pad-embed: [2048] first4: -0.005270 0.008716 -0.004355 0.001036 +[Debug] talker-hidden-prefill-l0: [40, 2048] first4: -0.467419 -0.069494 0.014718 -0.037177 +[Debug] talker-hidden-prefill-l7: [40, 2048] first4: -2.191055 0.153858 0.210238 1.590774 +[Debug] talker-hidden-prefill-l14: [40, 2048] first4: -1.963035 0.342891 0.321307 1.565399 +[Debug] talker-hidden-prefill-l21: [40, 2048] first4: -1.450296 0.306020 0.671899 0.975008 +[Debug] talker-hidden-prefill-l27: [40, 2048] first4: 6.666507 -34.310875 -7.308170 28.604483 +[Debug] talker-hidden-prefill-final: [40, 2048] first4: 0.226686 -1.218321 -0.230912 0.886583 +[Debug] talker-logits-prefill: [3072] first4: -4.066623 -6.434669 -1.084206 -3.275083 +[Sample] step=0 c0=1995 u=-1.0000000000 subseq=0 +[Sample-CP] g=0 c=1159 u=-1.0000000000 subseq=1 +[Sample-CP] g=1 c=355 u=-1.0000000000 subseq=2 +[Sample-CP] g=2 c=22 u=-1.0000000000 subseq=3 +[Sample-CP] g=3 c=1174 u=-1.0000000000 subseq=4 +[Sample-CP] g=4 c=1093 u=-1.0000000000 subseq=5 +[Sample-CP] g=5 c=625 u=-1.0000000000 subseq=6 +[Sample-CP] g=6 c=1814 u=-1.0000000000 subseq=7 +[Sample-CP] g=7 c=1058 u=-1.0000000000 subseq=8 +[Sample-CP] g=8 c=905 u=-1.0000000000 subseq=9 +[Sample-CP] g=9 c=1846 u=-1.0000000000 subseq=10 +[Sample-CP] g=10 c=1247 u=-1.0000000000 subseq=11 +[Sample-CP] g=11 c=1677 u=-1.0000000000 subseq=12 +[Sample-CP] g=12 c=889 u=-1.0000000000 subseq=13 +[Sample-CP] g=13 c=812 u=-1.0000000000 subseq=14 +[Sample-CP] g=14 c=901 u=-1.0000000000 subseq=15 +[Debug] codes-step0: [16] first4: 1995.000000 1159.000000 355.000000 22.000000 +[Debug] next-emb-step0: [2048] first4: -0.042839 -0.033702 -0.000574 0.188203 +[Debug] talker-hidden-step1: [2048] first4: 1.614406 -2.553735 6.809586 0.754741 +[Sample] step=1 c0=215 u=-1.0000000000 subseq=16 +[Sample-CP] g=0 c=1722 u=-1.0000000000 subseq=17 +[Sample-CP] g=1 c=355 u=-1.0000000000 subseq=18 +[Sample-CP] g=2 c=310 u=-1.0000000000 subseq=19 +[Sample-CP] g=3 c=1174 u=-1.0000000000 subseq=20 +[Sample-CP] g=4 c=1093 u=-1.0000000000 subseq=21 +[Sample-CP] g=5 c=625 u=-1.0000000000 subseq=22 +[Sample-CP] g=6 c=1814 u=-1.0000000000 subseq=23 +[Sample-CP] g=7 c=930 u=-1.0000000000 subseq=24 +[Sample-CP] g=8 c=1144 u=-1.0000000000 subseq=25 +[Sample-CP] g=9 c=679 u=-1.0000000000 subseq=26 +[Sample-CP] g=10 c=1247 u=-1.0000000000 subseq=27 +[Sample-CP] g=11 c=896 u=-1.0000000000 subseq=28 +[Sample-CP] g=12 c=889 u=-1.0000000000 subseq=29 +[Sample-CP] g=13 c=812 u=-1.0000000000 subseq=30 +[Sample-CP] g=14 c=803 u=-1.0000000000 subseq=31 +[Pipeline] Generated 8 frames +[Pipeline] Generated 16 frames +[Pipeline] Generated 24 frames +[Pipeline] Generated 32 frames +[Pipeline] Generated 40 frames +[Pipeline] Generated 48 frames +[Pipeline] Generated 56 frames +[Pipeline] Generated 64 frames +[Pipeline] Generation done : 64 frames +[Debug] codes-full: [64, 16] first4: 1995.000000 1159.000000 355.000000 22.000000 +[Debug] output-audio: [122880] first4: 0.000014 0.000017 0.000015 0.000016 +[WAV] Wrote cpp/base/base-cpp.wav: 122880 samples, 24000 Hz, mono S16 +[Pipeline] Wrote 122880 samples (5.12 s) -> cpp/base/base-cpp.wav +[Input] Prompt: 100 chars: qwentts.cpp is a minimal C++17 and GGML port of Qwen3-TTS fo... +[Input] Lang: english Seed: 42 MaxNewTokens: 64 +[Input] Mode: greedy +[Python] Device: cuda +[Python] InputIds shape: (1, 38) +[Python] Codes shape: (63, 16) (T_frames, num_code_groups) +[Python] Audio: 120960 samples 24000 Hz 5.04s -> python/base/base-python.wav +[Quant] Q8_0 -> ../models/qwen-talker-1.7b-base-Q8_0.gguf + ../models/qwen-tokenizer-12hz-Q8_0.gguf +[GGML] Cmd: ../build/qwen-tts --model ../models/qwen-talker-1.7b-base-Q8_0.gguf --codec ../models/qwen-tokenizer-12hz-Q8_0.gguf --seed 42 --text qwentts.cpp is a minimal C++17 and GGML port of Qwen3-TTS for zero shot multilingual text to speech. --lang english --max-new 64 --dump cpp/base -o cpp/base/base-cpp.wav --greedy +[GGML] Audio: 122880 samples 24000 Hz 5.12s -> cpp/base/base-cpp.wav +[Cossim] PromptIDs exact: 100.00% (38 values) +[Cossim] Embed cos: 0.999987 max: 2.2577e-03 mean: 1.8282e-04 +[Cossim] TrailingText cos: 0.999999 max: 2.1233e-04 mean: 4.3863e-05 +[Cossim] TTSPadEmbed cos: 0.999999 max: 2.1233e-04 mean: 4.3863e-05 +[Cossim] L0 cos: 0.999987 max: 9.8606e-02 mean: 8.8043e-04 +[Cossim] L7 cos: 0.999987 max: 5.0764e+00 mean: 4.3612e-02 +[Cossim] L14 cos: 0.999987 max: 5.0305e+00 mean: 5.1840e-02 +[Cossim] L21 cos: 0.999986 max: 4.8687e+00 mean: 8.9429e-02 +[Cossim] L27 cos: 0.999898 max: 1.1023e+02 mean: 4.2984e-01 +[Cossim] Final cos: 0.999054 max: 4.1020e+00 mean: 2.8603e-02 +[Cossim] Logits cos: 0.999911 max: 2.4493e-01 mean: 3.8623e-02 +[Cossim] NextEmbStep0 cos: 0.999992 max: 1.1117e-03 mean: 2.2935e-04 +[Cossim] TalkerHiddenStep1 cos: 0.999728 max: 2.9192e-01 mean: 4.3826e-02 +[Cossim] CodesFull exact: 99.90% (1008 values) +[Cossim] Audio cos: 0.981566 +[Cossim] WAV stft_cos: 0.989070 samples: 120960 diff --git a/tests/base-Vulkan0-BF16.log b/tests/base-Vulkan0-BF16.log new file mode 100644 index 0000000..0384fd1 --- /dev/null +++ b/tests/base-Vulkan0-BF16.log @@ -0,0 +1,30 @@ +ggml_cuda_init: found 1 CUDA devices (Total VRAM: 97247 MiB): + Device 0: NVIDIA RTX PRO 6000 Blackwell Workstation Edition, compute capability 12.0, VMM: yes, VRAM: 97247 MiB +load_backend: loaded CUDA backend from /mnt/workspace/qwentts.cpp/build/libggml-cuda.so +ggml_vulkan: Found 1 Vulkan devices: +ggml_vulkan: 0 = NVIDIA RTX PRO 6000 Blackwell Workstation Edition (NVIDIA) | uma: 0 | fp16: 1 | bf16: 0 | warp size: 32 | shared memory: 49152 | int dot: 1 | matrix cores: NV_coopmat2 +load_backend: loaded Vulkan backend from /mnt/workspace/qwentts.cpp/build/libggml-vulkan.so +load_backend: loaded CPU backend from /mnt/workspace/qwentts.cpp/build/libggml-cpu-zen4.so +[Load] Talker backend: Vulkan0 (CPU threads: 16) +[GGUF] ../models/qwen-talker-1.7b-base-BF16.gguf: 480 tensors, data at offset 5954496 +[WeightCtx] Loaded 316 tensors, 3322.0 MB into backend +[Talker] Loaded: 28 layers, hidden 2048, heads 16/8, head_dim 128, FFN 6144, RoPE theta 1000000, mrope sections [24,20,20] interleaved=0 +[WeightCtx] Loaded 88 tensors, 334.1 MB into backend +[CodePredictor] Loaded: 5 layers, hidden 1024, heads 16/8, head_dim 128, FFN 3072, RoPE theta 1000000, 15 acoustic codebooks (vocab 2048 each), mtp_proj linear +[WeightCtx] Loaded 76 tensors, 34.9 MB into backend +[SpeakerEncoder] Loaded: enc_dim=2048 sr=24000 mel_dim=128 hidden=512 mfa=1536 asp_attn=128 se=128 scale=8 +[GGUF] ../models/qwen-tokenizer-12hz-BF16.gguf: 398 tensors, data at offset 29760 +[WeightCtx] Loaded 18 tensors, 33.0 MB into backend +[Quantizer] Loaded: 16 codebooks (1 semantic + 15 acoustic), 2048 entries x 256 dim, hidden 512 +[WeightCtx] Loaded 93 tensors, 58.1 MB into backend +[Transformer] Loaded: 8 layers, hidden 512, heads 16/16, head_dim 64, FFN 1024, RoPE theta 10000, sliding window 72 +[CausalTransConv] FATAL: 'tok_dec.upsample.0.conv.weight' expected F32 or F16, got type 30 +[Input] Prompt: 100 chars: qwentts.cpp is a minimal C++17 and GGML port of Qwen3-TTS fo... +[Input] Lang: english Seed: 42 MaxNewTokens: 64 +[Input] Mode: greedy +[Python] Device: cuda +[Python] InputIds shape: (1, 38) +[Python] Codes shape: (63, 16) (T_frames, num_code_groups) +[Python] Audio: 120960 samples 24000 Hz 5.04s -> python/base/base-python.wav +[Quant] BF16 -> ../models/qwen-talker-1.7b-base-BF16.gguf + ../models/qwen-tokenizer-12hz-BF16.gguf +[GGML] Cmd: ../build/qwen-tts --model ../models/qwen-talker-1.7b-base-BF16.gguf --codec ../models/qwen-tokenizer-12hz-BF16.gguf --seed 42 --text qwentts.cpp is a minimal C++17 and GGML port of Qwen3-TTS for zero shot multilingual text to speech. --lang english --max-new 64 --dump cpp/base -o cpp/base/base-cpp.wav --greedy diff --git a/tests/base-Vulkan0-F32.log b/tests/base-Vulkan0-F32.log new file mode 100644 index 0000000..59b4822 --- /dev/null +++ b/tests/base-Vulkan0-F32.log @@ -0,0 +1,125 @@ +ggml_cuda_init: found 1 CUDA devices (Total VRAM: 97247 MiB): + Device 0: NVIDIA RTX PRO 6000 Blackwell Workstation Edition, compute capability 12.0, VMM: yes, VRAM: 97247 MiB +load_backend: loaded CUDA backend from /mnt/workspace/qwentts.cpp/build/libggml-cuda.so +ggml_vulkan: Found 1 Vulkan devices: +ggml_vulkan: 0 = NVIDIA RTX PRO 6000 Blackwell Workstation Edition (NVIDIA) | uma: 0 | fp16: 1 | bf16: 0 | warp size: 32 | shared memory: 49152 | int dot: 1 | matrix cores: NV_coopmat2 +load_backend: loaded Vulkan backend from /mnt/workspace/qwentts.cpp/build/libggml-vulkan.so +load_backend: loaded CPU backend from /mnt/workspace/qwentts.cpp/build/libggml-cpu-zen4.so +[Load] Talker backend: Vulkan0 (CPU threads: 16) +[GGUF] ../models/qwen-talker-1.7b-base-F32.gguf: 480 tensors, data at offset 5954432 +[WeightCtx] Loaded 316 tensors, 6643.5 MB into backend +[Talker] Loaded: 28 layers, hidden 2048, heads 16/8, head_dim 128, FFN 6144, RoPE theta 1000000, mrope sections [24,20,20] interleaved=0 +[WeightCtx] Loaded 88 tensors, 668.1 MB into backend +[CodePredictor] Loaded: 5 layers, hidden 1024, heads 16/8, head_dim 128, FFN 3072, RoPE theta 1000000, 15 acoustic codebooks (vocab 2048 each), mtp_proj linear +[WeightCtx] Loaded 76 tensors, 45.8 MB into backend +[SpeakerEncoder] Loaded: enc_dim=2048 sr=24000 mel_dim=128 hidden=512 mfa=1536 asp_attn=128 se=128 scale=8 +[GGUF] ../models/qwen-tokenizer-12hz-F32.gguf: 398 tensors, data at offset 29664 +[WeightCtx] Loaded 18 tensors, 33.0 MB into backend +[Quantizer] Loaded: 16 codebooks (1 semantic + 15 acoustic), 2048 entries x 256 dim, hidden 512 +[WeightCtx] Loaded 93 tensors, 116.1 MB into backend +[Transformer] Loaded: 8 layers, hidden 512, heads 16/16, head_dim 64, FFN 1024, RoPE theta 10000, sliding window 72 +[WeightCtx] Loaded 22 tensors, 80.1 MB into backend +[Upsample] Loaded: 2 blocks (2x ratio per block), channels 1024, dwconv kernel 7 +[WeightCtx] Loaded 118 tensors, 199.8 MB into backend +[DAC] Loaded: 4 blocks (strides 8/5/4/3), 24 kHz mono out, weights 199.8 MB +[WeightCtx] Loaded 2 tensors, 6.0 MB into backend +[WeightCtx] Loaded 28 tensors, 48.2 MB into backend +[SEANet] Loaded: 4 stages (ratios 4/5/6/8), 64 -> 512 channels, weights 48.2 MB +[WeightCtx] Loaded 96 tensors, 96.1 MB into backend +[EncTransformer] Loaded: 8 layers, hidden 512, heads 8/8, head_dim 64, FFN 2048, RoPE theta 10000 +[WeightCtx] Loaded 1 tensors, 4.0 MB into backend +[EncDownsample] Loaded: k=4 stride=2, 512 -> 512 channels, weights 4.0 MB +[WeightCtx] Loaded 20 tensors, 34.0 MB into backend +[EncQuantizer] Loaded: 16 codebooks (1 semantic + 15 acoustic), 2048 entries x 256 dim, hidden 512, weights 34.0 MB +[Pipeline] Ready: hop 1920 samples @ 24000 Hz mono, 16 codebooks @ 12.5 Hz +[KVCache] Allocated: 28 layers, 8 KV heads, head_dim 128, max_seq_len 4096 -> 896 MB +[KVCache] Allocated: 5 layers, 8 KV heads, head_dim 128, max_seq_len 16 -> 0 MB +[Pipeline] Loaded: arch=1b7 variant=base tokenizer=qwen3_tts_tokenizer_12hz codebooks=16 speaker_encoder=loaded speakers=0 +[BPE] Loaded from GGUF: 151676 vocab, 151291 merges, eos_id=151643 +[BPE] Registered 5 arch special tokens (total specials=6) +[Prompt] Built: 38 ids, N_text=30, N_instruct=0, T_ctx=40, hidden=2048, lang=english (id=2050), speaker=none (id=-1) ref_spk_emb=no icl=no +[Debug] prompt-ids: [38] first4: 151644.000000 77091.000000 198.000000 80.000000 +[Debug] talker-input-embed: [40, 2048] first4: 0.022157 -0.009049 0.008161 -0.020214 +[Debug] trailing-text-hidden: [1, 2048] first4: -0.005331 0.008751 -0.004225 0.001141 +[Debug] tts-pad-embed: [2048] first4: -0.005331 0.008751 -0.004225 0.001141 +[Debug] talker-hidden-prefill-l0: [40, 2048] first4: -0.457824 -0.069581 0.015775 -0.038616 +[Debug] talker-hidden-prefill-l7: [40, 2048] first4: -1.527061 -0.012803 0.350664 1.772303 +[Debug] talker-hidden-prefill-l14: [40, 2048] first4: -1.298302 0.183709 0.452202 1.738756 +[Debug] talker-hidden-prefill-l21: [40, 2048] first4: -0.772566 0.165500 0.805204 1.105845 +[Debug] talker-hidden-prefill-l27: [40, 2048] first4: 7.084506 -34.605457 -7.071080 28.531052 +[Debug] talker-hidden-prefill-final: [40, 2048] first4: 0.241432 -1.231496 -0.223914 0.886260 +[Debug] talker-logits-prefill: [3072] first4: -4.187500 -6.421875 -1.005859 -3.253906 +[Sample] step=0 c0=1995 u=-1.0000000000 subseq=0 +[Sample-CP] g=0 c=1159 u=-1.0000000000 subseq=1 +[Sample-CP] g=1 c=887 u=-1.0000000000 subseq=2 +[Sample-CP] g=2 c=1853 u=-1.0000000000 subseq=3 +[Sample-CP] g=3 c=369 u=-1.0000000000 subseq=4 +[Sample-CP] g=4 c=645 u=-1.0000000000 subseq=5 +[Sample-CP] g=5 c=889 u=-1.0000000000 subseq=6 +[Sample-CP] g=6 c=1274 u=-1.0000000000 subseq=7 +[Sample-CP] g=7 c=338 u=-1.0000000000 subseq=8 +[Sample-CP] g=8 c=373 u=-1.0000000000 subseq=9 +[Sample-CP] g=9 c=359 u=-1.0000000000 subseq=10 +[Sample-CP] g=10 c=651 u=-1.0000000000 subseq=11 +[Sample-CP] g=11 c=1572 u=-1.0000000000 subseq=12 +[Sample-CP] g=12 c=1160 u=-1.0000000000 subseq=13 +[Sample-CP] g=13 c=1079 u=-1.0000000000 subseq=14 +[Sample-CP] g=14 c=780 u=-1.0000000000 subseq=15 +[Debug] codes-step0: [16] first4: 1995.000000 1159.000000 887.000000 1853.000000 +[Debug] next-emb-step0: [2048] first4: -0.019854 -0.049802 -0.034545 0.027441 +[Debug] talker-hidden-step1: [2048] first4: -1.350096 -4.437189 1.978907 -1.633949 +[Sample] step=1 c0=1028 u=-1.0000000000 subseq=16 +[Sample-CP] g=0 c=113 u=-1.0000000000 subseq=17 +[Sample-CP] g=1 c=1705 u=-1.0000000000 subseq=18 +[Sample-CP] g=2 c=1357 u=-1.0000000000 subseq=19 +[Sample-CP] g=3 c=496 u=-1.0000000000 subseq=20 +[Sample-CP] g=4 c=1461 u=-1.0000000000 subseq=21 +[Sample-CP] g=5 c=267 u=-1.0000000000 subseq=22 +[Sample-CP] g=6 c=926 u=-1.0000000000 subseq=23 +[Sample-CP] g=7 c=318 u=-1.0000000000 subseq=24 +[Sample-CP] g=8 c=1275 u=-1.0000000000 subseq=25 +[Sample-CP] g=9 c=525 u=-1.0000000000 subseq=26 +[Sample-CP] g=10 c=1842 u=-1.0000000000 subseq=27 +[Sample-CP] g=11 c=1748 u=-1.0000000000 subseq=28 +[Sample-CP] g=12 c=1918 u=-1.0000000000 subseq=29 +[Sample-CP] g=13 c=1670 u=-1.0000000000 subseq=30 +[Sample-CP] g=14 c=207 u=-1.0000000000 subseq=31 +[Pipeline] Generated 8 frames +[Pipeline] Generated 16 frames +[Pipeline] Generated 24 frames +[Pipeline] Generated 32 frames +[Pipeline] Generated 40 frames +[Pipeline] Generated 48 frames +[Pipeline] Generated 56 frames +[Pipeline] Generated 64 frames +[Pipeline] Generation done : 64 frames +[Debug] codes-full: [64, 16] first4: 1995.000000 1159.000000 887.000000 1853.000000 +[Debug] output-audio: [122880] first4: -0.000264 -0.000364 -0.000392 -0.000405 +[WAV] Wrote cpp/base/base-cpp.wav: 122880 samples, 24000 Hz, mono S16 +[Pipeline] Wrote 122880 samples (5.12 s) -> cpp/base/base-cpp.wav +[Input] Prompt: 100 chars: qwentts.cpp is a minimal C++17 and GGML port of Qwen3-TTS fo... +[Input] Lang: english Seed: 42 MaxNewTokens: 64 +[Input] Mode: greedy +[Python] Device: cuda +[Python] InputIds shape: (1, 38) +[Python] Codes shape: (63, 16) (T_frames, num_code_groups) +[Python] Audio: 120960 samples 24000 Hz 5.04s -> python/base/base-python.wav +[Quant] F32 -> ../models/qwen-talker-1.7b-base-F32.gguf + ../models/qwen-tokenizer-12hz-F32.gguf +[GGML] Cmd: ../build/qwen-tts --model ../models/qwen-talker-1.7b-base-F32.gguf --codec ../models/qwen-tokenizer-12hz-F32.gguf --seed 42 --text qwentts.cpp is a minimal C++17 and GGML port of Qwen3-TTS for zero shot multilingual text to speech. --lang english --max-new 64 --dump cpp/base -o cpp/base/base-cpp.wav --greedy +[GGML] Audio: 122880 samples 24000 Hz 5.12s -> cpp/base/base-cpp.wav +[Cossim] PromptIDs exact: 100.00% (38 values) +[Cossim] Embed cos: 1.000000 max: 2.2650e-06 mean: 1.8841e-08 +[Cossim] TrailingText cos: 1.000000 max: 1.0431e-06 mean: 9.3616e-09 +[Cossim] TTSPadEmbed cos: 1.000000 max: 1.0431e-06 mean: 9.3616e-09 +[Cossim] L0 cos: 0.999998 max: 7.0589e-02 mean: 2.3487e-04 +[Cossim] L7 cos: 0.999997 max: 2.0187e+01 mean: 2.8197e-03 +[Cossim] L14 cos: 0.999997 max: 2.0179e+01 mean: 4.5399e-03 +[Cossim] L21 cos: 0.999997 max: 2.0261e+01 mean: 1.2459e-02 +[Cossim] L27 cos: 0.999991 max: 3.5026e+01 mean: 8.5269e-02 +[Cossim] Final cos: 0.999982 max: 4.8414e-01 mean: 4.7583e-03 +[Cossim] Logits cos: 0.999993 max: 7.4465e-02 mean: 1.1664e-02 +[Cossim] NextEmbStep0 cos: 0.431734 max: 5.4164e-01 mean: 5.7355e-02 +[Cossim] TalkerHiddenStep1 cos: 0.282685 max: 2.3768e+01 mean: 2.1941e+00 +[Cossim] CodesFull exact: 0.30% (1008 values) +[Cossim] Audio cos: 0.039381 +[Cossim] WAV stft_cos: 0.057063 samples: 120960 diff --git a/tests/base-Vulkan0-Q4_K_M.log b/tests/base-Vulkan0-Q4_K_M.log new file mode 100644 index 0000000..bc9de2e --- /dev/null +++ b/tests/base-Vulkan0-Q4_K_M.log @@ -0,0 +1,125 @@ +ggml_cuda_init: found 1 CUDA devices (Total VRAM: 97247 MiB): + Device 0: NVIDIA RTX PRO 6000 Blackwell Workstation Edition, compute capability 12.0, VMM: yes, VRAM: 97247 MiB +load_backend: loaded CUDA backend from /mnt/workspace/qwentts.cpp/build/libggml-cuda.so +ggml_vulkan: Found 1 Vulkan devices: +ggml_vulkan: 0 = NVIDIA RTX PRO 6000 Blackwell Workstation Edition (NVIDIA) | uma: 0 | fp16: 1 | bf16: 0 | warp size: 32 | shared memory: 49152 | int dot: 1 | matrix cores: NV_coopmat2 +load_backend: loaded Vulkan backend from /mnt/workspace/qwentts.cpp/build/libggml-vulkan.so +load_backend: loaded CPU backend from /mnt/workspace/qwentts.cpp/build/libggml-cpu-zen4.so +[Load] Talker backend: Vulkan0 (CPU threads: 16) +[GGUF] ../models/qwen-talker-1.7b-base-Q4_K_M.gguf: 480 tensors, data at offset 5954496 +[WeightCtx] Loaded 316 tensors, 1012.7 MB into backend +[Talker] Loaded: 28 layers, hidden 2048, heads 16/8, head_dim 128, FFN 6144, RoPE theta 1000000, mrope sections [24,20,20] interleaved=0 +[WeightCtx] Loaded 88 tensors, 109.5 MB into backend +[CodePredictor] Loaded: 5 layers, hidden 1024, heads 16/8, head_dim 128, FFN 3072, RoPE theta 1000000, 15 acoustic codebooks (vocab 2048 each), mtp_proj linear +[WeightCtx] Loaded 76 tensors, 34.9 MB into backend +[SpeakerEncoder] Loaded: enc_dim=2048 sr=24000 mel_dim=128 hidden=512 mfa=1536 asp_attn=128 se=128 scale=8 +[GGUF] ../models/qwen-tokenizer-12hz-Q4_K_M.gguf: 398 tensors, data at offset 29760 +[WeightCtx] Loaded 18 tensors, 33.0 MB into backend +[Quantizer] Loaded: 16 codebooks (1 semantic + 15 acoustic), 2048 entries x 256 dim, hidden 512 +[WeightCtx] Loaded 93 tensors, 16.4 MB into backend +[Transformer] Loaded: 8 layers, hidden 512, heads 16/16, head_dim 64, FFN 1024, RoPE theta 10000, sliding window 72 +[WeightCtx] Loaded 22 tensors, 25.1 MB into backend +[Upsample] Loaded: 2 blocks (2x ratio per block), channels 1024, dwconv kernel 7 +[WeightCtx] Loaded 118 tensors, 142.9 MB into backend +[DAC] Loaded: 4 blocks (strides 8/5/4/3), 24 kHz mono out, weights 142.9 MB +[WeightCtx] Loaded 2 tensors, 3.0 MB into backend +[WeightCtx] Loaded 28 tensors, 24.1 MB into backend +[SEANet] Loaded: 4 stages (ratios 4/5/6/8), 64 -> 512 channels, weights 24.1 MB +[WeightCtx] Loaded 96 tensors, 13.6 MB into backend +[EncTransformer] Loaded: 8 layers, hidden 512, heads 8/8, head_dim 64, FFN 2048, RoPE theta 10000 +[WeightCtx] Loaded 1 tensors, 2.0 MB into backend +[EncDownsample] Loaded: k=4 stride=2, 512 -> 512 channels, weights 2.0 MB +[WeightCtx] Loaded 20 tensors, 34.0 MB into backend +[EncQuantizer] Loaded: 16 codebooks (1 semantic + 15 acoustic), 2048 entries x 256 dim, hidden 512, weights 34.0 MB +[Pipeline] Ready: hop 1920 samples @ 24000 Hz mono, 16 codebooks @ 12.5 Hz +[KVCache] Allocated: 28 layers, 8 KV heads, head_dim 128, max_seq_len 4096 -> 896 MB +[KVCache] Allocated: 5 layers, 8 KV heads, head_dim 128, max_seq_len 16 -> 0 MB +[Pipeline] Loaded: arch=1b7 variant=base tokenizer=qwen3_tts_tokenizer_12hz codebooks=16 speaker_encoder=loaded speakers=0 +[BPE] Loaded from GGUF: 151676 vocab, 151291 merges, eos_id=151643 +[BPE] Registered 5 arch special tokens (total specials=6) +[Prompt] Built: 38 ids, N_text=30, N_instruct=0, T_ctx=40, hidden=2048, lang=english (id=2050), speaker=none (id=-1) ref_spk_emb=no icl=no +[Debug] prompt-ids: [38] first4: 151644.000000 77091.000000 198.000000 80.000000 +[Debug] talker-input-embed: [40, 2048] first4: 0.022105 -0.009079 0.008285 -0.019901 +[Debug] trailing-text-hidden: [1, 2048] first4: -0.005388 0.008927 -0.004415 0.000679 +[Debug] tts-pad-embed: [2048] first4: -0.005388 0.008927 -0.004415 0.000679 +[Debug] talker-hidden-prefill-l0: [40, 2048] first4: -0.440114 -0.067513 0.007682 0.014812 +[Debug] talker-hidden-prefill-l7: [40, 2048] first4: -8.839585 0.783318 0.508945 0.097937 +[Debug] talker-hidden-prefill-l14: [40, 2048] first4: -8.774442 1.117288 0.612085 0.163537 +[Debug] talker-hidden-prefill-l21: [40, 2048] first4: -8.658731 1.690545 1.112828 -0.787406 +[Debug] talker-hidden-prefill-l27: [40, 2048] first4: 4.962493 -31.760586 -6.788569 21.825624 +[Debug] talker-hidden-prefill-final: [40, 2048] first4: 0.167658 -1.120514 -0.213115 0.672126 +[Debug] talker-logits-prefill: [3072] first4: -6.832031 -4.953125 0.424805 -1.972656 +[Sample] step=0 c0=1995 u=-1.0000000000 subseq=0 +[Sample-CP] g=0 c=1159 u=-1.0000000000 subseq=1 +[Sample-CP] g=1 c=887 u=-1.0000000000 subseq=2 +[Sample-CP] g=2 c=1853 u=-1.0000000000 subseq=3 +[Sample-CP] g=3 c=1294 u=-1.0000000000 subseq=4 +[Sample-CP] g=4 c=778 u=-1.0000000000 subseq=5 +[Sample-CP] g=5 c=1206 u=-1.0000000000 subseq=6 +[Sample-CP] g=6 c=308 u=-1.0000000000 subseq=7 +[Sample-CP] g=7 c=1117 u=-1.0000000000 subseq=8 +[Sample-CP] g=8 c=1439 u=-1.0000000000 subseq=9 +[Sample-CP] g=9 c=359 u=-1.0000000000 subseq=10 +[Sample-CP] g=10 c=55 u=-1.0000000000 subseq=11 +[Sample-CP] g=11 c=453 u=-1.0000000000 subseq=12 +[Sample-CP] g=12 c=989 u=-1.0000000000 subseq=13 +[Sample-CP] g=13 c=403 u=-1.0000000000 subseq=14 +[Sample-CP] g=14 c=363 u=-1.0000000000 subseq=15 +[Debug] codes-step0: [16] first4: 1995.000000 1159.000000 887.000000 1853.000000 +[Debug] next-emb-step0: [2048] first4: 0.016646 -0.005029 -0.033803 -0.002747 +[Debug] talker-hidden-step1: [2048] first4: -0.929883 -3.736696 0.872852 -1.414843 +[Sample] step=1 c0=1014 u=-1.0000000000 subseq=16 +[Sample-CP] g=0 c=780 u=-1.0000000000 subseq=17 +[Sample-CP] g=1 c=1203 u=-1.0000000000 subseq=18 +[Sample-CP] g=2 c=1315 u=-1.0000000000 subseq=19 +[Sample-CP] g=3 c=77 u=-1.0000000000 subseq=20 +[Sample-CP] g=4 c=111 u=-1.0000000000 subseq=21 +[Sample-CP] g=5 c=267 u=-1.0000000000 subseq=22 +[Sample-CP] g=6 c=592 u=-1.0000000000 subseq=23 +[Sample-CP] g=7 c=1932 u=-1.0000000000 subseq=24 +[Sample-CP] g=8 c=813 u=-1.0000000000 subseq=25 +[Sample-CP] g=9 c=1506 u=-1.0000000000 subseq=26 +[Sample-CP] g=10 c=547 u=-1.0000000000 subseq=27 +[Sample-CP] g=11 c=2001 u=-1.0000000000 subseq=28 +[Sample-CP] g=12 c=111 u=-1.0000000000 subseq=29 +[Sample-CP] g=13 c=1942 u=-1.0000000000 subseq=30 +[Sample-CP] g=14 c=1285 u=-1.0000000000 subseq=31 +[Pipeline] Generated 8 frames +[Pipeline] Generated 16 frames +[Pipeline] Generated 24 frames +[Pipeline] Generated 32 frames +[Pipeline] Generated 40 frames +[Pipeline] Generated 48 frames +[Pipeline] Generated 56 frames +[Pipeline] Generated 64 frames +[Pipeline] Generation done : 64 frames +[Debug] codes-full: [64, 16] first4: 1995.000000 1159.000000 887.000000 1853.000000 +[Debug] output-audio: [122880] first4: 0.000014 0.000013 0.000006 0.000011 +[WAV] Wrote cpp/base/base-cpp.wav: 122880 samples, 24000 Hz, mono S16 +[Pipeline] Wrote 122880 samples (5.12 s) -> cpp/base/base-cpp.wav +[Input] Prompt: 100 chars: qwentts.cpp is a minimal C++17 and GGML port of Qwen3-TTS fo... +[Input] Lang: english Seed: 42 MaxNewTokens: 64 +[Input] Mode: greedy +[Python] Device: cuda +[Python] InputIds shape: (1, 38) +[Python] Codes shape: (63, 16) (T_frames, num_code_groups) +[Python] Audio: 120960 samples 24000 Hz 5.04s -> python/base/base-python.wav +[Quant] Q4_K_M -> ../models/qwen-talker-1.7b-base-Q4_K_M.gguf + ../models/qwen-tokenizer-12hz-Q4_K_M.gguf +[GGML] Cmd: ../build/qwen-tts --model ../models/qwen-talker-1.7b-base-Q4_K_M.gguf --codec ../models/qwen-tokenizer-12hz-Q4_K_M.gguf --seed 42 --text qwentts.cpp is a minimal C++17 and GGML port of Qwen3-TTS for zero shot multilingual text to speech. --lang english --max-new 64 --dump cpp/base -o cpp/base/base-cpp.wav --greedy +[GGML] Audio: 122880 samples 24000 Hz 5.12s -> cpp/base/base-cpp.wav +[Cossim] PromptIDs exact: 100.00% (38 values) +[Cossim] Embed cos: 0.999695 max: 1.0566e-02 mean: 9.6975e-04 +[Cossim] TrailingText cos: 0.999969 max: 1.4858e-03 mean: 2.2947e-04 +[Cossim] TTSPadEmbed cos: 0.999969 max: 1.4858e-03 mean: 2.2947e-04 +[Cossim] L0 cos: 0.999279 max: 7.9302e-01 mean: 6.4647e-03 +[Cossim] L7 cos: 0.997448 max: 4.1743e+01 mean: 5.8622e-01 +[Cossim] L14 cos: 0.997441 max: 4.3301e+01 mean: 6.7443e-01 +[Cossim] L21 cos: 0.997231 max: 4.2807e+01 mean: 1.0945e+00 +[Cossim] L27 cos: 0.982530 max: 1.7326e+03 mean: 5.0100e+00 +[Cossim] Final cos: 0.946231 max: 2.4114e+01 mean: 2.9488e-01 +[Cossim] Logits cos: 0.976299 max: 3.4270e+00 mean: 7.1229e-01 +[Cossim] NextEmbStep0 cos: 0.439674 max: 4.9057e-01 mean: 5.7374e-02 +[Cossim] TalkerHiddenStep1 cos: 0.265089 max: 2.4202e+01 mean: 2.2974e+00 +[Cossim] CodesFull exact: 0.20% (1008 values) +[Cossim] Audio cos: 0.274084 +[Cossim] WAV stft_cos: 0.412402 samples: 120960 diff --git a/tests/base-Vulkan0-Q8_0.log b/tests/base-Vulkan0-Q8_0.log new file mode 100644 index 0000000..e3066a7 --- /dev/null +++ b/tests/base-Vulkan0-Q8_0.log @@ -0,0 +1,125 @@ +ggml_cuda_init: found 1 CUDA devices (Total VRAM: 97247 MiB): + Device 0: NVIDIA RTX PRO 6000 Blackwell Workstation Edition, compute capability 12.0, VMM: yes, VRAM: 97247 MiB +load_backend: loaded CUDA backend from /mnt/workspace/qwentts.cpp/build/libggml-cuda.so +ggml_vulkan: Found 1 Vulkan devices: +ggml_vulkan: 0 = NVIDIA RTX PRO 6000 Blackwell Workstation Edition (NVIDIA) | uma: 0 | fp16: 1 | bf16: 0 | warp size: 32 | shared memory: 49152 | int dot: 1 | matrix cores: NV_coopmat2 +load_backend: loaded Vulkan backend from /mnt/workspace/qwentts.cpp/build/libggml-vulkan.so +load_backend: loaded CPU backend from /mnt/workspace/qwentts.cpp/build/libggml-cpu-zen4.so +[Load] Talker backend: Vulkan0 (CPU threads: 16) +[GGUF] ../models/qwen-talker-1.7b-base-Q8_0.gguf: 480 tensors, data at offset 5954496 +[WeightCtx] Loaded 316 tensors, 1765.0 MB into backend +[Talker] Loaded: 28 layers, hidden 2048, heads 16/8, head_dim 128, FFN 6144, RoPE theta 1000000, mrope sections [24,20,20] interleaved=0 +[WeightCtx] Loaded 88 tensors, 177.5 MB into backend +[CodePredictor] Loaded: 5 layers, hidden 1024, heads 16/8, head_dim 128, FFN 3072, RoPE theta 1000000, 15 acoustic codebooks (vocab 2048 each), mtp_proj linear +[WeightCtx] Loaded 76 tensors, 34.9 MB into backend +[SpeakerEncoder] Loaded: enc_dim=2048 sr=24000 mel_dim=128 hidden=512 mfa=1536 asp_attn=128 se=128 scale=8 +[GGUF] ../models/qwen-tokenizer-12hz-Q8_0.gguf: 398 tensors, data at offset 29760 +[WeightCtx] Loaded 18 tensors, 33.0 MB into backend +[Quantizer] Loaded: 16 codebooks (1 semantic + 15 acoustic), 2048 entries x 256 dim, hidden 512 +[WeightCtx] Loaded 93 tensors, 30.9 MB into backend +[Transformer] Loaded: 8 layers, hidden 512, heads 16/16, head_dim 64, FFN 1024, RoPE theta 10000, sliding window 72 +[WeightCtx] Loaded 22 tensors, 33.1 MB into backend +[Upsample] Loaded: 2 blocks (2x ratio per block), channels 1024, dwconv kernel 7 +[WeightCtx] Loaded 118 tensors, 142.9 MB into backend +[DAC] Loaded: 4 blocks (strides 8/5/4/3), 24 kHz mono out, weights 142.9 MB +[WeightCtx] Loaded 2 tensors, 3.0 MB into backend +[WeightCtx] Loaded 28 tensors, 24.1 MB into backend +[SEANet] Loaded: 4 stages (ratios 4/5/6/8), 64 -> 512 channels, weights 24.1 MB +[WeightCtx] Loaded 96 tensors, 25.6 MB into backend +[EncTransformer] Loaded: 8 layers, hidden 512, heads 8/8, head_dim 64, FFN 2048, RoPE theta 10000 +[WeightCtx] Loaded 1 tensors, 2.0 MB into backend +[EncDownsample] Loaded: k=4 stride=2, 512 -> 512 channels, weights 2.0 MB +[WeightCtx] Loaded 20 tensors, 34.0 MB into backend +[EncQuantizer] Loaded: 16 codebooks (1 semantic + 15 acoustic), 2048 entries x 256 dim, hidden 512, weights 34.0 MB +[Pipeline] Ready: hop 1920 samples @ 24000 Hz mono, 16 codebooks @ 12.5 Hz +[KVCache] Allocated: 28 layers, 8 KV heads, head_dim 128, max_seq_len 4096 -> 896 MB +[KVCache] Allocated: 5 layers, 8 KV heads, head_dim 128, max_seq_len 16 -> 0 MB +[Pipeline] Loaded: arch=1b7 variant=base tokenizer=qwen3_tts_tokenizer_12hz codebooks=16 speaker_encoder=loaded speakers=0 +[BPE] Loaded from GGUF: 151676 vocab, 151291 merges, eos_id=151643 +[BPE] Registered 5 arch special tokens (total specials=6) +[Prompt] Built: 38 ids, N_text=30, N_instruct=0, T_ctx=40, hidden=2048, lang=english (id=2050), speaker=none (id=-1) ref_spk_emb=no icl=no +[Debug] prompt-ids: [38] first4: 151644.000000 77091.000000 198.000000 80.000000 +[Debug] talker-input-embed: [40, 2048] first4: 0.021979 -0.009018 0.008292 -0.020170 +[Debug] trailing-text-hidden: [1, 2048] first4: -0.005270 0.008716 -0.004355 0.001036 +[Debug] tts-pad-embed: [2048] first4: -0.005270 0.008716 -0.004355 0.001036 +[Debug] talker-hidden-prefill-l0: [40, 2048] first4: -0.461420 -0.072044 0.014792 -0.037443 +[Debug] talker-hidden-prefill-l7: [40, 2048] first4: -2.199468 0.166968 0.200645 1.604671 +[Debug] talker-hidden-prefill-l14: [40, 2048] first4: -1.975133 0.353360 0.306994 1.579719 +[Debug] talker-hidden-prefill-l21: [40, 2048] first4: -1.461743 0.289562 0.665961 0.999581 +[Debug] talker-hidden-prefill-l27: [40, 2048] first4: 6.705354 -34.567703 -7.414961 28.435642 +[Debug] talker-hidden-prefill-final: [40, 2048] first4: 0.228340 -1.229235 -0.234628 0.882638 +[Debug] talker-logits-prefill: [3072] first4: -4.078125 -6.410156 -1.056641 -3.250000 +[Sample] step=0 c0=1995 u=-1.0000000000 subseq=0 +[Sample-CP] g=0 c=1159 u=-1.0000000000 subseq=1 +[Sample-CP] g=1 c=887 u=-1.0000000000 subseq=2 +[Sample-CP] g=2 c=1853 u=-1.0000000000 subseq=3 +[Sample-CP] g=3 c=369 u=-1.0000000000 subseq=4 +[Sample-CP] g=4 c=645 u=-1.0000000000 subseq=5 +[Sample-CP] g=5 c=889 u=-1.0000000000 subseq=6 +[Sample-CP] g=6 c=1274 u=-1.0000000000 subseq=7 +[Sample-CP] g=7 c=338 u=-1.0000000000 subseq=8 +[Sample-CP] g=8 c=373 u=-1.0000000000 subseq=9 +[Sample-CP] g=9 c=1795 u=-1.0000000000 subseq=10 +[Sample-CP] g=10 c=651 u=-1.0000000000 subseq=11 +[Sample-CP] g=11 c=1572 u=-1.0000000000 subseq=12 +[Sample-CP] g=12 c=1160 u=-1.0000000000 subseq=13 +[Sample-CP] g=13 c=1079 u=-1.0000000000 subseq=14 +[Sample-CP] g=14 c=780 u=-1.0000000000 subseq=15 +[Debug] codes-step0: [16] first4: 1995.000000 1159.000000 887.000000 1853.000000 +[Debug] next-emb-step0: [2048] first4: -0.011231 -0.048261 -0.014040 0.004942 +[Debug] talker-hidden-step1: [2048] first4: -1.172883 -4.615955 1.940985 -1.469731 +[Sample] step=1 c0=1028 u=-1.0000000000 subseq=16 +[Sample-CP] g=0 c=1763 u=-1.0000000000 subseq=17 +[Sample-CP] g=1 c=1203 u=-1.0000000000 subseq=18 +[Sample-CP] g=2 c=1114 u=-1.0000000000 subseq=19 +[Sample-CP] g=3 c=1041 u=-1.0000000000 subseq=20 +[Sample-CP] g=4 c=1461 u=-1.0000000000 subseq=21 +[Sample-CP] g=5 c=267 u=-1.0000000000 subseq=22 +[Sample-CP] g=6 c=1595 u=-1.0000000000 subseq=23 +[Sample-CP] g=7 c=1445 u=-1.0000000000 subseq=24 +[Sample-CP] g=8 c=87 u=-1.0000000000 subseq=25 +[Sample-CP] g=9 c=1146 u=-1.0000000000 subseq=26 +[Sample-CP] g=10 c=478 u=-1.0000000000 subseq=27 +[Sample-CP] g=11 c=474 u=-1.0000000000 subseq=28 +[Sample-CP] g=12 c=1654 u=-1.0000000000 subseq=29 +[Sample-CP] g=13 c=14 u=-1.0000000000 subseq=30 +[Sample-CP] g=14 c=777 u=-1.0000000000 subseq=31 +[Pipeline] Generated 8 frames +[Pipeline] Generated 16 frames +[Pipeline] Generated 24 frames +[Pipeline] Generated 32 frames +[Pipeline] Generated 40 frames +[Pipeline] Generated 48 frames +[Pipeline] Generated 56 frames +[Pipeline] Generated 64 frames +[Pipeline] Generation done : 64 frames +[Debug] codes-full: [64, 16] first4: 1995.000000 1159.000000 887.000000 1853.000000 +[Debug] output-audio: [122880] first4: -0.000002 -0.000010 -0.000003 -0.000009 +[WAV] Wrote cpp/base/base-cpp.wav: 122880 samples, 24000 Hz, mono S16 +[Pipeline] Wrote 122880 samples (5.12 s) -> cpp/base/base-cpp.wav +[Input] Prompt: 100 chars: qwentts.cpp is a minimal C++17 and GGML port of Qwen3-TTS fo... +[Input] Lang: english Seed: 42 MaxNewTokens: 64 +[Input] Mode: greedy +[Python] Device: cuda +[Python] InputIds shape: (1, 38) +[Python] Codes shape: (63, 16) (T_frames, num_code_groups) +[Python] Audio: 120960 samples 24000 Hz 5.04s -> python/base/base-python.wav +[Quant] Q8_0 -> ../models/qwen-talker-1.7b-base-Q8_0.gguf + ../models/qwen-tokenizer-12hz-Q8_0.gguf +[GGML] Cmd: ../build/qwen-tts --model ../models/qwen-talker-1.7b-base-Q8_0.gguf --codec ../models/qwen-tokenizer-12hz-Q8_0.gguf --seed 42 --text qwentts.cpp is a minimal C++17 and GGML port of Qwen3-TTS for zero shot multilingual text to speech. --lang english --max-new 64 --dump cpp/base -o cpp/base/base-cpp.wav --greedy +[GGML] Audio: 122880 samples 24000 Hz 5.12s -> cpp/base/base-cpp.wav +[Cossim] PromptIDs exact: 100.00% (38 values) +[Cossim] Embed cos: 0.999987 max: 2.2577e-03 mean: 1.8282e-04 +[Cossim] TrailingText cos: 0.999999 max: 2.1233e-04 mean: 4.3863e-05 +[Cossim] TTSPadEmbed cos: 0.999999 max: 2.1233e-04 mean: 4.3863e-05 +[Cossim] L0 cos: 0.999991 max: 9.1096e-02 mean: 6.4066e-04 +[Cossim] L7 cos: 0.999986 max: 2.1562e+01 mean: 4.2083e-02 +[Cossim] L14 cos: 0.999986 max: 2.1610e+01 mean: 4.8769e-02 +[Cossim] L21 cos: 0.999985 max: 2.1766e+01 mean: 7.8347e-02 +[Cossim] L27 cos: 0.999957 max: 5.4678e+01 mean: 3.4737e-01 +[Cossim] Final cos: 0.999642 max: 4.1274e+00 mean: 2.2081e-02 +[Cossim] Logits cos: 0.999946 max: 2.0047e-01 mean: 3.0143e-02 +[Cossim] NextEmbStep0 cos: 0.426517 max: 5.3731e-01 mean: 5.7581e-02 +[Cossim] TalkerHiddenStep1 cos: 0.292946 max: 2.1366e+01 mean: 2.2204e+00 +[Cossim] CodesFull exact: 0.20% (1008 values) +[Cossim] Audio cos: 0.077502 +[Cossim] WAV stft_cos: 0.115858 samples: 120960 diff --git a/tests/clone-CUDA0-BF16.log b/tests/clone-CUDA0-BF16.log new file mode 100644 index 0000000..1a0253d --- /dev/null +++ b/tests/clone-CUDA0-BF16.log @@ -0,0 +1,36 @@ +ggml_cuda_init: found 1 CUDA devices (Total VRAM: 97247 MiB): + Device 0: NVIDIA RTX PRO 6000 Blackwell Workstation Edition, compute capability 12.0, VMM: yes, VRAM: 97247 MiB +load_backend: loaded CUDA backend from /mnt/workspace/qwentts.cpp/build/libggml-cuda.so +ggml_vulkan: Found 1 Vulkan devices: +ggml_vulkan: 0 = NVIDIA RTX PRO 6000 Blackwell Workstation Edition (NVIDIA) | uma: 0 | fp16: 1 | bf16: 0 | warp size: 32 | shared memory: 49152 | int dot: 1 | matrix cores: NV_coopmat2 +load_backend: loaded Vulkan backend from /mnt/workspace/qwentts.cpp/build/libggml-vulkan.so +load_backend: loaded CPU backend from /mnt/workspace/qwentts.cpp/build/libggml-cpu-zen4.so +[Load] Talker backend: CUDA0 (CPU threads: 16) +[GGUF] ../models/qwen-talker-1.7b-base-BF16.gguf: 480 tensors, data at offset 5954496 +[WeightCtx] Loaded 316 tensors, 3322.0 MB into backend +[Talker] Loaded: 28 layers, hidden 2048, heads 16/8, head_dim 128, FFN 6144, RoPE theta 1000000, mrope sections [24,20,20] interleaved=0 +[WeightCtx] Loaded 88 tensors, 334.1 MB into backend +[CodePredictor] Loaded: 5 layers, hidden 1024, heads 16/8, head_dim 128, FFN 3072, RoPE theta 1000000, 15 acoustic codebooks (vocab 2048 each), mtp_proj linear +[WeightCtx] Loaded 76 tensors, 34.9 MB into backend +[SpeakerEncoder] Loaded: enc_dim=2048 sr=24000 mel_dim=128 hidden=512 mfa=1536 asp_attn=128 se=128 scale=8 +[GGUF] ../models/qwen-tokenizer-12hz-BF16.gguf: 398 tensors, data at offset 29760 +[WeightCtx] Loaded 18 tensors, 33.0 MB into backend +[Quantizer] Loaded: 16 codebooks (1 semantic + 15 acoustic), 2048 entries x 256 dim, hidden 512 +[WeightCtx] Loaded 93 tensors, 58.1 MB into backend +[Transformer] Loaded: 8 layers, hidden 512, heads 16/16, head_dim 64, FFN 1024, RoPE theta 10000, sliding window 72 +[CausalTransConv] FATAL: 'tok_dec.upsample.0.conv.weight' expected F32 or F16, got type 30 +[Input] Prompt: 100 chars: qwentts.cpp is a minimal C++17 and GGML port of Qwen3-TTS fo... +[Input] RefAudio: ../examples/freeman.wav +[Input] RefText: 213 chars: If you go into different cultures, they have different conce... +[Input] Lang: english Seed: 42 MaxNewTokens: 64 +[Input] Mode: greedy ICL +[Python] Device: cuda +[Python] RefWav: 414337 samples 24000 Hz 17.26s +[Python] SpeakerEmb shape: (2048,) dtype: torch.float32 +[Python] RefCodes shape: (16, 215) (K, T_codec) +[Python] InputIds shape: (1, 38) +[Python] RefIds shape: (1, 53) +[Python] Codes shape: (63, 16) (T_frames, num_code_groups) +[Python] Audio: 120960 samples 24000 Hz 5.04s -> python/clone/clone-python.wav +[Quant] BF16 -> ../models/qwen-talker-1.7b-base-BF16.gguf + ../models/qwen-tokenizer-12hz-BF16.gguf +[GGML] Cmd: ../build/qwen-tts --model ../models/qwen-talker-1.7b-base-BF16.gguf --codec ../models/qwen-tokenizer-12hz-BF16.gguf --seed --text [...] --ref-audio ../examples/freeman.wav --ref-text [...] --lang english --max-new 64 --dump cpp/clone -o cpp/clone/clone-cpp.wav --greedy diff --git a/tests/clone-CUDA0-F32.log b/tests/clone-CUDA0-F32.log new file mode 100644 index 0000000..738a764 --- /dev/null +++ b/tests/clone-CUDA0-F32.log @@ -0,0 +1,176 @@ +ggml_cuda_init: found 1 CUDA devices (Total VRAM: 97247 MiB): + Device 0: NVIDIA RTX PRO 6000 Blackwell Workstation Edition, compute capability 12.0, VMM: yes, VRAM: 97247 MiB +load_backend: loaded CUDA backend from /mnt/workspace/qwentts.cpp/build/libggml-cuda.so +ggml_vulkan: Found 1 Vulkan devices: +ggml_vulkan: 0 = NVIDIA RTX PRO 6000 Blackwell Workstation Edition (NVIDIA) | uma: 0 | fp16: 1 | bf16: 0 | warp size: 32 | shared memory: 49152 | int dot: 1 | matrix cores: NV_coopmat2 +load_backend: loaded Vulkan backend from /mnt/workspace/qwentts.cpp/build/libggml-vulkan.so +load_backend: loaded CPU backend from /mnt/workspace/qwentts.cpp/build/libggml-cpu-zen4.so +[Load] Talker backend: CUDA0 (CPU threads: 16) +[GGUF] ../models/qwen-talker-1.7b-base-F32.gguf: 480 tensors, data at offset 5954432 +[WeightCtx] Loaded 316 tensors, 6643.5 MB into backend +[Talker] Loaded: 28 layers, hidden 2048, heads 16/8, head_dim 128, FFN 6144, RoPE theta 1000000, mrope sections [24,20,20] interleaved=0 +[WeightCtx] Loaded 88 tensors, 668.1 MB into backend +[CodePredictor] Loaded: 5 layers, hidden 1024, heads 16/8, head_dim 128, FFN 3072, RoPE theta 1000000, 15 acoustic codebooks (vocab 2048 each), mtp_proj linear +[WeightCtx] Loaded 76 tensors, 45.8 MB into backend +[SpeakerEncoder] Loaded: enc_dim=2048 sr=24000 mel_dim=128 hidden=512 mfa=1536 asp_attn=128 se=128 scale=8 +[GGUF] ../models/qwen-tokenizer-12hz-F32.gguf: 398 tensors, data at offset 29664 +[WeightCtx] Loaded 18 tensors, 33.0 MB into backend +[Quantizer] Loaded: 16 codebooks (1 semantic + 15 acoustic), 2048 entries x 256 dim, hidden 512 +[WeightCtx] Loaded 93 tensors, 116.1 MB into backend +[Transformer] Loaded: 8 layers, hidden 512, heads 16/16, head_dim 64, FFN 1024, RoPE theta 10000, sliding window 72 +[WeightCtx] Loaded 22 tensors, 80.1 MB into backend +[Upsample] Loaded: 2 blocks (2x ratio per block), channels 1024, dwconv kernel 7 +[WeightCtx] Loaded 118 tensors, 199.8 MB into backend +[DAC] Loaded: 4 blocks (strides 8/5/4/3), 24 kHz mono out, weights 199.8 MB +[WeightCtx] Loaded 2 tensors, 6.0 MB into backend +[WeightCtx] Loaded 28 tensors, 48.2 MB into backend +[SEANet] Loaded: 4 stages (ratios 4/5/6/8), 64 -> 512 channels, weights 48.2 MB +[WeightCtx] Loaded 96 tensors, 96.1 MB into backend +[EncTransformer] Loaded: 8 layers, hidden 512, heads 8/8, head_dim 64, FFN 2048, RoPE theta 10000 +[WeightCtx] Loaded 1 tensors, 4.0 MB into backend +[EncDownsample] Loaded: k=4 stride=2, 512 -> 512 channels, weights 4.0 MB +[WeightCtx] Loaded 20 tensors, 34.0 MB into backend +[EncQuantizer] Loaded: 16 codebooks (1 semantic + 15 acoustic), 2048 entries x 256 dim, hidden 512, weights 34.0 MB +[Pipeline] Ready: hop 1920 samples @ 24000 Hz mono, 16 codebooks @ 12.5 Hz +[KVCache] Allocated: 28 layers, 8 KV heads, head_dim 128, max_seq_len 4096 -> 896 MB +[KVCache] Allocated: 5 layers, 8 KV heads, head_dim 128, max_seq_len 16 -> 0 MB +[Pipeline] Loaded: arch=1b7 variant=base tokenizer=qwen3_tts_tokenizer_12hz codebooks=16 speaker_encoder=loaded speakers=0 +[BPE] Loaded from GGUF: 151676 vocab, 151291 merges, eos_id=151643 +[BPE] Registered 5 arch special tokens (total specials=6) +[WAV] Read buffer: 380672 samples, 22050 Hz, 1 ch, 16 bit +[Audio-Resample] 22050 Hz -> 24000 Hz, 380672 samples... +[Audio-Resample] Done: 380672 -> 414337 samples +[Debug] mel-spk: [1618, 128] first4: -6.330339 -6.170074 -6.011195 -6.243161 +[Debug] mel-hann: [1024] first4: 0.000000 0.000009 0.000038 0.000085 +[Debug] mel-basis: [128, 513] first4: 0.000000 0.033550 0.008569 0.000000 +[Debug] mel-mag: [1618, 513] first4: 0.047604 0.042322 0.042187 0.066630 +[Debug] spk-frontend: [1618, 512] first4: 0.000000 0.097904 0.854992 0.000000 +[Debug] spk-block3: [1618, 512] first4: 1.955988 0.097904 1.233304 0.246811 +[Debug] spk-mfa: [1618, 1536] first4: 0.000000 0.922734 0.614915 0.000000 +[Debug] spk-asp: [1, 3072] first4: 0.067723 0.119136 0.240880 0.344137 +[SpkExtract] Extracted 2048-dim embedding from ../examples/freeman.wav (414337 samples, padded 415105) +[WAV] Read buffer: 380672 samples, 22050 Hz, 1 ch, 16 bit +[Audio-Resample] 22050 Hz -> 24000 Hz, 380672 samples... +[Audio-Resample] Done: 380672 -> 414337 samples +[Debug] audio-input: [412800] first4: -0.000546 -0.001162 -0.000871 0.000340 +[Debug] seanet-out: [430, 512] first4: -0.134336 13.731120 -0.351051 3.013485 +[Debug] enc-transformer-out: [430, 512] first4: 0.525800 3.116711 -0.187038 0.631811 +[Debug] codec-pre-fsq: [215, 512] first4: -3.808594 -7.054688 -0.855469 2.875000 +[Debug] seanet-init: [412800, 64] first4: -0.015825 -0.054180 -0.117431 0.038554 +[Debug] seanet-resnet0: [412800, 64] first4: 0.057661 -0.220647 -0.137337 -0.251412 +[Debug] seanet-stage0: [103200, 128] first4: 0.233175 -0.324375 0.246537 0.204760 +[Debug] seanet-stage1: [20640, 256] first4: -0.364289 0.315103 -0.575002 0.572537 +[Debug] seanet-stage3: [430, 1024] first4: -2.285276 -4.960315 -6.976110 -8.949767 +[Pipeline] ICL ref_codes: 215 frames at 12.5 Hz (412800 audio samples) +[Prompt] Built: 38 ids, N_text=30, N_instruct=0, T_ctx=225, hidden=2048, lang=english (id=2050), speaker=none (id=-1) ref_spk_emb=yes icl=yes +[Debug] prompt-ids: [38] first4: 151644.000000 77091.000000 198.000000 80.000000 +[Debug] talker-input-embed: [225, 2048] first4: 0.022157 -0.009049 0.008161 -0.020214 +[Debug] trailing-text-hidden: [1, 2048] first4: -0.005331 0.008751 -0.004225 0.001141 +[Debug] tts-pad-embed: [2048] first4: -0.005331 0.008751 -0.004225 0.001141 +[Debug] speaker-emb: [2048] first4: 0.098317 -0.023761 -0.011860 0.006760 +[Debug] ref-codes: [16, 215] first4: 1221.000000 2042.000000 509.000000 1522.000000 +[Debug] talker-hidden-prefill-l0: [225, 2048] first4: -0.460968 -0.069929 0.016046 -0.039092 +[Debug] talker-hidden-prefill-l7: [225, 2048] first4: -1.525316 -0.007488 0.340215 1.777316 +[Debug] talker-hidden-prefill-l14: [225, 2048] first4: -1.296772 0.189306 0.441261 1.743796 +[Debug] talker-hidden-prefill-l21: [225, 2048] first4: -0.771752 0.171251 0.791418 1.111587 +[Debug] talker-hidden-prefill-l27: [225, 2048] first4: 7.133099 -34.474205 -7.108918 28.674948 +[Debug] talker-hidden-prefill-final: [225, 2048] first4: 0.242893 -1.225840 -0.224932 0.890015 +[Debug] talker-logits-prefill: [3072] first4: 1.172282 -7.792083 -6.821526 -10.286682 +[Sample] step=0 c0=27 u=-1.0000000000 subseq=0 +[Sample-CP] g=0 c=1408 u=-1.0000000000 subseq=1 +[Sample-CP] g=1 c=1824 u=-1.0000000000 subseq=2 +[Sample-CP] g=2 c=400 u=-1.0000000000 subseq=3 +[Sample-CP] g=3 c=240 u=-1.0000000000 subseq=4 +[Sample-CP] g=4 c=2010 u=-1.0000000000 subseq=5 +[Sample-CP] g=5 c=196 u=-1.0000000000 subseq=6 +[Sample-CP] g=6 c=1984 u=-1.0000000000 subseq=7 +[Sample-CP] g=7 c=816 u=-1.0000000000 subseq=8 +[Sample-CP] g=8 c=684 u=-1.0000000000 subseq=9 +[Sample-CP] g=9 c=1702 u=-1.0000000000 subseq=10 +[Sample-CP] g=10 c=273 u=-1.0000000000 subseq=11 +[Sample-CP] g=11 c=798 u=-1.0000000000 subseq=12 +[Sample-CP] g=12 c=593 u=-1.0000000000 subseq=13 +[Sample-CP] g=13 c=85 u=-1.0000000000 subseq=14 +[Sample-CP] g=14 c=541 u=-1.0000000000 subseq=15 +[Debug] codes-step0: [16] first4: 27.000000 1408.000000 1824.000000 400.000000 +[Debug] next-emb-step0: [2048] first4: 0.003672 0.000908 0.039506 0.094594 +[Debug] talker-hidden-step1: [2048] first4: 0.753700 2.407002 -0.055373 0.158864 +[Sample] step=1 c0=1902 u=-1.0000000000 subseq=16 +[Sample-CP] g=0 c=1924 u=-1.0000000000 subseq=17 +[Sample-CP] g=1 c=2025 u=-1.0000000000 subseq=18 +[Sample-CP] g=2 c=324 u=-1.0000000000 subseq=19 +[Sample-CP] g=3 c=1501 u=-1.0000000000 subseq=20 +[Sample-CP] g=4 c=1252 u=-1.0000000000 subseq=21 +[Sample-CP] g=5 c=1831 u=-1.0000000000 subseq=22 +[Sample-CP] g=6 c=1544 u=-1.0000000000 subseq=23 +[Sample-CP] g=7 c=1058 u=-1.0000000000 subseq=24 +[Sample-CP] g=8 c=1673 u=-1.0000000000 subseq=25 +[Sample-CP] g=9 c=541 u=-1.0000000000 subseq=26 +[Sample-CP] g=10 c=1162 u=-1.0000000000 subseq=27 +[Sample-CP] g=11 c=729 u=-1.0000000000 subseq=28 +[Sample-CP] g=12 c=781 u=-1.0000000000 subseq=29 +[Sample-CP] g=13 c=85 u=-1.0000000000 subseq=30 +[Sample-CP] g=14 c=1435 u=-1.0000000000 subseq=31 +[Pipeline] Generated 8 frames +[Pipeline] Generated 16 frames +[Pipeline] Generated 24 frames +[Pipeline] Generated 32 frames +[Pipeline] Generated 40 frames +[Pipeline] Generated 48 frames +[Pipeline] Generated 56 frames +[Pipeline] Generated 64 frames +[Pipeline] Generation done : 64 frames +[Debug] codes-full: [64, 16] first4: 27.000000 1408.000000 1824.000000 400.000000 +[Debug] output-audio: [122880] first4: -0.001264 -0.002193 -0.002047 -0.000957 +[WAV] Wrote cpp/clone/clone-cpp.wav: 122880 samples, 24000 Hz, mono S16 +[Pipeline] Wrote 122880 samples (5.12 s) -> cpp/clone/clone-cpp.wav +[Input] Prompt: 100 chars: qwentts.cpp is a minimal C++17 and GGML port of Qwen3-TTS fo... +[Input] RefAudio: ../examples/freeman.wav +[Input] RefText: 213 chars: If you go into different cultures, they have different conce... +[Input] Lang: english Seed: 42 MaxNewTokens: 64 +[Input] Mode: greedy ICL +[Python] Device: cuda +[Python] RefWav: 414337 samples 24000 Hz 17.26s +[Python] SpeakerEmb shape: (2048,) dtype: torch.float32 +[Python] RefCodes shape: (16, 215) (K, T_codec) +[Python] InputIds shape: (1, 38) +[Python] RefIds shape: (1, 53) +[Python] Codes shape: (63, 16) (T_frames, num_code_groups) +[Python] Audio: 120960 samples 24000 Hz 5.04s -> python/clone/clone-python.wav +[Quant] F32 -> ../models/qwen-talker-1.7b-base-F32.gguf + ../models/qwen-tokenizer-12hz-F32.gguf +[GGML] Cmd: ../build/qwen-tts --model ../models/qwen-talker-1.7b-base-F32.gguf --codec ../models/qwen-tokenizer-12hz-F32.gguf --seed --text [...] --ref-audio ../examples/freeman.wav --ref-text [...] --lang english --max-new 64 --dump cpp/clone -o cpp/clone/clone-cpp.wav --greedy +[GGML] Audio: 122880 samples 24000 Hz 5.12s -> cpp/clone/clone-cpp.wav +[Cossim] PromptIDs exact: 100.00% (38 values) +[Cossim] RefCodes exact: 82.41% (3440 values) +[Cossim] Embed cos: 0.972420 max: 1.7531e-01 mean: 8.3100e-03 +[Cossim] TrailingText cos: 1.000000 max: 1.0431e-06 mean: 9.3616e-09 +[Cossim] TTSPadEmbed cos: 1.000000 max: 1.0431e-06 mean: 9.3616e-09 +[Cossim] L0 cos: 0.986912 max: 6.6438e-01 mean: 1.1101e-02 +[Cossim] L7 cos: 0.999992 max: 1.2571e+00 mean: 2.7507e-02 +[Cossim] L14 cos: 0.999973 max: 2.1778e+00 mean: 5.9922e-02 +[Cossim] L21 cos: 0.999719 max: 8.4742e+00 mean: 2.2263e-01 +[Cossim] L27 cos: 0.998970 max: 2.4310e+01 mean: 5.1154e-01 +[Cossim] Final cos: 0.994696 max: 7.3989e+00 mean: 1.6647e-01 +[Cossim] Logits cos: 0.999745 max: 5.7267e-01 mean: 8.8663e-02 +[Cossim] NextEmbStep0 cos: 0.829216 max: 1.2523e-01 mean: 2.9129e-02 +[Cossim] TalkerHiddenStep1 cos: 0.993850 max: 1.4298e+00 mean: 2.4206e-01 +[Cossim] MelHann cos: 1.000000 max: 1.7881e-07 mean: 3.2043e-08 +[Cossim] MelBasis cos: 1.000000 max: 1.7881e-07 mean: 3.9379e-10 +[Cossim] MelMag cos: 1.000000 max: 3.1307e-05 mean: 5.6396e-07 +[Cossim] MelSpk cos: 1.000000 max: 2.5492e-03 mean: 9.3754e-06 +[Cossim] SeanetInit cos: 1.000000 max: 4.1014e-04 mean: 3.4146e-06 +[Cossim] SeanetResnet0 cos: 0.999987 max: 1.9469e-03 mean: 9.4434e-05 +[Cossim] SeanetStage0 cos: 0.999985 max: 4.2238e-02 mean: 6.5151e-04 +[Cossim] SeanetStage1 cos: 0.999865 max: 7.6868e-01 mean: 4.9571e-03 +[Cossim] SeanetStage3 cos: 0.999995 max: 1.6565e+00 mean: 3.9086e-02 +[Cossim] SeanetOut cos: 0.999963 max: 4.1938e-01 mean: 1.7123e-02 +[Cossim] EncTransformer cos: 0.999975 max: 3.4209e-01 mean: 7.3239e-03 +[Cossim] CodecPreFSQ cos: 0.999972 max: 4.4734e-01 mean: 1.8065e-02 +[Cossim] SpkFrontend cos: 1.000000 max: 2.1511e-04 mean: 1.4495e-06 +[Cossim] SpkBlock3 cos: 1.000000 max: 3.2926e-04 mean: 4.3974e-06 +[Cossim] SpkMFA cos: 1.000000 max: 3.8069e-04 mean: 1.3195e-06 +[Cossim] SpkASP cos: 1.000000 max: 7.9870e-06 mean: 2.2269e-07 +[Cossim] SpeakerEmb cos: 1.000000 max: 1.4305e-05 mean: 2.5463e-07 +[Cossim] CodesFull exact: 3.27% (1008 values) +[Cossim] Audio cos: 0.053928 +[Cossim] WAV stft_cos: 0.375522 samples: 120960 diff --git a/tests/clone-CUDA0-Q4_K_M.log b/tests/clone-CUDA0-Q4_K_M.log new file mode 100644 index 0000000..e345bc3 --- /dev/null +++ b/tests/clone-CUDA0-Q4_K_M.log @@ -0,0 +1,176 @@ +ggml_cuda_init: found 1 CUDA devices (Total VRAM: 97247 MiB): + Device 0: NVIDIA RTX PRO 6000 Blackwell Workstation Edition, compute capability 12.0, VMM: yes, VRAM: 97247 MiB +load_backend: loaded CUDA backend from /mnt/workspace/qwentts.cpp/build/libggml-cuda.so +ggml_vulkan: Found 1 Vulkan devices: +ggml_vulkan: 0 = NVIDIA RTX PRO 6000 Blackwell Workstation Edition (NVIDIA) | uma: 0 | fp16: 1 | bf16: 0 | warp size: 32 | shared memory: 49152 | int dot: 1 | matrix cores: NV_coopmat2 +load_backend: loaded Vulkan backend from /mnt/workspace/qwentts.cpp/build/libggml-vulkan.so +load_backend: loaded CPU backend from /mnt/workspace/qwentts.cpp/build/libggml-cpu-zen4.so +[Load] Talker backend: CUDA0 (CPU threads: 16) +[GGUF] ../models/qwen-talker-1.7b-base-Q4_K_M.gguf: 480 tensors, data at offset 5954496 +[WeightCtx] Loaded 316 tensors, 1012.7 MB into backend +[Talker] Loaded: 28 layers, hidden 2048, heads 16/8, head_dim 128, FFN 6144, RoPE theta 1000000, mrope sections [24,20,20] interleaved=0 +[WeightCtx] Loaded 88 tensors, 109.5 MB into backend +[CodePredictor] Loaded: 5 layers, hidden 1024, heads 16/8, head_dim 128, FFN 3072, RoPE theta 1000000, 15 acoustic codebooks (vocab 2048 each), mtp_proj linear +[WeightCtx] Loaded 76 tensors, 34.9 MB into backend +[SpeakerEncoder] Loaded: enc_dim=2048 sr=24000 mel_dim=128 hidden=512 mfa=1536 asp_attn=128 se=128 scale=8 +[GGUF] ../models/qwen-tokenizer-12hz-Q4_K_M.gguf: 398 tensors, data at offset 29760 +[WeightCtx] Loaded 18 tensors, 33.0 MB into backend +[Quantizer] Loaded: 16 codebooks (1 semantic + 15 acoustic), 2048 entries x 256 dim, hidden 512 +[WeightCtx] Loaded 93 tensors, 16.4 MB into backend +[Transformer] Loaded: 8 layers, hidden 512, heads 16/16, head_dim 64, FFN 1024, RoPE theta 10000, sliding window 72 +[WeightCtx] Loaded 22 tensors, 25.1 MB into backend +[Upsample] Loaded: 2 blocks (2x ratio per block), channels 1024, dwconv kernel 7 +[WeightCtx] Loaded 118 tensors, 142.9 MB into backend +[DAC] Loaded: 4 blocks (strides 8/5/4/3), 24 kHz mono out, weights 142.9 MB +[WeightCtx] Loaded 2 tensors, 3.0 MB into backend +[WeightCtx] Loaded 28 tensors, 24.1 MB into backend +[SEANet] Loaded: 4 stages (ratios 4/5/6/8), 64 -> 512 channels, weights 24.1 MB +[WeightCtx] Loaded 96 tensors, 13.6 MB into backend +[EncTransformer] Loaded: 8 layers, hidden 512, heads 8/8, head_dim 64, FFN 2048, RoPE theta 10000 +[WeightCtx] Loaded 1 tensors, 2.0 MB into backend +[EncDownsample] Loaded: k=4 stride=2, 512 -> 512 channels, weights 2.0 MB +[WeightCtx] Loaded 20 tensors, 34.0 MB into backend +[EncQuantizer] Loaded: 16 codebooks (1 semantic + 15 acoustic), 2048 entries x 256 dim, hidden 512, weights 34.0 MB +[Pipeline] Ready: hop 1920 samples @ 24000 Hz mono, 16 codebooks @ 12.5 Hz +[KVCache] Allocated: 28 layers, 8 KV heads, head_dim 128, max_seq_len 4096 -> 896 MB +[KVCache] Allocated: 5 layers, 8 KV heads, head_dim 128, max_seq_len 16 -> 0 MB +[Pipeline] Loaded: arch=1b7 variant=base tokenizer=qwen3_tts_tokenizer_12hz codebooks=16 speaker_encoder=loaded speakers=0 +[BPE] Loaded from GGUF: 151676 vocab, 151291 merges, eos_id=151643 +[BPE] Registered 5 arch special tokens (total specials=6) +[WAV] Read buffer: 380672 samples, 22050 Hz, 1 ch, 16 bit +[Audio-Resample] 22050 Hz -> 24000 Hz, 380672 samples... +[Audio-Resample] Done: 380672 -> 414337 samples +[Debug] mel-spk: [1618, 128] first4: -6.330339 -6.170074 -6.011195 -6.243161 +[Debug] mel-hann: [1024] first4: 0.000000 0.000009 0.000038 0.000085 +[Debug] mel-basis: [128, 513] first4: 0.000000 0.033550 0.008569 0.000000 +[Debug] mel-mag: [1618, 513] first4: 0.047604 0.042322 0.042187 0.066630 +[Debug] spk-frontend: [1618, 512] first4: 0.000000 0.097904 0.854992 0.000000 +[Debug] spk-block3: [1618, 512] first4: 1.955988 0.097904 1.233304 0.246810 +[Debug] spk-mfa: [1618, 1536] first4: 0.000000 0.922734 0.614915 0.000000 +[Debug] spk-asp: [1, 3072] first4: 0.067723 0.119136 0.240880 0.344137 +[SpkExtract] Extracted 2048-dim embedding from ../examples/freeman.wav (414337 samples, padded 415105) +[WAV] Read buffer: 380672 samples, 22050 Hz, 1 ch, 16 bit +[Audio-Resample] 22050 Hz -> 24000 Hz, 380672 samples... +[Audio-Resample] Done: 380672 -> 414337 samples +[Debug] audio-input: [412800] first4: -0.000546 -0.001162 -0.000871 0.000340 +[Debug] seanet-out: [430, 512] first4: -0.134336 13.731120 -0.351051 3.013485 +[Debug] enc-transformer-out: [430, 512] first4: 1.140990 3.713432 0.131578 0.616251 +[Debug] codec-pre-fsq: [215, 512] first4: -2.125000 -7.546875 -2.390625 2.093750 +[Debug] seanet-init: [412800, 64] first4: -0.015825 -0.054180 -0.117431 0.038554 +[Debug] seanet-resnet0: [412800, 64] first4: 0.057661 -0.220647 -0.137337 -0.251412 +[Debug] seanet-stage0: [103200, 128] first4: 0.233175 -0.324375 0.246537 0.204760 +[Debug] seanet-stage1: [20640, 256] first4: -0.364289 0.315103 -0.575002 0.572537 +[Debug] seanet-stage3: [430, 1024] first4: -2.285276 -4.960315 -6.976110 -8.949767 +[Pipeline] ICL ref_codes: 215 frames at 12.5 Hz (412800 audio samples) +[Prompt] Built: 38 ids, N_text=30, N_instruct=0, T_ctx=225, hidden=2048, lang=english (id=2050), speaker=none (id=-1) ref_spk_emb=yes icl=yes +[Debug] prompt-ids: [38] first4: 151644.000000 77091.000000 198.000000 80.000000 +[Debug] talker-input-embed: [225, 2048] first4: 0.022105 -0.009079 0.008285 -0.019901 +[Debug] trailing-text-hidden: [1, 2048] first4: -0.005388 0.008927 -0.004415 0.000679 +[Debug] tts-pad-embed: [2048] first4: -0.005388 0.008927 -0.004415 0.000679 +[Debug] speaker-emb: [2048] first4: 0.098318 -0.023761 -0.011860 0.006760 +[Debug] ref-codes: [16, 215] first4: 1221.000000 2042.000000 696.000000 1522.000000 +[Debug] talker-hidden-prefill-l0: [225, 2048] first4: -0.447360 -0.062734 0.006191 0.016084 +[Debug] talker-hidden-prefill-l7: [225, 2048] first4: -8.839272 0.815075 0.612550 0.113270 +[Debug] talker-hidden-prefill-l14: [225, 2048] first4: -8.772307 1.161852 0.711070 0.177234 +[Debug] talker-hidden-prefill-l21: [225, 2048] first4: -8.581620 1.664241 1.294096 -0.437955 +[Debug] talker-hidden-prefill-l27: [225, 2048] first4: 4.385426 -32.019020 -6.841087 22.716158 +[Debug] talker-hidden-prefill-final: [225, 2048] first4: 0.148700 -1.133733 -0.215544 0.702090 +[Debug] talker-logits-prefill: [3072] first4: -0.447498 -5.802912 -7.130526 -10.586733 +[Sample] step=0 c0=27 u=-1.0000000000 subseq=0 +[Sample-CP] g=0 c=1534 u=-1.0000000000 subseq=1 +[Sample-CP] g=1 c=1233 u=-1.0000000000 subseq=2 +[Sample-CP] g=2 c=362 u=-1.0000000000 subseq=3 +[Sample-CP] g=3 c=442 u=-1.0000000000 subseq=4 +[Sample-CP] g=4 c=1221 u=-1.0000000000 subseq=5 +[Sample-CP] g=5 c=243 u=-1.0000000000 subseq=6 +[Sample-CP] g=6 c=470 u=-1.0000000000 subseq=7 +[Sample-CP] g=7 c=174 u=-1.0000000000 subseq=8 +[Sample-CP] g=8 c=153 u=-1.0000000000 subseq=9 +[Sample-CP] g=9 c=958 u=-1.0000000000 subseq=10 +[Sample-CP] g=10 c=1904 u=-1.0000000000 subseq=11 +[Sample-CP] g=11 c=127 u=-1.0000000000 subseq=12 +[Sample-CP] g=12 c=1682 u=-1.0000000000 subseq=13 +[Sample-CP] g=13 c=58 u=-1.0000000000 subseq=14 +[Sample-CP] g=14 c=816 u=-1.0000000000 subseq=15 +[Debug] codes-step0: [16] first4: 27.000000 1534.000000 1233.000000 362.000000 +[Debug] next-emb-step0: [2048] first4: 0.045909 0.017556 -0.023983 0.005290 +[Debug] talker-hidden-step1: [2048] first4: 0.116329 2.313672 0.636690 0.456164 +[Sample] step=1 c0=1902 u=-1.0000000000 subseq=16 +[Sample-CP] g=0 c=494 u=-1.0000000000 subseq=17 +[Sample-CP] g=1 c=933 u=-1.0000000000 subseq=18 +[Sample-CP] g=2 c=324 u=-1.0000000000 subseq=19 +[Sample-CP] g=3 c=2 u=-1.0000000000 subseq=20 +[Sample-CP] g=4 c=985 u=-1.0000000000 subseq=21 +[Sample-CP] g=5 c=849 u=-1.0000000000 subseq=22 +[Sample-CP] g=6 c=1345 u=-1.0000000000 subseq=23 +[Sample-CP] g=7 c=1300 u=-1.0000000000 subseq=24 +[Sample-CP] g=8 c=2030 u=-1.0000000000 subseq=25 +[Sample-CP] g=9 c=1702 u=-1.0000000000 subseq=26 +[Sample-CP] g=10 c=1162 u=-1.0000000000 subseq=27 +[Sample-CP] g=11 c=729 u=-1.0000000000 subseq=28 +[Sample-CP] g=12 c=344 u=-1.0000000000 subseq=29 +[Sample-CP] g=13 c=85 u=-1.0000000000 subseq=30 +[Sample-CP] g=14 c=496 u=-1.0000000000 subseq=31 +[Pipeline] Generated 8 frames +[Pipeline] Generated 16 frames +[Pipeline] Generated 24 frames +[Pipeline] Generated 32 frames +[Pipeline] Generated 40 frames +[Pipeline] Generated 48 frames +[Pipeline] Generated 56 frames +[Pipeline] Generated 64 frames +[Pipeline] Generation done : 64 frames +[Debug] codes-full: [64, 16] first4: 27.000000 1534.000000 1233.000000 362.000000 +[Debug] output-audio: [122880] first4: -0.001337 -0.002394 -0.002279 -0.001187 +[WAV] Wrote cpp/clone/clone-cpp.wav: 122880 samples, 24000 Hz, mono S16 +[Pipeline] Wrote 122880 samples (5.12 s) -> cpp/clone/clone-cpp.wav +[Input] Prompt: 100 chars: qwentts.cpp is a minimal C++17 and GGML port of Qwen3-TTS fo... +[Input] RefAudio: ../examples/freeman.wav +[Input] RefText: 213 chars: If you go into different cultures, they have different conce... +[Input] Lang: english Seed: 42 MaxNewTokens: 64 +[Input] Mode: greedy ICL +[Python] Device: cuda +[Python] RefWav: 414337 samples 24000 Hz 17.26s +[Python] SpeakerEmb shape: (2048,) dtype: torch.float32 +[Python] RefCodes shape: (16, 215) (K, T_codec) +[Python] InputIds shape: (1, 38) +[Python] RefIds shape: (1, 53) +[Python] Codes shape: (63, 16) (T_frames, num_code_groups) +[Python] Audio: 120960 samples 24000 Hz 5.04s -> python/clone/clone-python.wav +[Quant] Q4_K_M -> ../models/qwen-talker-1.7b-base-Q4_K_M.gguf + ../models/qwen-tokenizer-12hz-Q4_K_M.gguf +[GGML] Cmd: ../build/qwen-tts --model ../models/qwen-talker-1.7b-base-Q4_K_M.gguf --codec ../models/qwen-tokenizer-12hz-Q4_K_M.gguf --seed --text [...] --ref-audio ../examples/freeman.wav --ref-text [...] --lang english --max-new 64 --dump cpp/clone -o cpp/clone/clone-cpp.wav --greedy +[GGML] Audio: 122880 samples 24000 Hz 5.12s -> cpp/clone/clone-cpp.wav +[Cossim] PromptIDs exact: 100.00% (38 values) +[Cossim] RefCodes exact: 50.87% (3440 values) +[Cossim] Embed cos: 0.918419 max: 1.9968e-01 mean: 2.1849e-02 +[Cossim] TrailingText cos: 0.999969 max: 1.4858e-03 mean: 2.2947e-04 +[Cossim] TTSPadEmbed cos: 0.999969 max: 1.4858e-03 mean: 2.2947e-04 +[Cossim] L0 cos: 0.961553 max: 8.6603e-01 mean: 2.8456e-02 +[Cossim] L7 cos: 0.997438 max: 3.4831e+01 mean: 1.6350e-01 +[Cossim] L14 cos: 0.997362 max: 3.4932e+01 mean: 2.4923e-01 +[Cossim] L21 cos: 0.995759 max: 4.1386e+01 mean: 7.9421e-01 +[Cossim] L27 cos: 0.958854 max: 1.6261e+03 mean: 2.0433e+00 +[Cossim] Final cos: 0.951848 max: 3.2548e+01 mean: 5.7157e-01 +[Cossim] Logits cos: 0.990380 max: 3.5209e+00 mean: 5.1124e-01 +[Cossim] NextEmbStep0 cos: 0.796671 max: 1.4999e-01 mean: 3.2483e-02 +[Cossim] TalkerHiddenStep1 cos: 0.956649 max: 4.6231e+00 mean: 6.2956e-01 +[Cossim] MelHann cos: 1.000000 max: 1.7881e-07 mean: 3.2043e-08 +[Cossim] MelBasis cos: 1.000000 max: 1.7881e-07 mean: 3.9379e-10 +[Cossim] MelMag cos: 1.000000 max: 3.1307e-05 mean: 5.6396e-07 +[Cossim] MelSpk cos: 1.000000 max: 2.5492e-03 mean: 9.3754e-06 +[Cossim] SeanetInit cos: 1.000000 max: 4.1014e-04 mean: 3.4146e-06 +[Cossim] SeanetResnet0 cos: 0.999987 max: 1.9469e-03 mean: 9.4434e-05 +[Cossim] SeanetStage0 cos: 0.999985 max: 4.2238e-02 mean: 6.5151e-04 +[Cossim] SeanetStage1 cos: 0.999865 max: 7.6868e-01 mean: 4.9571e-03 +[Cossim] SeanetStage3 cos: 0.999995 max: 1.6565e+00 mean: 3.9086e-02 +[Cossim] SeanetOut cos: 0.999963 max: 4.1938e-01 mean: 1.7123e-02 +[Cossim] EncTransformer cos: 0.992191 max: 3.4039e+00 mean: 1.7239e-01 +[Cossim] CodecPreFSQ cos: 0.995970 max: 2.3254e+00 mean: 2.5051e-01 +[Cossim] SpkFrontend cos: 1.000000 max: 2.1511e-04 mean: 1.4566e-06 +[Cossim] SpkBlock3 cos: 1.000000 max: 3.2949e-04 mean: 4.4040e-06 +[Cossim] SpkMFA cos: 1.000000 max: 3.8069e-04 mean: 1.3207e-06 +[Cossim] SpkASP cos: 1.000000 max: 7.8678e-06 mean: 2.2438e-07 +[Cossim] SpeakerEmb cos: 1.000000 max: 1.4305e-05 mean: 2.5522e-07 +[Cossim] CodesFull exact: 1.09% (1008 values) +[Cossim] Audio cos: 0.000434 +[Cossim] WAV stft_cos: 0.129544 samples: 120960 diff --git a/tests/clone-CUDA0-Q8_0.log b/tests/clone-CUDA0-Q8_0.log new file mode 100644 index 0000000..3d37d32 --- /dev/null +++ b/tests/clone-CUDA0-Q8_0.log @@ -0,0 +1,176 @@ +ggml_cuda_init: found 1 CUDA devices (Total VRAM: 97247 MiB): + Device 0: NVIDIA RTX PRO 6000 Blackwell Workstation Edition, compute capability 12.0, VMM: yes, VRAM: 97247 MiB +load_backend: loaded CUDA backend from /mnt/workspace/qwentts.cpp/build/libggml-cuda.so +ggml_vulkan: Found 1 Vulkan devices: +ggml_vulkan: 0 = NVIDIA RTX PRO 6000 Blackwell Workstation Edition (NVIDIA) | uma: 0 | fp16: 1 | bf16: 0 | warp size: 32 | shared memory: 49152 | int dot: 1 | matrix cores: NV_coopmat2 +load_backend: loaded Vulkan backend from /mnt/workspace/qwentts.cpp/build/libggml-vulkan.so +load_backend: loaded CPU backend from /mnt/workspace/qwentts.cpp/build/libggml-cpu-zen4.so +[Load] Talker backend: CUDA0 (CPU threads: 16) +[GGUF] ../models/qwen-talker-1.7b-base-Q8_0.gguf: 480 tensors, data at offset 5954496 +[WeightCtx] Loaded 316 tensors, 1765.0 MB into backend +[Talker] Loaded: 28 layers, hidden 2048, heads 16/8, head_dim 128, FFN 6144, RoPE theta 1000000, mrope sections [24,20,20] interleaved=0 +[WeightCtx] Loaded 88 tensors, 177.5 MB into backend +[CodePredictor] Loaded: 5 layers, hidden 1024, heads 16/8, head_dim 128, FFN 3072, RoPE theta 1000000, 15 acoustic codebooks (vocab 2048 each), mtp_proj linear +[WeightCtx] Loaded 76 tensors, 34.9 MB into backend +[SpeakerEncoder] Loaded: enc_dim=2048 sr=24000 mel_dim=128 hidden=512 mfa=1536 asp_attn=128 se=128 scale=8 +[GGUF] ../models/qwen-tokenizer-12hz-Q8_0.gguf: 398 tensors, data at offset 29760 +[WeightCtx] Loaded 18 tensors, 33.0 MB into backend +[Quantizer] Loaded: 16 codebooks (1 semantic + 15 acoustic), 2048 entries x 256 dim, hidden 512 +[WeightCtx] Loaded 93 tensors, 30.9 MB into backend +[Transformer] Loaded: 8 layers, hidden 512, heads 16/16, head_dim 64, FFN 1024, RoPE theta 10000, sliding window 72 +[WeightCtx] Loaded 22 tensors, 33.1 MB into backend +[Upsample] Loaded: 2 blocks (2x ratio per block), channels 1024, dwconv kernel 7 +[WeightCtx] Loaded 118 tensors, 142.9 MB into backend +[DAC] Loaded: 4 blocks (strides 8/5/4/3), 24 kHz mono out, weights 142.9 MB +[WeightCtx] Loaded 2 tensors, 3.0 MB into backend +[WeightCtx] Loaded 28 tensors, 24.1 MB into backend +[SEANet] Loaded: 4 stages (ratios 4/5/6/8), 64 -> 512 channels, weights 24.1 MB +[WeightCtx] Loaded 96 tensors, 25.6 MB into backend +[EncTransformer] Loaded: 8 layers, hidden 512, heads 8/8, head_dim 64, FFN 2048, RoPE theta 10000 +[WeightCtx] Loaded 1 tensors, 2.0 MB into backend +[EncDownsample] Loaded: k=4 stride=2, 512 -> 512 channels, weights 2.0 MB +[WeightCtx] Loaded 20 tensors, 34.0 MB into backend +[EncQuantizer] Loaded: 16 codebooks (1 semantic + 15 acoustic), 2048 entries x 256 dim, hidden 512, weights 34.0 MB +[Pipeline] Ready: hop 1920 samples @ 24000 Hz mono, 16 codebooks @ 12.5 Hz +[KVCache] Allocated: 28 layers, 8 KV heads, head_dim 128, max_seq_len 4096 -> 896 MB +[KVCache] Allocated: 5 layers, 8 KV heads, head_dim 128, max_seq_len 16 -> 0 MB +[Pipeline] Loaded: arch=1b7 variant=base tokenizer=qwen3_tts_tokenizer_12hz codebooks=16 speaker_encoder=loaded speakers=0 +[BPE] Loaded from GGUF: 151676 vocab, 151291 merges, eos_id=151643 +[BPE] Registered 5 arch special tokens (total specials=6) +[WAV] Read buffer: 380672 samples, 22050 Hz, 1 ch, 16 bit +[Audio-Resample] 22050 Hz -> 24000 Hz, 380672 samples... +[Audio-Resample] Done: 380672 -> 414337 samples +[Debug] mel-spk: [1618, 128] first4: -6.330339 -6.170074 -6.011195 -6.243161 +[Debug] mel-hann: [1024] first4: 0.000000 0.000009 0.000038 0.000085 +[Debug] mel-basis: [128, 513] first4: 0.000000 0.033550 0.008569 0.000000 +[Debug] mel-mag: [1618, 513] first4: 0.047604 0.042322 0.042187 0.066630 +[Debug] spk-frontend: [1618, 512] first4: 0.000000 0.097904 0.854992 0.000000 +[Debug] spk-block3: [1618, 512] first4: 1.955988 0.097904 1.233304 0.246810 +[Debug] spk-mfa: [1618, 1536] first4: 0.000000 0.922734 0.614915 0.000000 +[Debug] spk-asp: [1, 3072] first4: 0.067723 0.119136 0.240880 0.344137 +[SpkExtract] Extracted 2048-dim embedding from ../examples/freeman.wav (414337 samples, padded 415105) +[WAV] Read buffer: 380672 samples, 22050 Hz, 1 ch, 16 bit +[Audio-Resample] 22050 Hz -> 24000 Hz, 380672 samples... +[Audio-Resample] Done: 380672 -> 414337 samples +[Debug] audio-input: [412800] first4: -0.000546 -0.001162 -0.000871 0.000340 +[Debug] seanet-out: [430, 512] first4: -0.134336 13.731120 -0.351051 3.013485 +[Debug] enc-transformer-out: [430, 512] first4: 0.628775 2.909739 -0.209228 0.726215 +[Debug] codec-pre-fsq: [215, 512] first4: -3.626953 -6.855469 -0.669922 2.767578 +[Debug] seanet-init: [412800, 64] first4: -0.015825 -0.054180 -0.117431 0.038554 +[Debug] seanet-resnet0: [412800, 64] first4: 0.057661 -0.220647 -0.137337 -0.251412 +[Debug] seanet-stage0: [103200, 128] first4: 0.233175 -0.324375 0.246537 0.204760 +[Debug] seanet-stage1: [20640, 256] first4: -0.364289 0.315103 -0.575002 0.572537 +[Debug] seanet-stage3: [430, 1024] first4: -2.285276 -4.960315 -6.976110 -8.949767 +[Pipeline] ICL ref_codes: 215 frames at 12.5 Hz (412800 audio samples) +[Prompt] Built: 38 ids, N_text=30, N_instruct=0, T_ctx=225, hidden=2048, lang=english (id=2050), speaker=none (id=-1) ref_spk_emb=yes icl=yes +[Debug] prompt-ids: [38] first4: 151644.000000 77091.000000 198.000000 80.000000 +[Debug] talker-input-embed: [225, 2048] first4: 0.021979 -0.009018 0.008292 -0.020170 +[Debug] trailing-text-hidden: [1, 2048] first4: -0.005270 0.008716 -0.004355 0.001036 +[Debug] tts-pad-embed: [2048] first4: -0.005270 0.008716 -0.004355 0.001036 +[Debug] speaker-emb: [2048] first4: 0.098318 -0.023761 -0.011860 0.006760 +[Debug] ref-codes: [16, 215] first4: 1221.000000 2042.000000 509.000000 1522.000000 +[Debug] talker-hidden-prefill-l0: [225, 2048] first4: -0.467419 -0.069494 0.014718 -0.037177 +[Debug] talker-hidden-prefill-l7: [225, 2048] first4: -2.191055 0.153858 0.210238 1.590774 +[Debug] talker-hidden-prefill-l14: [225, 2048] first4: -1.963038 0.342889 0.321313 1.565405 +[Debug] talker-hidden-prefill-l21: [225, 2048] first4: -1.446324 0.303191 0.670301 0.972597 +[Debug] talker-hidden-prefill-l27: [225, 2048] first4: 6.668487 -34.319931 -7.307170 28.604122 +[Debug] talker-hidden-prefill-final: [225, 2048] first4: 0.226760 -1.218680 -0.230887 0.886599 +[Debug] talker-logits-prefill: [3072] first4: 1.578662 -8.053411 -7.232630 -10.802841 +[Sample] step=0 c0=27 u=-1.0000000000 subseq=0 +[Sample-CP] g=0 c=1408 u=-1.0000000000 subseq=1 +[Sample-CP] g=1 c=1824 u=-1.0000000000 subseq=2 +[Sample-CP] g=2 c=400 u=-1.0000000000 subseq=3 +[Sample-CP] g=3 c=550 u=-1.0000000000 subseq=4 +[Sample-CP] g=4 c=1506 u=-1.0000000000 subseq=5 +[Sample-CP] g=5 c=1452 u=-1.0000000000 subseq=6 +[Sample-CP] g=6 c=470 u=-1.0000000000 subseq=7 +[Sample-CP] g=7 c=1713 u=-1.0000000000 subseq=8 +[Sample-CP] g=8 c=1221 u=-1.0000000000 subseq=9 +[Sample-CP] g=9 c=18 u=-1.0000000000 subseq=10 +[Sample-CP] g=10 c=1502 u=-1.0000000000 subseq=11 +[Sample-CP] g=11 c=1677 u=-1.0000000000 subseq=12 +[Sample-CP] g=12 c=411 u=-1.0000000000 subseq=13 +[Sample-CP] g=13 c=82 u=-1.0000000000 subseq=14 +[Sample-CP] g=14 c=516 u=-1.0000000000 subseq=15 +[Debug] codes-step0: [16] first4: 27.000000 1408.000000 1824.000000 400.000000 +[Debug] next-emb-step0: [2048] first4: 0.021538 -0.036059 0.003081 0.073169 +[Debug] talker-hidden-step1: [2048] first4: 0.405619 2.517920 0.041025 0.037156 +[Sample] step=1 c0=1902 u=-1.0000000000 subseq=16 +[Sample-CP] g=0 c=1924 u=-1.0000000000 subseq=17 +[Sample-CP] g=1 c=2025 u=-1.0000000000 subseq=18 +[Sample-CP] g=2 c=324 u=-1.0000000000 subseq=19 +[Sample-CP] g=3 c=350 u=-1.0000000000 subseq=20 +[Sample-CP] g=4 c=985 u=-1.0000000000 subseq=21 +[Sample-CP] g=5 c=356 u=-1.0000000000 subseq=22 +[Sample-CP] g=6 c=1544 u=-1.0000000000 subseq=23 +[Sample-CP] g=7 c=1058 u=-1.0000000000 subseq=24 +[Sample-CP] g=8 c=1004 u=-1.0000000000 subseq=25 +[Sample-CP] g=9 c=1702 u=-1.0000000000 subseq=26 +[Sample-CP] g=10 c=437 u=-1.0000000000 subseq=27 +[Sample-CP] g=11 c=729 u=-1.0000000000 subseq=28 +[Sample-CP] g=12 c=781 u=-1.0000000000 subseq=29 +[Sample-CP] g=13 c=85 u=-1.0000000000 subseq=30 +[Sample-CP] g=14 c=1435 u=-1.0000000000 subseq=31 +[Pipeline] Generated 8 frames +[Pipeline] Generated 16 frames +[Pipeline] Generated 24 frames +[Pipeline] Generated 32 frames +[Pipeline] Generated 40 frames +[Pipeline] Generated 48 frames +[Pipeline] Generated 56 frames +[Pipeline] Generated 64 frames +[Pipeline] Generation done : 64 frames +[Debug] codes-full: [64, 16] first4: 27.000000 1408.000000 1824.000000 400.000000 +[Debug] output-audio: [122880] first4: -0.001784 -0.003094 -0.002819 -0.001403 +[WAV] Wrote cpp/clone/clone-cpp.wav: 122880 samples, 24000 Hz, mono S16 +[Pipeline] Wrote 122880 samples (5.12 s) -> cpp/clone/clone-cpp.wav +[Input] Prompt: 100 chars: qwentts.cpp is a minimal C++17 and GGML port of Qwen3-TTS fo... +[Input] RefAudio: ../examples/freeman.wav +[Input] RefText: 213 chars: If you go into different cultures, they have different conce... +[Input] Lang: english Seed: 42 MaxNewTokens: 64 +[Input] Mode: greedy ICL +[Python] Device: cuda +[Python] RefWav: 414337 samples 24000 Hz 17.26s +[Python] SpeakerEmb shape: (2048,) dtype: torch.float32 +[Python] RefCodes shape: (16, 215) (K, T_codec) +[Python] InputIds shape: (1, 38) +[Python] RefIds shape: (1, 53) +[Python] Codes shape: (63, 16) (T_frames, num_code_groups) +[Python] Audio: 120960 samples 24000 Hz 5.04s -> python/clone/clone-python.wav +[Quant] Q8_0 -> ../models/qwen-talker-1.7b-base-Q8_0.gguf + ../models/qwen-tokenizer-12hz-Q8_0.gguf +[GGML] Cmd: ../build/qwen-tts --model ../models/qwen-talker-1.7b-base-Q8_0.gguf --codec ../models/qwen-tokenizer-12hz-Q8_0.gguf --seed --text [...] --ref-audio ../examples/freeman.wav --ref-text [...] --lang english --max-new 64 --dump cpp/clone -o cpp/clone/clone-cpp.wav --greedy +[GGML] Audio: 122880 samples 24000 Hz 5.12s -> cpp/clone/clone-cpp.wav +[Cossim] PromptIDs exact: 100.00% (38 values) +[Cossim] RefCodes exact: 80.23% (3440 values) +[Cossim] Embed cos: 0.968624 max: 1.6806e-01 mean: 9.6580e-03 +[Cossim] TrailingText cos: 0.999999 max: 2.1233e-04 mean: 4.3863e-05 +[Cossim] TTSPadEmbed cos: 0.999999 max: 2.1233e-04 mean: 4.3863e-05 +[Cossim] L0 cos: 0.984967 max: 7.6842e-01 mean: 1.2814e-02 +[Cossim] L7 cos: 0.999978 max: 5.0762e+00 mean: 3.8277e-02 +[Cossim] L14 cos: 0.999955 max: 5.0315e+00 mean: 7.4583e-02 +[Cossim] L21 cos: 0.999567 max: 1.7787e+01 mean: 2.7419e-01 +[Cossim] L27 cos: 0.998136 max: 1.1157e+02 mean: 6.4898e-01 +[Cossim] Final cos: 0.991474 max: 1.6478e+01 mean: 2.0378e-01 +[Cossim] Logits cos: 0.998908 max: 1.2573e+00 mean: 1.9487e-01 +[Cossim] NextEmbStep0 cos: 0.848334 max: 2.7271e-01 mean: 2.8037e-02 +[Cossim] TalkerHiddenStep1 cos: 0.992927 max: 1.6351e+00 mean: 2.5651e-01 +[Cossim] MelHann cos: 1.000000 max: 1.7881e-07 mean: 3.2043e-08 +[Cossim] MelBasis cos: 1.000000 max: 1.7881e-07 mean: 3.9379e-10 +[Cossim] MelMag cos: 1.000000 max: 3.1307e-05 mean: 5.6396e-07 +[Cossim] MelSpk cos: 1.000000 max: 2.5492e-03 mean: 9.3754e-06 +[Cossim] SeanetInit cos: 1.000000 max: 4.1014e-04 mean: 3.4146e-06 +[Cossim] SeanetResnet0 cos: 0.999987 max: 1.9469e-03 mean: 9.4434e-05 +[Cossim] SeanetStage0 cos: 0.999985 max: 4.2238e-02 mean: 6.5151e-04 +[Cossim] SeanetStage1 cos: 0.999865 max: 7.6868e-01 mean: 4.9571e-03 +[Cossim] SeanetStage3 cos: 0.999995 max: 1.6565e+00 mean: 3.9086e-02 +[Cossim] SeanetOut cos: 0.999963 max: 4.1938e-01 mean: 1.7123e-02 +[Cossim] EncTransformer cos: 0.999852 max: 1.4321e+00 mean: 2.3860e-02 +[Cossim] CodecPreFSQ cos: 0.999916 max: 4.8250e-01 mean: 3.6077e-02 +[Cossim] SpkFrontend cos: 1.000000 max: 2.1511e-04 mean: 1.4566e-06 +[Cossim] SpkBlock3 cos: 1.000000 max: 3.2949e-04 mean: 4.4040e-06 +[Cossim] SpkMFA cos: 1.000000 max: 3.8069e-04 mean: 1.3207e-06 +[Cossim] SpkASP cos: 1.000000 max: 7.8678e-06 mean: 2.2438e-07 +[Cossim] SpeakerEmb cos: 1.000000 max: 1.4305e-05 mean: 2.5522e-07 +[Cossim] CodesFull exact: 4.07% (1008 values) +[Cossim] Audio cos: 0.005833 +[Cossim] WAV stft_cos: 0.209095 samples: 120960 diff --git a/tests/clone-Vulkan0-BF16.log b/tests/clone-Vulkan0-BF16.log new file mode 100644 index 0000000..00f2ec0 --- /dev/null +++ b/tests/clone-Vulkan0-BF16.log @@ -0,0 +1,36 @@ +ggml_cuda_init: found 1 CUDA devices (Total VRAM: 97247 MiB): + Device 0: NVIDIA RTX PRO 6000 Blackwell Workstation Edition, compute capability 12.0, VMM: yes, VRAM: 97247 MiB +load_backend: loaded CUDA backend from /mnt/workspace/qwentts.cpp/build/libggml-cuda.so +ggml_vulkan: Found 1 Vulkan devices: +ggml_vulkan: 0 = NVIDIA RTX PRO 6000 Blackwell Workstation Edition (NVIDIA) | uma: 0 | fp16: 1 | bf16: 0 | warp size: 32 | shared memory: 49152 | int dot: 1 | matrix cores: NV_coopmat2 +load_backend: loaded Vulkan backend from /mnt/workspace/qwentts.cpp/build/libggml-vulkan.so +load_backend: loaded CPU backend from /mnt/workspace/qwentts.cpp/build/libggml-cpu-zen4.so +[Load] Talker backend: Vulkan0 (CPU threads: 16) +[GGUF] ../models/qwen-talker-1.7b-base-BF16.gguf: 480 tensors, data at offset 5954496 +[WeightCtx] Loaded 316 tensors, 3322.0 MB into backend +[Talker] Loaded: 28 layers, hidden 2048, heads 16/8, head_dim 128, FFN 6144, RoPE theta 1000000, mrope sections [24,20,20] interleaved=0 +[WeightCtx] Loaded 88 tensors, 334.1 MB into backend +[CodePredictor] Loaded: 5 layers, hidden 1024, heads 16/8, head_dim 128, FFN 3072, RoPE theta 1000000, 15 acoustic codebooks (vocab 2048 each), mtp_proj linear +[WeightCtx] Loaded 76 tensors, 34.9 MB into backend +[SpeakerEncoder] Loaded: enc_dim=2048 sr=24000 mel_dim=128 hidden=512 mfa=1536 asp_attn=128 se=128 scale=8 +[GGUF] ../models/qwen-tokenizer-12hz-BF16.gguf: 398 tensors, data at offset 29760 +[WeightCtx] Loaded 18 tensors, 33.0 MB into backend +[Quantizer] Loaded: 16 codebooks (1 semantic + 15 acoustic), 2048 entries x 256 dim, hidden 512 +[WeightCtx] Loaded 93 tensors, 58.1 MB into backend +[Transformer] Loaded: 8 layers, hidden 512, heads 16/16, head_dim 64, FFN 1024, RoPE theta 10000, sliding window 72 +[CausalTransConv] FATAL: 'tok_dec.upsample.0.conv.weight' expected F32 or F16, got type 30 +[Input] Prompt: 100 chars: qwentts.cpp is a minimal C++17 and GGML port of Qwen3-TTS fo... +[Input] RefAudio: ../examples/freeman.wav +[Input] RefText: 213 chars: If you go into different cultures, they have different conce... +[Input] Lang: english Seed: 42 MaxNewTokens: 64 +[Input] Mode: greedy ICL +[Python] Device: cuda +[Python] RefWav: 414337 samples 24000 Hz 17.26s +[Python] SpeakerEmb shape: (2048,) dtype: torch.float32 +[Python] RefCodes shape: (16, 215) (K, T_codec) +[Python] InputIds shape: (1, 38) +[Python] RefIds shape: (1, 53) +[Python] Codes shape: (63, 16) (T_frames, num_code_groups) +[Python] Audio: 120960 samples 24000 Hz 5.04s -> python/clone/clone-python.wav +[Quant] BF16 -> ../models/qwen-talker-1.7b-base-BF16.gguf + ../models/qwen-tokenizer-12hz-BF16.gguf +[GGML] Cmd: ../build/qwen-tts --model ../models/qwen-talker-1.7b-base-BF16.gguf --codec ../models/qwen-tokenizer-12hz-BF16.gguf --seed --text [...] --ref-audio ../examples/freeman.wav --ref-text [...] --lang english --max-new 64 --dump cpp/clone -o cpp/clone/clone-cpp.wav --greedy diff --git a/tests/clone-Vulkan0-F32.log b/tests/clone-Vulkan0-F32.log new file mode 100644 index 0000000..2c25576 --- /dev/null +++ b/tests/clone-Vulkan0-F32.log @@ -0,0 +1,176 @@ +ggml_cuda_init: found 1 CUDA devices (Total VRAM: 97247 MiB): + Device 0: NVIDIA RTX PRO 6000 Blackwell Workstation Edition, compute capability 12.0, VMM: yes, VRAM: 97247 MiB +load_backend: loaded CUDA backend from /mnt/workspace/qwentts.cpp/build/libggml-cuda.so +ggml_vulkan: Found 1 Vulkan devices: +ggml_vulkan: 0 = NVIDIA RTX PRO 6000 Blackwell Workstation Edition (NVIDIA) | uma: 0 | fp16: 1 | bf16: 0 | warp size: 32 | shared memory: 49152 | int dot: 1 | matrix cores: NV_coopmat2 +load_backend: loaded Vulkan backend from /mnt/workspace/qwentts.cpp/build/libggml-vulkan.so +load_backend: loaded CPU backend from /mnt/workspace/qwentts.cpp/build/libggml-cpu-zen4.so +[Load] Talker backend: Vulkan0 (CPU threads: 16) +[GGUF] ../models/qwen-talker-1.7b-base-F32.gguf: 480 tensors, data at offset 5954432 +[WeightCtx] Loaded 316 tensors, 6643.5 MB into backend +[Talker] Loaded: 28 layers, hidden 2048, heads 16/8, head_dim 128, FFN 6144, RoPE theta 1000000, mrope sections [24,20,20] interleaved=0 +[WeightCtx] Loaded 88 tensors, 668.1 MB into backend +[CodePredictor] Loaded: 5 layers, hidden 1024, heads 16/8, head_dim 128, FFN 3072, RoPE theta 1000000, 15 acoustic codebooks (vocab 2048 each), mtp_proj linear +[WeightCtx] Loaded 76 tensors, 45.8 MB into backend +[SpeakerEncoder] Loaded: enc_dim=2048 sr=24000 mel_dim=128 hidden=512 mfa=1536 asp_attn=128 se=128 scale=8 +[GGUF] ../models/qwen-tokenizer-12hz-F32.gguf: 398 tensors, data at offset 29664 +[WeightCtx] Loaded 18 tensors, 33.0 MB into backend +[Quantizer] Loaded: 16 codebooks (1 semantic + 15 acoustic), 2048 entries x 256 dim, hidden 512 +[WeightCtx] Loaded 93 tensors, 116.1 MB into backend +[Transformer] Loaded: 8 layers, hidden 512, heads 16/16, head_dim 64, FFN 1024, RoPE theta 10000, sliding window 72 +[WeightCtx] Loaded 22 tensors, 80.1 MB into backend +[Upsample] Loaded: 2 blocks (2x ratio per block), channels 1024, dwconv kernel 7 +[WeightCtx] Loaded 118 tensors, 199.8 MB into backend +[DAC] Loaded: 4 blocks (strides 8/5/4/3), 24 kHz mono out, weights 199.8 MB +[WeightCtx] Loaded 2 tensors, 6.0 MB into backend +[WeightCtx] Loaded 28 tensors, 48.2 MB into backend +[SEANet] Loaded: 4 stages (ratios 4/5/6/8), 64 -> 512 channels, weights 48.2 MB +[WeightCtx] Loaded 96 tensors, 96.1 MB into backend +[EncTransformer] Loaded: 8 layers, hidden 512, heads 8/8, head_dim 64, FFN 2048, RoPE theta 10000 +[WeightCtx] Loaded 1 tensors, 4.0 MB into backend +[EncDownsample] Loaded: k=4 stride=2, 512 -> 512 channels, weights 4.0 MB +[WeightCtx] Loaded 20 tensors, 34.0 MB into backend +[EncQuantizer] Loaded: 16 codebooks (1 semantic + 15 acoustic), 2048 entries x 256 dim, hidden 512, weights 34.0 MB +[Pipeline] Ready: hop 1920 samples @ 24000 Hz mono, 16 codebooks @ 12.5 Hz +[KVCache] Allocated: 28 layers, 8 KV heads, head_dim 128, max_seq_len 4096 -> 896 MB +[KVCache] Allocated: 5 layers, 8 KV heads, head_dim 128, max_seq_len 16 -> 0 MB +[Pipeline] Loaded: arch=1b7 variant=base tokenizer=qwen3_tts_tokenizer_12hz codebooks=16 speaker_encoder=loaded speakers=0 +[BPE] Loaded from GGUF: 151676 vocab, 151291 merges, eos_id=151643 +[BPE] Registered 5 arch special tokens (total specials=6) +[WAV] Read buffer: 380672 samples, 22050 Hz, 1 ch, 16 bit +[Audio-Resample] 22050 Hz -> 24000 Hz, 380672 samples... +[Audio-Resample] Done: 380672 -> 414337 samples +[Debug] mel-spk: [1618, 128] first4: -6.330339 -6.170074 -6.011195 -6.243161 +[Debug] mel-hann: [1024] first4: 0.000000 0.000009 0.000038 0.000085 +[Debug] mel-basis: [128, 513] first4: 0.000000 0.033550 0.008569 0.000000 +[Debug] mel-mag: [1618, 513] first4: 0.047604 0.042322 0.042187 0.066630 +[Debug] spk-frontend: [1618, 512] first4: 0.000000 0.098113 0.854719 0.000000 +[Debug] spk-block3: [1618, 512] first4: 1.956472 0.098113 1.233186 0.246316 +[Debug] spk-mfa: [1618, 1536] first4: 0.000000 0.922765 0.615104 0.000000 +[Debug] spk-asp: [1, 3072] first4: 0.067725 0.119141 0.240898 0.344141 +[SpkExtract] Extracted 2048-dim embedding from ../examples/freeman.wav (414337 samples, padded 415105) +[WAV] Read buffer: 380672 samples, 22050 Hz, 1 ch, 16 bit +[Audio-Resample] 22050 Hz -> 24000 Hz, 380672 samples... +[Audio-Resample] Done: 380672 -> 414337 samples +[Debug] audio-input: [412800] first4: -0.000546 -0.001162 -0.000871 0.000340 +[Debug] seanet-out: [430, 512] first4: -0.138303 13.699992 -0.351357 3.025051 +[Debug] enc-transformer-out: [430, 512] first4: 0.526569 3.116264 -0.195330 0.625080 +[Debug] codec-pre-fsq: [215, 512] first4: -3.793579 -7.079834 -0.869629 2.897949 +[Debug] seanet-init: [412800, 64] first4: -0.015825 -0.054180 -0.117431 0.038554 +[Debug] seanet-resnet0: [412800, 64] first4: 0.057692 -0.220647 -0.137337 -0.251412 +[Debug] seanet-stage0: [103200, 128] first4: 0.233419 -0.324131 0.246537 0.204638 +[Debug] seanet-stage1: [20640, 256] first4: -0.363312 0.315591 -0.575002 0.574978 +[Debug] seanet-stage3: [430, 1024] first4: -2.283079 -4.969837 -6.983922 -8.931701 +[Pipeline] ICL ref_codes: 215 frames at 12.5 Hz (412800 audio samples) +[Prompt] Built: 38 ids, N_text=30, N_instruct=0, T_ctx=225, hidden=2048, lang=english (id=2050), speaker=none (id=-1) ref_spk_emb=yes icl=yes +[Debug] prompt-ids: [38] first4: 151644.000000 77091.000000 198.000000 80.000000 +[Debug] talker-input-embed: [225, 2048] first4: 0.022157 -0.009049 0.008161 -0.020214 +[Debug] trailing-text-hidden: [1, 2048] first4: -0.005331 0.008751 -0.004225 0.001141 +[Debug] tts-pad-embed: [2048] first4: -0.005331 0.008751 -0.004225 0.001141 +[Debug] speaker-emb: [2048] first4: 0.098351 -0.023771 -0.011823 0.006760 +[Debug] ref-codes: [16, 215] first4: 1221.000000 2042.000000 509.000000 1522.000000 +[Debug] talker-hidden-prefill-l0: [225, 2048] first4: -0.459179 -0.069735 0.016071 -0.038750 +[Debug] talker-hidden-prefill-l7: [225, 2048] first4: -1.522404 -0.010386 0.338326 1.771031 +[Debug] talker-hidden-prefill-l14: [225, 2048] first4: -1.293831 0.185947 0.439517 1.737659 +[Debug] talker-hidden-prefill-l21: [225, 2048] first4: -0.770112 0.166327 0.790798 1.105181 +[Debug] talker-hidden-prefill-l27: [225, 2048] first4: 7.085222 -34.410065 -7.070534 28.603781 +[Debug] talker-hidden-prefill-final: [225, 2048] first4: 0.241214 -1.223315 -0.223672 0.887629 +[Debug] talker-logits-prefill: [3072] first4: 0.986328 -7.724609 -6.861816 -10.246094 +[Sample] step=0 c0=27 u=-1.0000000000 subseq=0 +[Sample-CP] g=0 c=1408 u=-1.0000000000 subseq=1 +[Sample-CP] g=1 c=1203 u=-1.0000000000 subseq=2 +[Sample-CP] g=2 c=203 u=-1.0000000000 subseq=3 +[Sample-CP] g=3 c=447 u=-1.0000000000 subseq=4 +[Sample-CP] g=4 c=645 u=-1.0000000000 subseq=5 +[Sample-CP] g=5 c=580 u=-1.0000000000 subseq=6 +[Sample-CP] g=6 c=905 u=-1.0000000000 subseq=7 +[Sample-CP] g=7 c=432 u=-1.0000000000 subseq=8 +[Sample-CP] g=8 c=1962 u=-1.0000000000 subseq=9 +[Sample-CP] g=9 c=346 u=-1.0000000000 subseq=10 +[Sample-CP] g=10 c=93 u=-1.0000000000 subseq=11 +[Sample-CP] g=11 c=1546 u=-1.0000000000 subseq=12 +[Sample-CP] g=12 c=936 u=-1.0000000000 subseq=13 +[Sample-CP] g=13 c=2002 u=-1.0000000000 subseq=14 +[Sample-CP] g=14 c=389 u=-1.0000000000 subseq=15 +[Debug] codes-step0: [16] first4: 27.000000 1408.000000 1203.000000 203.000000 +[Debug] next-emb-step0: [2048] first4: 0.066254 -0.031121 0.037696 -0.036131 +[Debug] talker-hidden-step1: [2048] first4: -0.450483 3.398298 -1.360764 0.616965 +[Sample] step=1 c0=1570 u=-1.0000000000 subseq=16 +[Sample-CP] g=0 c=441 u=-1.0000000000 subseq=17 +[Sample-CP] g=1 c=814 u=-1.0000000000 subseq=18 +[Sample-CP] g=2 c=318 u=-1.0000000000 subseq=19 +[Sample-CP] g=3 c=1630 u=-1.0000000000 subseq=20 +[Sample-CP] g=4 c=980 u=-1.0000000000 subseq=21 +[Sample-CP] g=5 c=672 u=-1.0000000000 subseq=22 +[Sample-CP] g=6 c=51 u=-1.0000000000 subseq=23 +[Sample-CP] g=7 c=1534 u=-1.0000000000 subseq=24 +[Sample-CP] g=8 c=1490 u=-1.0000000000 subseq=25 +[Sample-CP] g=9 c=59 u=-1.0000000000 subseq=26 +[Sample-CP] g=10 c=1958 u=-1.0000000000 subseq=27 +[Sample-CP] g=11 c=1728 u=-1.0000000000 subseq=28 +[Sample-CP] g=12 c=1787 u=-1.0000000000 subseq=29 +[Sample-CP] g=13 c=678 u=-1.0000000000 subseq=30 +[Sample-CP] g=14 c=381 u=-1.0000000000 subseq=31 +[Pipeline] Generated 8 frames +[Pipeline] Generated 16 frames +[Pipeline] Generated 24 frames +[Pipeline] Generated 32 frames +[Pipeline] Generated 40 frames +[Pipeline] Generated 48 frames +[Pipeline] Generated 56 frames +[Pipeline] Generated 64 frames +[Pipeline] Generation done : 64 frames +[Debug] codes-full: [64, 16] first4: 27.000000 1408.000000 1203.000000 203.000000 +[Debug] output-audio: [122880] first4: -0.001441 -0.002431 -0.002447 -0.001548 +[WAV] Wrote cpp/clone/clone-cpp.wav: 122880 samples, 24000 Hz, mono S16 +[Pipeline] Wrote 122880 samples (5.12 s) -> cpp/clone/clone-cpp.wav +[Input] Prompt: 100 chars: qwentts.cpp is a minimal C++17 and GGML port of Qwen3-TTS fo... +[Input] RefAudio: ../examples/freeman.wav +[Input] RefText: 213 chars: If you go into different cultures, they have different conce... +[Input] Lang: english Seed: 42 MaxNewTokens: 64 +[Input] Mode: greedy ICL +[Python] Device: cuda +[Python] RefWav: 414337 samples 24000 Hz 17.26s +[Python] SpeakerEmb shape: (2048,) dtype: torch.float32 +[Python] RefCodes shape: (16, 215) (K, T_codec) +[Python] InputIds shape: (1, 38) +[Python] RefIds shape: (1, 53) +[Python] Codes shape: (63, 16) (T_frames, num_code_groups) +[Python] Audio: 120960 samples 24000 Hz 5.04s -> python/clone/clone-python.wav +[Quant] F32 -> ../models/qwen-talker-1.7b-base-F32.gguf + ../models/qwen-tokenizer-12hz-F32.gguf +[GGML] Cmd: ../build/qwen-tts --model ../models/qwen-talker-1.7b-base-F32.gguf --codec ../models/qwen-tokenizer-12hz-F32.gguf --seed --text [...] --ref-audio ../examples/freeman.wav --ref-text [...] --lang english --max-new 64 --dump cpp/clone -o cpp/clone/clone-cpp.wav --greedy +[GGML] Audio: 122880 samples 24000 Hz 5.12s -> cpp/clone/clone-cpp.wav +[Cossim] PromptIDs exact: 100.00% (38 values) +[Cossim] RefCodes exact: 82.41% (3440 values) +[Cossim] Embed cos: 0.972129 max: 1.9482e-01 mean: 8.1107e-03 +[Cossim] TrailingText cos: 1.000000 max: 1.0431e-06 mean: 9.3616e-09 +[Cossim] TTSPadEmbed cos: 1.000000 max: 1.0431e-06 mean: 9.3616e-09 +[Cossim] L0 cos: 0.987066 max: 6.8535e-01 mean: 1.0819e-02 +[Cossim] L7 cos: 0.999991 max: 1.0628e+01 mean: 2.7183e-02 +[Cossim] L14 cos: 0.999972 max: 1.0626e+01 mean: 5.9813e-02 +[Cossim] L21 cos: 0.999708 max: 1.0632e+01 mean: 2.2441e-01 +[Cossim] L27 cos: 0.998904 max: 2.5903e+01 mean: 5.2200e-01 +[Cossim] Final cos: 0.994364 max: 7.8407e+00 mean: 1.6916e-01 +[Cossim] Logits cos: 0.999523 max: 8.6606e-01 mean: 1.2265e-01 +[Cossim] NextEmbStep0 cos: 0.541281 max: 2.5191e-01 mean: 5.0209e-02 +[Cossim] TalkerHiddenStep1 cos: 0.519919 max: 2.0566e+01 mean: 1.9084e+00 +[Cossim] MelHann cos: 1.000000 max: 1.7881e-07 mean: 3.2043e-08 +[Cossim] MelBasis cos: 1.000000 max: 1.7881e-07 mean: 3.9379e-10 +[Cossim] MelMag cos: 1.000000 max: 3.1307e-05 mean: 5.6396e-07 +[Cossim] MelSpk cos: 1.000000 max: 2.5492e-03 mean: 9.3754e-06 +[Cossim] SeanetInit cos: 1.000000 max: 4.1014e-04 mean: 3.4146e-06 +[Cossim] SeanetResnet0 cos: 0.999987 max: 1.9526e-03 mean: 9.4296e-05 +[Cossim] SeanetStage0 cos: 0.999985 max: 4.2238e-02 mean: 6.5089e-04 +[Cossim] SeanetStage1 cos: 0.999866 max: 7.7454e-01 mean: 4.9543e-03 +[Cossim] SeanetStage3 cos: 0.999995 max: 1.4657e+00 mean: 3.8722e-02 +[Cossim] SeanetOut cos: 0.999963 max: 4.0791e-01 mean: 1.6984e-02 +[Cossim] EncTransformer cos: 0.999974 max: 3.3284e-01 mean: 7.6420e-03 +[Cossim] CodecPreFSQ cos: 0.999972 max: 4.5137e-01 mean: 1.8013e-02 +[Cossim] SpkFrontend cos: 1.000000 max: 2.6600e-03 mean: 1.1964e-04 +[Cossim] SpkBlock3 cos: 1.000000 max: 1.2137e-02 mean: 5.2077e-04 +[Cossim] SpkMFA cos: 1.000000 max: 8.9911e-03 mean: 1.3077e-04 +[Cossim] SpkASP cos: 1.000000 max: 2.2933e-04 mean: 1.7414e-05 +[Cossim] SpeakerEmb cos: 1.000000 max: 7.9088e-05 mean: 1.3439e-05 +[Cossim] CodesFull exact: 0.20% (1008 values) +[Cossim] Audio cos: -0.005102 +[Cossim] WAV stft_cos: 0.156900 samples: 120960 diff --git a/tests/clone-Vulkan0-Q4_K_M.log b/tests/clone-Vulkan0-Q4_K_M.log new file mode 100644 index 0000000..fb94d32 --- /dev/null +++ b/tests/clone-Vulkan0-Q4_K_M.log @@ -0,0 +1,176 @@ +ggml_cuda_init: found 1 CUDA devices (Total VRAM: 97247 MiB): + Device 0: NVIDIA RTX PRO 6000 Blackwell Workstation Edition, compute capability 12.0, VMM: yes, VRAM: 97247 MiB +load_backend: loaded CUDA backend from /mnt/workspace/qwentts.cpp/build/libggml-cuda.so +ggml_vulkan: Found 1 Vulkan devices: +ggml_vulkan: 0 = NVIDIA RTX PRO 6000 Blackwell Workstation Edition (NVIDIA) | uma: 0 | fp16: 1 | bf16: 0 | warp size: 32 | shared memory: 49152 | int dot: 1 | matrix cores: NV_coopmat2 +load_backend: loaded Vulkan backend from /mnt/workspace/qwentts.cpp/build/libggml-vulkan.so +load_backend: loaded CPU backend from /mnt/workspace/qwentts.cpp/build/libggml-cpu-zen4.so +[Load] Talker backend: Vulkan0 (CPU threads: 16) +[GGUF] ../models/qwen-talker-1.7b-base-Q4_K_M.gguf: 480 tensors, data at offset 5954496 +[WeightCtx] Loaded 316 tensors, 1012.7 MB into backend +[Talker] Loaded: 28 layers, hidden 2048, heads 16/8, head_dim 128, FFN 6144, RoPE theta 1000000, mrope sections [24,20,20] interleaved=0 +[WeightCtx] Loaded 88 tensors, 109.5 MB into backend +[CodePredictor] Loaded: 5 layers, hidden 1024, heads 16/8, head_dim 128, FFN 3072, RoPE theta 1000000, 15 acoustic codebooks (vocab 2048 each), mtp_proj linear +[WeightCtx] Loaded 76 tensors, 34.9 MB into backend +[SpeakerEncoder] Loaded: enc_dim=2048 sr=24000 mel_dim=128 hidden=512 mfa=1536 asp_attn=128 se=128 scale=8 +[GGUF] ../models/qwen-tokenizer-12hz-Q4_K_M.gguf: 398 tensors, data at offset 29760 +[WeightCtx] Loaded 18 tensors, 33.0 MB into backend +[Quantizer] Loaded: 16 codebooks (1 semantic + 15 acoustic), 2048 entries x 256 dim, hidden 512 +[WeightCtx] Loaded 93 tensors, 16.4 MB into backend +[Transformer] Loaded: 8 layers, hidden 512, heads 16/16, head_dim 64, FFN 1024, RoPE theta 10000, sliding window 72 +[WeightCtx] Loaded 22 tensors, 25.1 MB into backend +[Upsample] Loaded: 2 blocks (2x ratio per block), channels 1024, dwconv kernel 7 +[WeightCtx] Loaded 118 tensors, 142.9 MB into backend +[DAC] Loaded: 4 blocks (strides 8/5/4/3), 24 kHz mono out, weights 142.9 MB +[WeightCtx] Loaded 2 tensors, 3.0 MB into backend +[WeightCtx] Loaded 28 tensors, 24.1 MB into backend +[SEANet] Loaded: 4 stages (ratios 4/5/6/8), 64 -> 512 channels, weights 24.1 MB +[WeightCtx] Loaded 96 tensors, 13.6 MB into backend +[EncTransformer] Loaded: 8 layers, hidden 512, heads 8/8, head_dim 64, FFN 2048, RoPE theta 10000 +[WeightCtx] Loaded 1 tensors, 2.0 MB into backend +[EncDownsample] Loaded: k=4 stride=2, 512 -> 512 channels, weights 2.0 MB +[WeightCtx] Loaded 20 tensors, 34.0 MB into backend +[EncQuantizer] Loaded: 16 codebooks (1 semantic + 15 acoustic), 2048 entries x 256 dim, hidden 512, weights 34.0 MB +[Pipeline] Ready: hop 1920 samples @ 24000 Hz mono, 16 codebooks @ 12.5 Hz +[KVCache] Allocated: 28 layers, 8 KV heads, head_dim 128, max_seq_len 4096 -> 896 MB +[KVCache] Allocated: 5 layers, 8 KV heads, head_dim 128, max_seq_len 16 -> 0 MB +[Pipeline] Loaded: arch=1b7 variant=base tokenizer=qwen3_tts_tokenizer_12hz codebooks=16 speaker_encoder=loaded speakers=0 +[BPE] Loaded from GGUF: 151676 vocab, 151291 merges, eos_id=151643 +[BPE] Registered 5 arch special tokens (total specials=6) +[WAV] Read buffer: 380672 samples, 22050 Hz, 1 ch, 16 bit +[Audio-Resample] 22050 Hz -> 24000 Hz, 380672 samples... +[Audio-Resample] Done: 380672 -> 414337 samples +[Debug] mel-spk: [1618, 128] first4: -6.330339 -6.170074 -6.011195 -6.243161 +[Debug] mel-hann: [1024] first4: 0.000000 0.000009 0.000038 0.000085 +[Debug] mel-basis: [128, 513] first4: 0.000000 0.033550 0.008569 0.000000 +[Debug] mel-mag: [1618, 513] first4: 0.047604 0.042322 0.042187 0.066630 +[Debug] spk-frontend: [1618, 512] first4: 0.000000 0.098113 0.854719 0.000000 +[Debug] spk-block3: [1618, 512] first4: 1.956472 0.098113 1.233186 0.246316 +[Debug] spk-mfa: [1618, 1536] first4: 0.000000 0.922765 0.615104 0.000000 +[Debug] spk-asp: [1, 3072] first4: 0.067725 0.119141 0.240898 0.344141 +[SpkExtract] Extracted 2048-dim embedding from ../examples/freeman.wav (414337 samples, padded 415105) +[WAV] Read buffer: 380672 samples, 22050 Hz, 1 ch, 16 bit +[Audio-Resample] 22050 Hz -> 24000 Hz, 380672 samples... +[Audio-Resample] Done: 380672 -> 414337 samples +[Debug] audio-input: [412800] first4: -0.000546 -0.001162 -0.000871 0.000340 +[Debug] seanet-out: [430, 512] first4: -0.138303 13.699992 -0.351357 3.025051 +[Debug] enc-transformer-out: [430, 512] first4: 0.887039 3.463154 0.047173 0.245495 +[Debug] codec-pre-fsq: [215, 512] first4: -2.186890 -7.483765 -2.393738 2.308228 +[Debug] seanet-init: [412800, 64] first4: -0.015825 -0.054180 -0.117431 0.038554 +[Debug] seanet-resnet0: [412800, 64] first4: 0.057692 -0.220647 -0.137337 -0.251412 +[Debug] seanet-stage0: [103200, 128] first4: 0.233419 -0.324131 0.246537 0.204638 +[Debug] seanet-stage1: [20640, 256] first4: -0.363312 0.315591 -0.575002 0.574978 +[Debug] seanet-stage3: [430, 1024] first4: -2.283079 -4.969837 -6.983922 -8.931701 +[Pipeline] ICL ref_codes: 215 frames at 12.5 Hz (412800 audio samples) +[Prompt] Built: 38 ids, N_text=30, N_instruct=0, T_ctx=225, hidden=2048, lang=english (id=2050), speaker=none (id=-1) ref_spk_emb=yes icl=yes +[Debug] prompt-ids: [38] first4: 151644.000000 77091.000000 198.000000 80.000000 +[Debug] talker-input-embed: [225, 2048] first4: 0.022105 -0.009079 0.008285 -0.019901 +[Debug] trailing-text-hidden: [1, 2048] first4: -0.005388 0.008927 -0.004415 0.000679 +[Debug] tts-pad-embed: [2048] first4: -0.005388 0.008927 -0.004415 0.000679 +[Debug] speaker-emb: [2048] first4: 0.098351 -0.023771 -0.011823 0.006760 +[Debug] ref-codes: [16, 215] first4: 1221.000000 2042.000000 696.000000 1522.000000 +[Debug] talker-hidden-prefill-l0: [225, 2048] first4: -0.437219 -0.067416 0.007625 0.014900 +[Debug] talker-hidden-prefill-l7: [225, 2048] first4: -8.841837 0.789566 0.499846 0.089505 +[Debug] talker-hidden-prefill-l14: [225, 2048] first4: -8.777140 1.123894 0.603008 0.155361 +[Debug] talker-hidden-prefill-l21: [225, 2048] first4: -8.660569 1.697090 1.104082 -0.795212 +[Debug] talker-hidden-prefill-l27: [225, 2048] first4: 4.911671 -31.767857 -6.812796 21.723780 +[Debug] talker-hidden-prefill-final: [225, 2048] first4: 0.165718 -1.119261 -0.213588 0.668089 +[Debug] talker-logits-prefill: [3072] first4: -0.156006 -5.531250 -7.037109 -10.544922 +[Sample] step=0 c0=27 u=-1.0000000000 subseq=0 +[Sample-CP] g=0 c=1408 u=-1.0000000000 subseq=1 +[Sample-CP] g=1 c=1203 u=-1.0000000000 subseq=2 +[Sample-CP] g=2 c=647 u=-1.0000000000 subseq=3 +[Sample-CP] g=3 c=1674 u=-1.0000000000 subseq=4 +[Sample-CP] g=4 c=645 u=-1.0000000000 subseq=5 +[Sample-CP] g=5 c=1674 u=-1.0000000000 subseq=6 +[Sample-CP] g=6 c=75 u=-1.0000000000 subseq=7 +[Sample-CP] g=7 c=1763 u=-1.0000000000 subseq=8 +[Sample-CP] g=8 c=936 u=-1.0000000000 subseq=9 +[Sample-CP] g=9 c=819 u=-1.0000000000 subseq=10 +[Sample-CP] g=10 c=761 u=-1.0000000000 subseq=11 +[Sample-CP] g=11 c=755 u=-1.0000000000 subseq=12 +[Sample-CP] g=12 c=79 u=-1.0000000000 subseq=13 +[Sample-CP] g=13 c=37 u=-1.0000000000 subseq=14 +[Sample-CP] g=14 c=1789 u=-1.0000000000 subseq=15 +[Debug] codes-step0: [16] first4: 27.000000 1408.000000 1203.000000 647.000000 +[Debug] next-emb-step0: [2048] first4: -0.013052 -0.001298 0.002898 -0.014310 +[Debug] talker-hidden-step1: [2048] first4: -0.326902 2.695708 -1.438280 0.962824 +[Sample] step=1 c0=1570 u=-1.0000000000 subseq=16 +[Sample-CP] g=0 c=682 u=-1.0000000000 subseq=17 +[Sample-CP] g=1 c=1094 u=-1.0000000000 subseq=18 +[Sample-CP] g=2 c=203 u=-1.0000000000 subseq=19 +[Sample-CP] g=3 c=1226 u=-1.0000000000 subseq=20 +[Sample-CP] g=4 c=342 u=-1.0000000000 subseq=21 +[Sample-CP] g=5 c=1487 u=-1.0000000000 subseq=22 +[Sample-CP] g=6 c=131 u=-1.0000000000 subseq=23 +[Sample-CP] g=7 c=638 u=-1.0000000000 subseq=24 +[Sample-CP] g=8 c=1573 u=-1.0000000000 subseq=25 +[Sample-CP] g=9 c=506 u=-1.0000000000 subseq=26 +[Sample-CP] g=10 c=282 u=-1.0000000000 subseq=27 +[Sample-CP] g=11 c=1603 u=-1.0000000000 subseq=28 +[Sample-CP] g=12 c=122 u=-1.0000000000 subseq=29 +[Sample-CP] g=13 c=1947 u=-1.0000000000 subseq=30 +[Sample-CP] g=14 c=1605 u=-1.0000000000 subseq=31 +[Pipeline] Generated 8 frames +[Pipeline] Generated 16 frames +[Pipeline] Generated 24 frames +[Pipeline] Generated 32 frames +[Pipeline] Generated 40 frames +[Pipeline] Generated 48 frames +[Pipeline] Generated 56 frames +[Pipeline] Generated 64 frames +[Pipeline] Generation done : 64 frames +[Debug] codes-full: [64, 16] first4: 27.000000 1408.000000 1203.000000 647.000000 +[Debug] output-audio: [122880] first4: -0.000863 -0.001503 -0.001410 -0.000697 +[WAV] Wrote cpp/clone/clone-cpp.wav: 122880 samples, 24000 Hz, mono S16 +[Pipeline] Wrote 122880 samples (5.12 s) -> cpp/clone/clone-cpp.wav +[Input] Prompt: 100 chars: qwentts.cpp is a minimal C++17 and GGML port of Qwen3-TTS fo... +[Input] RefAudio: ../examples/freeman.wav +[Input] RefText: 213 chars: If you go into different cultures, they have different conce... +[Input] Lang: english Seed: 42 MaxNewTokens: 64 +[Input] Mode: greedy ICL +[Python] Device: cuda +[Python] RefWav: 414337 samples 24000 Hz 17.26s +[Python] SpeakerEmb shape: (2048,) dtype: torch.float32 +[Python] RefCodes shape: (16, 215) (K, T_codec) +[Python] InputIds shape: (1, 38) +[Python] RefIds shape: (1, 53) +[Python] Codes shape: (63, 16) (T_frames, num_code_groups) +[Python] Audio: 120960 samples 24000 Hz 5.04s -> python/clone/clone-python.wav +[Quant] Q4_K_M -> ../models/qwen-talker-1.7b-base-Q4_K_M.gguf + ../models/qwen-tokenizer-12hz-Q4_K_M.gguf +[GGML] Cmd: ../build/qwen-tts --model ../models/qwen-talker-1.7b-base-Q4_K_M.gguf --codec ../models/qwen-tokenizer-12hz-Q4_K_M.gguf --seed --text [...] --ref-audio ../examples/freeman.wav --ref-text [...] --lang english --max-new 64 --dump cpp/clone -o cpp/clone/clone-cpp.wav --greedy +[GGML] Audio: 122880 samples 24000 Hz 5.12s -> cpp/clone/clone-cpp.wav +[Cossim] PromptIDs exact: 100.00% (38 values) +[Cossim] RefCodes exact: 49.83% (3440 values) +[Cossim] Embed cos: 0.917129 max: 2.2247e-01 mean: 2.1853e-02 +[Cossim] TrailingText cos: 0.999969 max: 1.4858e-03 mean: 2.2947e-04 +[Cossim] TTSPadEmbed cos: 0.999969 max: 1.4858e-03 mean: 2.2947e-04 +[Cossim] L0 cos: 0.961477 max: 8.5747e-01 mean: 2.8366e-02 +[Cossim] L7 cos: 0.997433 max: 3.9387e+01 mean: 1.6338e-01 +[Cossim] L14 cos: 0.997359 max: 3.8752e+01 mean: 2.4737e-01 +[Cossim] L21 cos: 0.995878 max: 3.9000e+01 mean: 7.7237e-01 +[Cossim] L27 cos: 0.956754 max: 1.7476e+03 mean: 1.9744e+00 +[Cossim] Final cos: 0.955802 max: 3.3789e+01 mean: 5.4922e-01 +[Cossim] Logits cos: 0.992553 max: 2.9861e+00 mean: 4.5271e-01 +[Cossim] NextEmbStep0 cos: 0.582183 max: 2.0788e-01 mean: 4.7545e-02 +[Cossim] TalkerHiddenStep1 cos: 0.505559 max: 2.3324e+01 mean: 1.9119e+00 +[Cossim] MelHann cos: 1.000000 max: 1.7881e-07 mean: 3.2043e-08 +[Cossim] MelBasis cos: 1.000000 max: 1.7881e-07 mean: 3.9379e-10 +[Cossim] MelMag cos: 1.000000 max: 3.1307e-05 mean: 5.6396e-07 +[Cossim] MelSpk cos: 1.000000 max: 2.5492e-03 mean: 9.3754e-06 +[Cossim] SeanetInit cos: 1.000000 max: 4.1014e-04 mean: 3.4146e-06 +[Cossim] SeanetResnet0 cos: 0.999987 max: 1.9526e-03 mean: 9.4296e-05 +[Cossim] SeanetStage0 cos: 0.999985 max: 4.2238e-02 mean: 6.5089e-04 +[Cossim] SeanetStage1 cos: 0.999866 max: 7.7454e-01 mean: 4.9543e-03 +[Cossim] SeanetStage3 cos: 0.999995 max: 1.4657e+00 mean: 3.8722e-02 +[Cossim] SeanetOut cos: 0.999963 max: 4.0791e-01 mean: 1.6984e-02 +[Cossim] EncTransformer cos: 0.992979 max: 3.5659e+00 mean: 1.6375e-01 +[Cossim] CodecPreFSQ cos: 0.996263 max: 2.2477e+00 mean: 2.4022e-01 +[Cossim] SpkFrontend cos: 1.000000 max: 2.6600e-03 mean: 1.1964e-04 +[Cossim] SpkBlock3 cos: 1.000000 max: 1.2137e-02 mean: 5.2077e-04 +[Cossim] SpkMFA cos: 1.000000 max: 8.9911e-03 mean: 1.3077e-04 +[Cossim] SpkASP cos: 1.000000 max: 2.2933e-04 mean: 1.7414e-05 +[Cossim] SpeakerEmb cos: 1.000000 max: 7.9088e-05 mean: 1.3439e-05 +[Cossim] CodesFull exact: 0.30% (1008 values) +[Cossim] Audio cos: -0.000113 +[Cossim] WAV stft_cos: 0.035981 samples: 120960 diff --git a/tests/clone-Vulkan0-Q8_0.log b/tests/clone-Vulkan0-Q8_0.log new file mode 100644 index 0000000..8ece169 --- /dev/null +++ b/tests/clone-Vulkan0-Q8_0.log @@ -0,0 +1,176 @@ +ggml_cuda_init: found 1 CUDA devices (Total VRAM: 97247 MiB): + Device 0: NVIDIA RTX PRO 6000 Blackwell Workstation Edition, compute capability 12.0, VMM: yes, VRAM: 97247 MiB +load_backend: loaded CUDA backend from /mnt/workspace/qwentts.cpp/build/libggml-cuda.so +ggml_vulkan: Found 1 Vulkan devices: +ggml_vulkan: 0 = NVIDIA RTX PRO 6000 Blackwell Workstation Edition (NVIDIA) | uma: 0 | fp16: 1 | bf16: 0 | warp size: 32 | shared memory: 49152 | int dot: 1 | matrix cores: NV_coopmat2 +load_backend: loaded Vulkan backend from /mnt/workspace/qwentts.cpp/build/libggml-vulkan.so +load_backend: loaded CPU backend from /mnt/workspace/qwentts.cpp/build/libggml-cpu-zen4.so +[Load] Talker backend: Vulkan0 (CPU threads: 16) +[GGUF] ../models/qwen-talker-1.7b-base-Q8_0.gguf: 480 tensors, data at offset 5954496 +[WeightCtx] Loaded 316 tensors, 1765.0 MB into backend +[Talker] Loaded: 28 layers, hidden 2048, heads 16/8, head_dim 128, FFN 6144, RoPE theta 1000000, mrope sections [24,20,20] interleaved=0 +[WeightCtx] Loaded 88 tensors, 177.5 MB into backend +[CodePredictor] Loaded: 5 layers, hidden 1024, heads 16/8, head_dim 128, FFN 3072, RoPE theta 1000000, 15 acoustic codebooks (vocab 2048 each), mtp_proj linear +[WeightCtx] Loaded 76 tensors, 34.9 MB into backend +[SpeakerEncoder] Loaded: enc_dim=2048 sr=24000 mel_dim=128 hidden=512 mfa=1536 asp_attn=128 se=128 scale=8 +[GGUF] ../models/qwen-tokenizer-12hz-Q8_0.gguf: 398 tensors, data at offset 29760 +[WeightCtx] Loaded 18 tensors, 33.0 MB into backend +[Quantizer] Loaded: 16 codebooks (1 semantic + 15 acoustic), 2048 entries x 256 dim, hidden 512 +[WeightCtx] Loaded 93 tensors, 30.9 MB into backend +[Transformer] Loaded: 8 layers, hidden 512, heads 16/16, head_dim 64, FFN 1024, RoPE theta 10000, sliding window 72 +[WeightCtx] Loaded 22 tensors, 33.1 MB into backend +[Upsample] Loaded: 2 blocks (2x ratio per block), channels 1024, dwconv kernel 7 +[WeightCtx] Loaded 118 tensors, 142.9 MB into backend +[DAC] Loaded: 4 blocks (strides 8/5/4/3), 24 kHz mono out, weights 142.9 MB +[WeightCtx] Loaded 2 tensors, 3.0 MB into backend +[WeightCtx] Loaded 28 tensors, 24.1 MB into backend +[SEANet] Loaded: 4 stages (ratios 4/5/6/8), 64 -> 512 channels, weights 24.1 MB +[WeightCtx] Loaded 96 tensors, 25.6 MB into backend +[EncTransformer] Loaded: 8 layers, hidden 512, heads 8/8, head_dim 64, FFN 2048, RoPE theta 10000 +[WeightCtx] Loaded 1 tensors, 2.0 MB into backend +[EncDownsample] Loaded: k=4 stride=2, 512 -> 512 channels, weights 2.0 MB +[WeightCtx] Loaded 20 tensors, 34.0 MB into backend +[EncQuantizer] Loaded: 16 codebooks (1 semantic + 15 acoustic), 2048 entries x 256 dim, hidden 512, weights 34.0 MB +[Pipeline] Ready: hop 1920 samples @ 24000 Hz mono, 16 codebooks @ 12.5 Hz +[KVCache] Allocated: 28 layers, 8 KV heads, head_dim 128, max_seq_len 4096 -> 896 MB +[KVCache] Allocated: 5 layers, 8 KV heads, head_dim 128, max_seq_len 16 -> 0 MB +[Pipeline] Loaded: arch=1b7 variant=base tokenizer=qwen3_tts_tokenizer_12hz codebooks=16 speaker_encoder=loaded speakers=0 +[BPE] Loaded from GGUF: 151676 vocab, 151291 merges, eos_id=151643 +[BPE] Registered 5 arch special tokens (total specials=6) +[WAV] Read buffer: 380672 samples, 22050 Hz, 1 ch, 16 bit +[Audio-Resample] 22050 Hz -> 24000 Hz, 380672 samples... +[Audio-Resample] Done: 380672 -> 414337 samples +[Debug] mel-spk: [1618, 128] first4: -6.330339 -6.170074 -6.011195 -6.243161 +[Debug] mel-hann: [1024] first4: 0.000000 0.000009 0.000038 0.000085 +[Debug] mel-basis: [128, 513] first4: 0.000000 0.033550 0.008569 0.000000 +[Debug] mel-mag: [1618, 513] first4: 0.047604 0.042322 0.042187 0.066630 +[Debug] spk-frontend: [1618, 512] first4: 0.000000 0.098113 0.854719 0.000000 +[Debug] spk-block3: [1618, 512] first4: 1.956472 0.098113 1.233186 0.246316 +[Debug] spk-mfa: [1618, 1536] first4: 0.000000 0.922765 0.615104 0.000000 +[Debug] spk-asp: [1, 3072] first4: 0.067725 0.119141 0.240898 0.344141 +[SpkExtract] Extracted 2048-dim embedding from ../examples/freeman.wav (414337 samples, padded 415105) +[WAV] Read buffer: 380672 samples, 22050 Hz, 1 ch, 16 bit +[Audio-Resample] 22050 Hz -> 24000 Hz, 380672 samples... +[Audio-Resample] Done: 380672 -> 414337 samples +[Debug] audio-input: [412800] first4: -0.000546 -0.001162 -0.000871 0.000340 +[Debug] seanet-out: [430, 512] first4: -0.138303 13.699992 -0.351357 3.025051 +[Debug] enc-transformer-out: [430, 512] first4: 0.633121 3.145168 -0.143299 0.564666 +[Debug] codec-pre-fsq: [215, 512] first4: -3.769043 -7.062744 -0.844849 2.870117 +[Debug] seanet-init: [412800, 64] first4: -0.015825 -0.054180 -0.117431 0.038554 +[Debug] seanet-resnet0: [412800, 64] first4: 0.057692 -0.220647 -0.137337 -0.251412 +[Debug] seanet-stage0: [103200, 128] first4: 0.233419 -0.324131 0.246537 0.204638 +[Debug] seanet-stage1: [20640, 256] first4: -0.363312 0.315591 -0.575002 0.574978 +[Debug] seanet-stage3: [430, 1024] first4: -2.283079 -4.969837 -6.983922 -8.931701 +[Pipeline] ICL ref_codes: 215 frames at 12.5 Hz (412800 audio samples) +[Prompt] Built: 38 ids, N_text=30, N_instruct=0, T_ctx=225, hidden=2048, lang=english (id=2050), speaker=none (id=-1) ref_spk_emb=yes icl=yes +[Debug] prompt-ids: [38] first4: 151644.000000 77091.000000 198.000000 80.000000 +[Debug] talker-input-embed: [225, 2048] first4: 0.021979 -0.009018 0.008292 -0.020170 +[Debug] trailing-text-hidden: [1, 2048] first4: -0.005270 0.008716 -0.004355 0.001036 +[Debug] tts-pad-embed: [2048] first4: -0.005270 0.008716 -0.004355 0.001036 +[Debug] speaker-emb: [2048] first4: 0.098351 -0.023771 -0.011823 0.006760 +[Debug] ref-codes: [16, 215] first4: 1221.000000 2042.000000 509.000000 1522.000000 +[Debug] talker-hidden-prefill-l0: [225, 2048] first4: -0.463271 -0.072727 0.015013 -0.037542 +[Debug] talker-hidden-prefill-l7: [225, 2048] first4: -2.203949 0.171320 0.187689 1.621109 +[Debug] talker-hidden-prefill-l14: [225, 2048] first4: -1.980078 0.357584 0.294047 1.595288 +[Debug] talker-hidden-prefill-l21: [225, 2048] first4: -1.466878 0.293497 0.651744 1.015960 +[Debug] talker-hidden-prefill-l27: [225, 2048] first4: 6.708439 -34.419636 -7.427876 28.535091 +[Debug] talker-hidden-prefill-final: [225, 2048] first4: 0.228206 -1.222688 -0.234791 0.884797 +[Debug] talker-logits-prefill: [3072] first4: 1.251465 -7.830078 -7.050781 -10.621094 +[Sample] step=0 c0=27 u=-1.0000000000 subseq=0 +[Sample-CP] g=0 c=1408 u=-1.0000000000 subseq=1 +[Sample-CP] g=1 c=1203 u=-1.0000000000 subseq=2 +[Sample-CP] g=2 c=203 u=-1.0000000000 subseq=3 +[Sample-CP] g=3 c=447 u=-1.0000000000 subseq=4 +[Sample-CP] g=4 c=645 u=-1.0000000000 subseq=5 +[Sample-CP] g=5 c=580 u=-1.0000000000 subseq=6 +[Sample-CP] g=6 c=905 u=-1.0000000000 subseq=7 +[Sample-CP] g=7 c=432 u=-1.0000000000 subseq=8 +[Sample-CP] g=8 c=1962 u=-1.0000000000 subseq=9 +[Sample-CP] g=9 c=346 u=-1.0000000000 subseq=10 +[Sample-CP] g=10 c=93 u=-1.0000000000 subseq=11 +[Sample-CP] g=11 c=1546 u=-1.0000000000 subseq=12 +[Sample-CP] g=12 c=936 u=-1.0000000000 subseq=13 +[Sample-CP] g=13 c=2002 u=-1.0000000000 subseq=14 +[Sample-CP] g=14 c=906 u=-1.0000000000 subseq=15 +[Debug] codes-step0: [16] first4: 27.000000 1408.000000 1203.000000 203.000000 +[Debug] next-emb-step0: [2048] first4: 0.057144 -0.027413 0.030649 -0.040303 +[Debug] talker-hidden-step1: [2048] first4: -0.610442 3.379674 -1.551872 0.230346 +[Sample] step=1 c0=1570 u=-1.0000000000 subseq=16 +[Sample-CP] g=0 c=682 u=-1.0000000000 subseq=17 +[Sample-CP] g=1 c=814 u=-1.0000000000 subseq=18 +[Sample-CP] g=2 c=367 u=-1.0000000000 subseq=19 +[Sample-CP] g=3 c=1906 u=-1.0000000000 subseq=20 +[Sample-CP] g=4 c=645 u=-1.0000000000 subseq=21 +[Sample-CP] g=5 c=267 u=-1.0000000000 subseq=22 +[Sample-CP] g=6 c=91 u=-1.0000000000 subseq=23 +[Sample-CP] g=7 c=1573 u=-1.0000000000 subseq=24 +[Sample-CP] g=8 c=162 u=-1.0000000000 subseq=25 +[Sample-CP] g=9 c=765 u=-1.0000000000 subseq=26 +[Sample-CP] g=10 c=1767 u=-1.0000000000 subseq=27 +[Sample-CP] g=11 c=855 u=-1.0000000000 subseq=28 +[Sample-CP] g=12 c=1306 u=-1.0000000000 subseq=29 +[Sample-CP] g=13 c=2007 u=-1.0000000000 subseq=30 +[Sample-CP] g=14 c=4 u=-1.0000000000 subseq=31 +[Pipeline] Generated 8 frames +[Pipeline] Generated 16 frames +[Pipeline] Generated 24 frames +[Pipeline] Generated 32 frames +[Pipeline] Generated 40 frames +[Pipeline] Generated 48 frames +[Pipeline] Generated 56 frames +[Pipeline] Generated 64 frames +[Pipeline] Generation done : 64 frames +[Debug] codes-full: [64, 16] first4: 27.000000 1408.000000 1203.000000 203.000000 +[Debug] output-audio: [122880] first4: -0.001439 -0.002481 -0.002478 -0.001377 +[WAV] Wrote cpp/clone/clone-cpp.wav: 122880 samples, 24000 Hz, mono S16 +[Pipeline] Wrote 122880 samples (5.12 s) -> cpp/clone/clone-cpp.wav +[Input] Prompt: 100 chars: qwentts.cpp is a minimal C++17 and GGML port of Qwen3-TTS fo... +[Input] RefAudio: ../examples/freeman.wav +[Input] RefText: 213 chars: If you go into different cultures, they have different conce... +[Input] Lang: english Seed: 42 MaxNewTokens: 64 +[Input] Mode: greedy ICL +[Python] Device: cuda +[Python] RefWav: 414337 samples 24000 Hz 17.26s +[Python] SpeakerEmb shape: (2048,) dtype: torch.float32 +[Python] RefCodes shape: (16, 215) (K, T_codec) +[Python] InputIds shape: (1, 38) +[Python] RefIds shape: (1, 53) +[Python] Codes shape: (63, 16) (T_frames, num_code_groups) +[Python] Audio: 120960 samples 24000 Hz 5.04s -> python/clone/clone-python.wav +[Quant] Q8_0 -> ../models/qwen-talker-1.7b-base-Q8_0.gguf + ../models/qwen-tokenizer-12hz-Q8_0.gguf +[GGML] Cmd: ../build/qwen-tts --model ../models/qwen-talker-1.7b-base-Q8_0.gguf --codec ../models/qwen-tokenizer-12hz-Q8_0.gguf --seed --text [...] --ref-audio ../examples/freeman.wav --ref-text [...] --lang english --max-new 64 --dump cpp/clone -o cpp/clone/clone-cpp.wav --greedy +[GGML] Audio: 122880 samples 24000 Hz 5.12s -> cpp/clone/clone-cpp.wav +[Cossim] PromptIDs exact: 100.00% (38 values) +[Cossim] RefCodes exact: 81.16% (3440 values) +[Cossim] Embed cos: 0.970174 max: 1.9000e-01 mean: 8.9735e-03 +[Cossim] TrailingText cos: 0.999999 max: 2.1233e-04 mean: 4.3863e-05 +[Cossim] TTSPadEmbed cos: 0.999999 max: 2.1233e-04 mean: 4.3863e-05 +[Cossim] L0 cos: 0.985828 max: 7.7037e-01 mean: 1.1813e-02 +[Cossim] L7 cos: 0.999978 max: 9.3408e+00 mean: 3.6074e-02 +[Cossim] L14 cos: 0.999956 max: 9.3533e+00 mean: 7.0647e-02 +[Cossim] L21 cos: 0.999606 max: 1.8653e+01 mean: 2.5031e-01 +[Cossim] L27 cos: 0.998551 max: 4.8180e+01 mean: 5.6835e-01 +[Cossim] Final cos: 0.992873 max: 1.9007e+01 mean: 1.7984e-01 +[Cossim] Logits cos: 0.999578 max: 7.9731e-01 mean: 1.0601e-01 +[Cossim] NextEmbStep0 cos: 0.541937 max: 2.4933e-01 mean: 5.0250e-02 +[Cossim] TalkerHiddenStep1 cos: 0.520921 max: 2.0466e+01 mean: 1.9067e+00 +[Cossim] MelHann cos: 1.000000 max: 1.7881e-07 mean: 3.2043e-08 +[Cossim] MelBasis cos: 1.000000 max: 1.7881e-07 mean: 3.9379e-10 +[Cossim] MelMag cos: 1.000000 max: 3.1307e-05 mean: 5.6396e-07 +[Cossim] MelSpk cos: 1.000000 max: 2.5492e-03 mean: 9.3754e-06 +[Cossim] SeanetInit cos: 1.000000 max: 4.1014e-04 mean: 3.4146e-06 +[Cossim] SeanetResnet0 cos: 0.999987 max: 1.9526e-03 mean: 9.4296e-05 +[Cossim] SeanetStage0 cos: 0.999985 max: 4.2238e-02 mean: 6.5089e-04 +[Cossim] SeanetStage1 cos: 0.999866 max: 7.7454e-01 mean: 4.9543e-03 +[Cossim] SeanetStage3 cos: 0.999995 max: 1.4657e+00 mean: 3.8722e-02 +[Cossim] SeanetOut cos: 0.999963 max: 4.0791e-01 mean: 1.6984e-02 +[Cossim] EncTransformer cos: 0.999932 max: 3.3955e-01 mean: 1.5945e-02 +[Cossim] CodecPreFSQ cos: 0.999951 max: 4.5186e-01 mean: 2.6992e-02 +[Cossim] SpkFrontend cos: 1.000000 max: 2.6600e-03 mean: 1.1964e-04 +[Cossim] SpkBlock3 cos: 1.000000 max: 1.2137e-02 mean: 5.2077e-04 +[Cossim] SpkMFA cos: 1.000000 max: 8.9911e-03 mean: 1.3077e-04 +[Cossim] SpkASP cos: 1.000000 max: 2.2933e-04 mean: 1.7414e-05 +[Cossim] SpeakerEmb cos: 1.000000 max: 7.9088e-05 mean: 1.3439e-05 +[Cossim] CodesFull exact: 0.20% (1008 values) +[Cossim] Audio cos: 0.003500 +[Cossim] WAV stft_cos: 0.135950 samples: 120960 diff --git a/tests/customvoice-CUDA0-BF16.log b/tests/customvoice-CUDA0-BF16.log new file mode 100644 index 0000000..c686a69 --- /dev/null +++ b/tests/customvoice-CUDA0-BF16.log @@ -0,0 +1,29 @@ +ggml_cuda_init: found 1 CUDA devices (Total VRAM: 97247 MiB): + Device 0: NVIDIA RTX PRO 6000 Blackwell Workstation Edition, compute capability 12.0, VMM: yes, VRAM: 97247 MiB +load_backend: loaded CUDA backend from /mnt/workspace/qwentts.cpp/build/libggml-cuda.so +ggml_vulkan: Found 1 Vulkan devices: +ggml_vulkan: 0 = NVIDIA RTX PRO 6000 Blackwell Workstation Edition (NVIDIA) | uma: 0 | fp16: 1 | bf16: 0 | warp size: 32 | shared memory: 49152 | int dot: 1 | matrix cores: NV_coopmat2 +load_backend: loaded Vulkan backend from /mnt/workspace/qwentts.cpp/build/libggml-vulkan.so +load_backend: loaded CPU backend from /mnt/workspace/qwentts.cpp/build/libggml-cpu-zen4.so +[Load] Talker backend: CUDA0 (CPU threads: 16) +[GGUF] ../models/qwen-talker-1.7b-customvoice-BF16.gguf: 404 tensors, data at offset 5949824 +[WeightCtx] Loaded 316 tensors, 3322.0 MB into backend +[Talker] Loaded: 28 layers, hidden 2048, heads 16/8, head_dim 128, FFN 6144, RoPE theta 1000000, mrope sections [24,20,20] interleaved=0 +[WeightCtx] Loaded 88 tensors, 334.1 MB into backend +[CodePredictor] Loaded: 5 layers, hidden 1024, heads 16/8, head_dim 128, FFN 3072, RoPE theta 1000000, 15 acoustic codebooks (vocab 2048 each), mtp_proj linear +[GGUF] ../models/qwen-tokenizer-12hz-BF16.gguf: 398 tensors, data at offset 29760 +[WeightCtx] Loaded 18 tensors, 33.0 MB into backend +[Quantizer] Loaded: 16 codebooks (1 semantic + 15 acoustic), 2048 entries x 256 dim, hidden 512 +[WeightCtx] Loaded 93 tensors, 58.1 MB into backend +[Transformer] Loaded: 8 layers, hidden 512, heads 16/16, head_dim 64, FFN 1024, RoPE theta 10000, sliding window 72 +[CausalTransConv] FATAL: 'tok_dec.upsample.0.conv.weight' expected F32 or F16, got type 30 +[Input] Prompt: 100 chars: qwentts.cpp is a minimal C++17 and GGML port of Qwen3-TTS fo... +[Input] Speaker: vivian +[Input] Lang: english Seed: 42 MaxNewTokens: 64 +[Input] Mode: greedy +[Python] Device: cuda +[Python] InputIds shape: (1, 38) +[Python] Codes shape: (63, 16) (T_frames, num_code_groups) +[Python] Audio: 120960 samples 24000 Hz 5.04s -> python/customvoice/customvoice-python.wav +[Quant] BF16 -> ../models/qwen-talker-1.7b-customvoice-BF16.gguf + ../models/qwen-tokenizer-12hz-BF16.gguf +[GGML] Cmd: ../build/qwen-tts --model ../models/qwen-talker-1.7b-customvoice-BF16.gguf --codec ../models/qwen-tokenizer-12hz-BF16.gguf --seed 42 --text qwentts.cpp is a minimal C++17 and GGML port of Qwen3-TTS for zero shot multilingual text to speech. --speaker vivian --lang english --max-new 64 --dump cpp/customvoice -o cpp/customvoice/customvoice-cpp.wav --greedy diff --git a/tests/customvoice-CUDA0-F32.log b/tests/customvoice-CUDA0-F32.log new file mode 100644 index 0000000..760def5 --- /dev/null +++ b/tests/customvoice-CUDA0-F32.log @@ -0,0 +1,124 @@ +ggml_cuda_init: found 1 CUDA devices (Total VRAM: 97247 MiB): + Device 0: NVIDIA RTX PRO 6000 Blackwell Workstation Edition, compute capability 12.0, VMM: yes, VRAM: 97247 MiB +load_backend: loaded CUDA backend from /mnt/workspace/qwentts.cpp/build/libggml-cuda.so +ggml_vulkan: Found 1 Vulkan devices: +ggml_vulkan: 0 = NVIDIA RTX PRO 6000 Blackwell Workstation Edition (NVIDIA) | uma: 0 | fp16: 1 | bf16: 0 | warp size: 32 | shared memory: 49152 | int dot: 1 | matrix cores: NV_coopmat2 +load_backend: loaded Vulkan backend from /mnt/workspace/qwentts.cpp/build/libggml-vulkan.so +load_backend: loaded CPU backend from /mnt/workspace/qwentts.cpp/build/libggml-cpu-zen4.so +[Load] Talker backend: CUDA0 (CPU threads: 16) +[GGUF] ../models/qwen-talker-1.7b-customvoice-F32.gguf: 404 tensors, data at offset 5949728 +[WeightCtx] Loaded 316 tensors, 6643.5 MB into backend +[Talker] Loaded: 28 layers, hidden 2048, heads 16/8, head_dim 128, FFN 6144, RoPE theta 1000000, mrope sections [24,20,20] interleaved=0 +[WeightCtx] Loaded 88 tensors, 668.1 MB into backend +[CodePredictor] Loaded: 5 layers, hidden 1024, heads 16/8, head_dim 128, FFN 3072, RoPE theta 1000000, 15 acoustic codebooks (vocab 2048 each), mtp_proj linear +[GGUF] ../models/qwen-tokenizer-12hz-F32.gguf: 398 tensors, data at offset 29664 +[WeightCtx] Loaded 18 tensors, 33.0 MB into backend +[Quantizer] Loaded: 16 codebooks (1 semantic + 15 acoustic), 2048 entries x 256 dim, hidden 512 +[WeightCtx] Loaded 93 tensors, 116.1 MB into backend +[Transformer] Loaded: 8 layers, hidden 512, heads 16/16, head_dim 64, FFN 1024, RoPE theta 10000, sliding window 72 +[WeightCtx] Loaded 22 tensors, 80.1 MB into backend +[Upsample] Loaded: 2 blocks (2x ratio per block), channels 1024, dwconv kernel 7 +[WeightCtx] Loaded 118 tensors, 199.8 MB into backend +[DAC] Loaded: 4 blocks (strides 8/5/4/3), 24 kHz mono out, weights 199.8 MB +[WeightCtx] Loaded 2 tensors, 6.0 MB into backend +[WeightCtx] Loaded 28 tensors, 48.2 MB into backend +[SEANet] Loaded: 4 stages (ratios 4/5/6/8), 64 -> 512 channels, weights 48.2 MB +[WeightCtx] Loaded 96 tensors, 96.1 MB into backend +[EncTransformer] Loaded: 8 layers, hidden 512, heads 8/8, head_dim 64, FFN 2048, RoPE theta 10000 +[WeightCtx] Loaded 1 tensors, 4.0 MB into backend +[EncDownsample] Loaded: k=4 stride=2, 512 -> 512 channels, weights 4.0 MB +[WeightCtx] Loaded 20 tensors, 34.0 MB into backend +[EncQuantizer] Loaded: 16 codebooks (1 semantic + 15 acoustic), 2048 entries x 256 dim, hidden 512, weights 34.0 MB +[Pipeline] Ready: hop 1920 samples @ 24000 Hz mono, 16 codebooks @ 12.5 Hz +[KVCache] Allocated: 28 layers, 8 KV heads, head_dim 128, max_seq_len 4096 -> 896 MB +[KVCache] Allocated: 5 layers, 8 KV heads, head_dim 128, max_seq_len 16 -> 0 MB +[Pipeline] Loaded: arch=1b7 variant=custom_voice tokenizer=qwen3_tts_tokenizer_12hz codebooks=16 speaker_encoder=absent speakers=9 +[BPE] Loaded from GGUF: 151676 vocab, 151291 merges, eos_id=151643 +[BPE] Registered 5 arch special tokens (total specials=6) +[Prompt] Built: 38 ids, N_text=30, N_instruct=0, T_ctx=41, hidden=2048, lang=english (id=2050), speaker=vivian (id=3065) ref_spk_emb=no icl=no +[Debug] prompt-ids: [38] first4: 151644.000000 77091.000000 198.000000 80.000000 +[Debug] talker-input-embed: [41, 2048] first4: 0.021550 -0.009399 0.007126 -0.019719 +[Debug] trailing-text-hidden: [1, 2048] first4: -0.003715 0.008406 -0.005009 -0.000409 +[Debug] tts-pad-embed: [2048] first4: -0.003715 0.008406 -0.005009 -0.000409 +[Debug] talker-hidden-prefill-l0: [41, 2048] first4: -0.383106 -0.060893 0.002297 -0.013863 +[Debug] talker-hidden-prefill-l7: [41, 2048] first4: -1.343934 0.253801 1.586739 2.194738 +[Debug] talker-hidden-prefill-l14: [41, 2048] first4: -1.103492 0.416971 1.686401 2.140801 +[Debug] talker-hidden-prefill-l21: [41, 2048] first4: -0.674541 0.324558 2.041308 1.586615 +[Debug] talker-hidden-prefill-l27: [41, 2048] first4: -0.924734 -24.438322 -2.204347 26.094097 +[Debug] talker-hidden-prefill-final: [41, 2048] first4: -0.028519 -0.787022 -0.063169 0.733522 +[Debug] talker-logits-prefill: [3072] first4: -0.712860 -8.073814 -2.787057 -5.005689 +[Sample] step=0 c0=1995 u=-1.0000000000 subseq=0 +[Sample-CP] g=0 c=1159 u=-1.0000000000 subseq=1 +[Sample-CP] g=1 c=355 u=-1.0000000000 subseq=2 +[Sample-CP] g=2 c=22 u=-1.0000000000 subseq=3 +[Sample-CP] g=3 c=1174 u=-1.0000000000 subseq=4 +[Sample-CP] g=4 c=1093 u=-1.0000000000 subseq=5 +[Sample-CP] g=5 c=625 u=-1.0000000000 subseq=6 +[Sample-CP] g=6 c=1814 u=-1.0000000000 subseq=7 +[Sample-CP] g=7 c=1058 u=-1.0000000000 subseq=8 +[Sample-CP] g=8 c=905 u=-1.0000000000 subseq=9 +[Sample-CP] g=9 c=1846 u=-1.0000000000 subseq=10 +[Sample-CP] g=10 c=1247 u=-1.0000000000 subseq=11 +[Sample-CP] g=11 c=1677 u=-1.0000000000 subseq=12 +[Sample-CP] g=12 c=889 u=-1.0000000000 subseq=13 +[Sample-CP] g=13 c=812 u=-1.0000000000 subseq=14 +[Sample-CP] g=14 c=901 u=-1.0000000000 subseq=15 +[Debug] codes-step0: [16] first4: 1995.000000 1159.000000 355.000000 22.000000 +[Debug] next-emb-step0: [2048] first4: -0.039671 -0.032533 -0.000920 0.180072 +[Debug] talker-hidden-step1: [2048] first4: 0.528143 -1.855237 3.012431 -1.174793 +[Sample] step=1 c0=259 u=-1.0000000000 subseq=16 +[Sample-CP] g=0 c=259 u=-1.0000000000 subseq=17 +[Sample-CP] g=1 c=1160 u=-1.0000000000 subseq=18 +[Sample-CP] g=2 c=1605 u=-1.0000000000 subseq=19 +[Sample-CP] g=3 c=1191 u=-1.0000000000 subseq=20 +[Sample-CP] g=4 c=667 u=-1.0000000000 subseq=21 +[Sample-CP] g=5 c=1614 u=-1.0000000000 subseq=22 +[Sample-CP] g=6 c=943 u=-1.0000000000 subseq=23 +[Sample-CP] g=7 c=1177 u=-1.0000000000 subseq=24 +[Sample-CP] g=8 c=1907 u=-1.0000000000 subseq=25 +[Sample-CP] g=9 c=944 u=-1.0000000000 subseq=26 +[Sample-CP] g=10 c=126 u=-1.0000000000 subseq=27 +[Sample-CP] g=11 c=1711 u=-1.0000000000 subseq=28 +[Sample-CP] g=12 c=99 u=-1.0000000000 subseq=29 +[Sample-CP] g=13 c=1070 u=-1.0000000000 subseq=30 +[Sample-CP] g=14 c=194 u=-1.0000000000 subseq=31 +[Pipeline] Generated 8 frames +[Pipeline] Generated 16 frames +[Pipeline] Generated 24 frames +[Pipeline] Generated 32 frames +[Pipeline] Generated 40 frames +[Pipeline] Generated 48 frames +[Pipeline] Generated 56 frames +[Pipeline] Generated 64 frames +[Pipeline] Generation done : 64 frames +[Debug] codes-full: [64, 16] first4: 1995.000000 1159.000000 355.000000 22.000000 +[Debug] output-audio: [122880] first4: 0.000015 0.000017 0.000015 0.000017 +[WAV] Wrote cpp/customvoice/customvoice-cpp.wav: 122880 samples, 24000 Hz, mono S16 +[Pipeline] Wrote 122880 samples (5.12 s) -> cpp/customvoice/customvoice-cpp.wav +[Input] Prompt: 100 chars: qwentts.cpp is a minimal C++17 and GGML port of Qwen3-TTS fo... +[Input] Speaker: vivian +[Input] Lang: english Seed: 42 MaxNewTokens: 64 +[Input] Mode: greedy +[Python] Device: cuda +[Python] InputIds shape: (1, 38) +[Python] Codes shape: (63, 16) (T_frames, num_code_groups) +[Python] Audio: 120960 samples 24000 Hz 5.04s -> python/customvoice/customvoice-python.wav +[Quant] F32 -> ../models/qwen-talker-1.7b-customvoice-F32.gguf + ../models/qwen-tokenizer-12hz-F32.gguf +[GGML] Cmd: ../build/qwen-tts --model ../models/qwen-talker-1.7b-customvoice-F32.gguf --codec ../models/qwen-tokenizer-12hz-F32.gguf --seed 42 --text qwentts.cpp is a minimal C++17 and GGML port of Qwen3-TTS for zero shot multilingual text to speech. --speaker vivian --lang english --max-new 64 --dump cpp/customvoice -o cpp/customvoice/customvoice-cpp.wav --greedy +[GGML] Audio: 122880 samples 24000 Hz 5.12s -> cpp/customvoice/customvoice-cpp.wav +[Cossim] PromptIDs exact: 100.00% (38 values) +[Cossim] Embed cos: 1.000000 max: 1.9073e-06 mean: 1.8764e-08 +[Cossim] TrailingText cos: 1.000000 max: 1.3709e-06 mean: 9.3658e-09 +[Cossim] TTSPadEmbed cos: 1.000000 max: 1.3709e-06 mean: 9.3658e-09 +[Cossim] L0 cos: 1.000000 max: 3.0518e-05 mean: 7.9042e-08 +[Cossim] L7 cos: 1.000000 max: 4.8828e-04 mean: 4.0060e-07 +[Cossim] L14 cos: 1.000000 max: 4.8828e-04 mean: 1.0316e-06 +[Cossim] L21 cos: 1.000000 max: 4.8828e-04 mean: 3.9015e-06 +[Cossim] L27 cos: 1.000000 max: 3.9062e-03 mean: 1.6371e-05 +[Cossim] Final cos: 1.000000 max: 1.7715e-04 mean: 1.2082e-06 +[Cossim] Logits cos: 1.000000 max: 1.2875e-05 mean: 2.3994e-06 +[Cossim] NextEmbStep0 cos: 1.000000 max: 1.3709e-06 mean: 9.5057e-09 +[Cossim] TalkerHiddenStep1 cos: 1.000000 max: 3.0518e-05 mean: 2.1401e-06 +[Cossim] CodesFull exact: 100.00% (1008 values) +[Cossim] Audio cos: 0.999999 +[Cossim] WAV stft_cos: 1.000000 samples: 120960 diff --git a/tests/customvoice-CUDA0-Q4_K_M.log b/tests/customvoice-CUDA0-Q4_K_M.log new file mode 100644 index 0000000..d782057 --- /dev/null +++ b/tests/customvoice-CUDA0-Q4_K_M.log @@ -0,0 +1,124 @@ +ggml_cuda_init: found 1 CUDA devices (Total VRAM: 97247 MiB): + Device 0: NVIDIA RTX PRO 6000 Blackwell Workstation Edition, compute capability 12.0, VMM: yes, VRAM: 97247 MiB +load_backend: loaded CUDA backend from /mnt/workspace/qwentts.cpp/build/libggml-cuda.so +ggml_vulkan: Found 1 Vulkan devices: +ggml_vulkan: 0 = NVIDIA RTX PRO 6000 Blackwell Workstation Edition (NVIDIA) | uma: 0 | fp16: 1 | bf16: 0 | warp size: 32 | shared memory: 49152 | int dot: 1 | matrix cores: NV_coopmat2 +load_backend: loaded Vulkan backend from /mnt/workspace/qwentts.cpp/build/libggml-vulkan.so +load_backend: loaded CPU backend from /mnt/workspace/qwentts.cpp/build/libggml-cpu-zen4.so +[Load] Talker backend: CUDA0 (CPU threads: 16) +[GGUF] ../models/qwen-talker-1.7b-customvoice-Q4_K_M.gguf: 404 tensors, data at offset 5949824 +[WeightCtx] Loaded 316 tensors, 1012.7 MB into backend +[Talker] Loaded: 28 layers, hidden 2048, heads 16/8, head_dim 128, FFN 6144, RoPE theta 1000000, mrope sections [24,20,20] interleaved=0 +[WeightCtx] Loaded 88 tensors, 109.5 MB into backend +[CodePredictor] Loaded: 5 layers, hidden 1024, heads 16/8, head_dim 128, FFN 3072, RoPE theta 1000000, 15 acoustic codebooks (vocab 2048 each), mtp_proj linear +[GGUF] ../models/qwen-tokenizer-12hz-Q4_K_M.gguf: 398 tensors, data at offset 29760 +[WeightCtx] Loaded 18 tensors, 33.0 MB into backend +[Quantizer] Loaded: 16 codebooks (1 semantic + 15 acoustic), 2048 entries x 256 dim, hidden 512 +[WeightCtx] Loaded 93 tensors, 16.4 MB into backend +[Transformer] Loaded: 8 layers, hidden 512, heads 16/16, head_dim 64, FFN 1024, RoPE theta 10000, sliding window 72 +[WeightCtx] Loaded 22 tensors, 25.1 MB into backend +[Upsample] Loaded: 2 blocks (2x ratio per block), channels 1024, dwconv kernel 7 +[WeightCtx] Loaded 118 tensors, 142.9 MB into backend +[DAC] Loaded: 4 blocks (strides 8/5/4/3), 24 kHz mono out, weights 142.9 MB +[WeightCtx] Loaded 2 tensors, 3.0 MB into backend +[WeightCtx] Loaded 28 tensors, 24.1 MB into backend +[SEANet] Loaded: 4 stages (ratios 4/5/6/8), 64 -> 512 channels, weights 24.1 MB +[WeightCtx] Loaded 96 tensors, 13.6 MB into backend +[EncTransformer] Loaded: 8 layers, hidden 512, heads 8/8, head_dim 64, FFN 2048, RoPE theta 10000 +[WeightCtx] Loaded 1 tensors, 2.0 MB into backend +[EncDownsample] Loaded: k=4 stride=2, 512 -> 512 channels, weights 2.0 MB +[WeightCtx] Loaded 20 tensors, 34.0 MB into backend +[EncQuantizer] Loaded: 16 codebooks (1 semantic + 15 acoustic), 2048 entries x 256 dim, hidden 512, weights 34.0 MB +[Pipeline] Ready: hop 1920 samples @ 24000 Hz mono, 16 codebooks @ 12.5 Hz +[KVCache] Allocated: 28 layers, 8 KV heads, head_dim 128, max_seq_len 4096 -> 896 MB +[KVCache] Allocated: 5 layers, 8 KV heads, head_dim 128, max_seq_len 16 -> 0 MB +[Pipeline] Loaded: arch=1b7 variant=custom_voice tokenizer=qwen3_tts_tokenizer_12hz codebooks=16 speaker_encoder=absent speakers=9 +[BPE] Loaded from GGUF: 151676 vocab, 151291 merges, eos_id=151643 +[BPE] Registered 5 arch special tokens (total specials=6) +[Prompt] Built: 38 ids, N_text=30, N_instruct=0, T_ctx=41, hidden=2048, lang=english (id=2050), speaker=vivian (id=3065) ref_spk_emb=no icl=no +[Debug] prompt-ids: [38] first4: 151644.000000 77091.000000 198.000000 80.000000 +[Debug] talker-input-embed: [41, 2048] first4: 0.020406 -0.009921 0.006129 -0.021787 +[Debug] trailing-text-hidden: [1, 2048] first4: -0.003884 0.008386 -0.004502 -0.000786 +[Debug] tts-pad-embed: [2048] first4: -0.003884 0.008386 -0.004502 -0.000786 +[Debug] talker-hidden-prefill-l0: [41, 2048] first4: -0.346090 -0.051518 -0.040558 -0.001631 +[Debug] talker-hidden-prefill-l7: [41, 2048] first4: 8.658912 -0.418502 6.296154 14.764099 +[Debug] talker-hidden-prefill-l14: [41, 2048] first4: 8.646750 -0.138280 6.456070 14.578581 +[Debug] talker-hidden-prefill-l21: [41, 2048] first4: 8.547407 0.151086 6.711766 14.174829 +[Debug] talker-hidden-prefill-l27: [41, 2048] first4: 10.425589 -28.933830 -0.986194 39.437996 +[Debug] talker-hidden-prefill-final: [41, 2048] first4: 0.320198 -0.927956 -0.028144 1.104057 +[Debug] talker-logits-prefill: [3072] first4: -0.933804 -8.354171 -1.749861 -5.627195 +[Sample] step=0 c0=1995 u=-1.0000000000 subseq=0 +[Sample-CP] g=0 c=1159 u=-1.0000000000 subseq=1 +[Sample-CP] g=1 c=355 u=-1.0000000000 subseq=2 +[Sample-CP] g=2 c=22 u=-1.0000000000 subseq=3 +[Sample-CP] g=3 c=1174 u=-1.0000000000 subseq=4 +[Sample-CP] g=4 c=1093 u=-1.0000000000 subseq=5 +[Sample-CP] g=5 c=625 u=-1.0000000000 subseq=6 +[Sample-CP] g=6 c=1814 u=-1.0000000000 subseq=7 +[Sample-CP] g=7 c=1058 u=-1.0000000000 subseq=8 +[Sample-CP] g=8 c=905 u=-1.0000000000 subseq=9 +[Sample-CP] g=9 c=1846 u=-1.0000000000 subseq=10 +[Sample-CP] g=10 c=1247 u=-1.0000000000 subseq=11 +[Sample-CP] g=11 c=1677 u=-1.0000000000 subseq=12 +[Sample-CP] g=12 c=889 u=-1.0000000000 subseq=13 +[Sample-CP] g=13 c=812 u=-1.0000000000 subseq=14 +[Sample-CP] g=14 c=901 u=-1.0000000000 subseq=15 +[Debug] codes-step0: [16] first4: 1995.000000 1159.000000 355.000000 22.000000 +[Debug] next-emb-step0: [2048] first4: -0.041045 -0.031131 0.000245 0.179301 +[Debug] talker-hidden-step1: [2048] first4: 2.075958 -1.768331 3.046258 -1.300610 +[Sample] step=1 c0=259 u=-1.0000000000 subseq=16 +[Sample-CP] g=0 c=259 u=-1.0000000000 subseq=17 +[Sample-CP] g=1 c=821 u=-1.0000000000 subseq=18 +[Sample-CP] g=2 c=1605 u=-1.0000000000 subseq=19 +[Sample-CP] g=3 c=362 u=-1.0000000000 subseq=20 +[Sample-CP] g=4 c=867 u=-1.0000000000 subseq=21 +[Sample-CP] g=5 c=1042 u=-1.0000000000 subseq=22 +[Sample-CP] g=6 c=43 u=-1.0000000000 subseq=23 +[Sample-CP] g=7 c=1617 u=-1.0000000000 subseq=24 +[Sample-CP] g=8 c=484 u=-1.0000000000 subseq=25 +[Sample-CP] g=9 c=294 u=-1.0000000000 subseq=26 +[Sample-CP] g=10 c=347 u=-1.0000000000 subseq=27 +[Sample-CP] g=11 c=125 u=-1.0000000000 subseq=28 +[Sample-CP] g=12 c=12 u=-1.0000000000 subseq=29 +[Sample-CP] g=13 c=1339 u=-1.0000000000 subseq=30 +[Sample-CP] g=14 c=570 u=-1.0000000000 subseq=31 +[Pipeline] Generated 8 frames +[Pipeline] Generated 16 frames +[Pipeline] Generated 24 frames +[Pipeline] Generated 32 frames +[Pipeline] Generated 40 frames +[Pipeline] Generated 48 frames +[Pipeline] Generated 56 frames +[Pipeline] Generated 64 frames +[Pipeline] Generation done : 64 frames +[Debug] codes-full: [64, 16] first4: 1995.000000 1159.000000 355.000000 22.000000 +[Debug] output-audio: [122880] first4: 0.000014 0.000015 0.000012 0.000016 +[WAV] Wrote cpp/customvoice/customvoice-cpp.wav: 122880 samples, 24000 Hz, mono S16 +[Pipeline] Wrote 122880 samples (5.12 s) -> cpp/customvoice/customvoice-cpp.wav +[Input] Prompt: 100 chars: qwentts.cpp is a minimal C++17 and GGML port of Qwen3-TTS fo... +[Input] Speaker: vivian +[Input] Lang: english Seed: 42 MaxNewTokens: 64 +[Input] Mode: greedy +[Python] Device: cuda +[Python] InputIds shape: (1, 38) +[Python] Codes shape: (63, 16) (T_frames, num_code_groups) +[Python] Audio: 120960 samples 24000 Hz 5.04s -> python/customvoice/customvoice-python.wav +[Quant] Q4_K_M -> ../models/qwen-talker-1.7b-customvoice-Q4_K_M.gguf + ../models/qwen-tokenizer-12hz-Q4_K_M.gguf +[GGML] Cmd: ../build/qwen-tts --model ../models/qwen-talker-1.7b-customvoice-Q4_K_M.gguf --codec ../models/qwen-tokenizer-12hz-Q4_K_M.gguf --seed 42 --text qwentts.cpp is a minimal C++17 and GGML port of Qwen3-TTS for zero shot multilingual text to speech. --speaker vivian --lang english --max-new 64 --dump cpp/customvoice -o cpp/customvoice/customvoice-cpp.wav --greedy +[GGML] Audio: 122880 samples 24000 Hz 5.12s -> cpp/customvoice/customvoice-cpp.wav +[Cossim] PromptIDs exact: 100.00% (38 values) +[Cossim] Embed cos: 0.999698 max: 1.6597e-01 mean: 1.0155e-03 +[Cossim] TrailingText cos: 0.999971 max: 1.2941e-03 mean: 2.2429e-04 +[Cossim] TTSPadEmbed cos: 0.999971 max: 1.2941e-03 mean: 2.2429e-04 +[Cossim] L0 cos: 0.999289 max: 4.0790e-01 mean: 6.3178e-03 +[Cossim] L7 cos: 0.997569 max: 7.2079e+01 mean: 5.9714e-01 +[Cossim] L14 cos: 0.997551 max: 7.1728e+01 mean: 7.1910e-01 +[Cossim] L21 cos: 0.997052 max: 7.5375e+01 mean: 1.3366e+00 +[Cossim] L27 cos: 0.983419 max: 1.1523e+03 mean: 5.6376e+00 +[Cossim] Final cos: 0.901694 max: 7.1360e+01 mean: 4.2717e-01 +[Cossim] Logits cos: 0.990653 max: 2.9293e+00 mean: 4.4712e-01 +[Cossim] NextEmbStep0 cos: 0.999915 max: 3.2489e-03 mean: 7.7490e-04 +[Cossim] TalkerHiddenStep1 cos: 0.962648 max: 2.3658e+00 mean: 4.7666e-01 +[Cossim] CodesFull exact: 3.97% (1008 values) +[Cossim] Audio cos: 0.026175 +[Cossim] WAV stft_cos: 0.114082 samples: 120960 diff --git a/tests/customvoice-CUDA0-Q8_0.log b/tests/customvoice-CUDA0-Q8_0.log new file mode 100644 index 0000000..9ec213e --- /dev/null +++ b/tests/customvoice-CUDA0-Q8_0.log @@ -0,0 +1,124 @@ +ggml_cuda_init: found 1 CUDA devices (Total VRAM: 97247 MiB): + Device 0: NVIDIA RTX PRO 6000 Blackwell Workstation Edition, compute capability 12.0, VMM: yes, VRAM: 97247 MiB +load_backend: loaded CUDA backend from /mnt/workspace/qwentts.cpp/build/libggml-cuda.so +ggml_vulkan: Found 1 Vulkan devices: +ggml_vulkan: 0 = NVIDIA RTX PRO 6000 Blackwell Workstation Edition (NVIDIA) | uma: 0 | fp16: 1 | bf16: 0 | warp size: 32 | shared memory: 49152 | int dot: 1 | matrix cores: NV_coopmat2 +load_backend: loaded Vulkan backend from /mnt/workspace/qwentts.cpp/build/libggml-vulkan.so +load_backend: loaded CPU backend from /mnt/workspace/qwentts.cpp/build/libggml-cpu-zen4.so +[Load] Talker backend: CUDA0 (CPU threads: 16) +[GGUF] ../models/qwen-talker-1.7b-customvoice-Q8_0.gguf: 404 tensors, data at offset 5949824 +[WeightCtx] Loaded 316 tensors, 1765.0 MB into backend +[Talker] Loaded: 28 layers, hidden 2048, heads 16/8, head_dim 128, FFN 6144, RoPE theta 1000000, mrope sections [24,20,20] interleaved=0 +[WeightCtx] Loaded 88 tensors, 177.5 MB into backend +[CodePredictor] Loaded: 5 layers, hidden 1024, heads 16/8, head_dim 128, FFN 3072, RoPE theta 1000000, 15 acoustic codebooks (vocab 2048 each), mtp_proj linear +[GGUF] ../models/qwen-tokenizer-12hz-Q8_0.gguf: 398 tensors, data at offset 29760 +[WeightCtx] Loaded 18 tensors, 33.0 MB into backend +[Quantizer] Loaded: 16 codebooks (1 semantic + 15 acoustic), 2048 entries x 256 dim, hidden 512 +[WeightCtx] Loaded 93 tensors, 30.9 MB into backend +[Transformer] Loaded: 8 layers, hidden 512, heads 16/16, head_dim 64, FFN 1024, RoPE theta 10000, sliding window 72 +[WeightCtx] Loaded 22 tensors, 33.1 MB into backend +[Upsample] Loaded: 2 blocks (2x ratio per block), channels 1024, dwconv kernel 7 +[WeightCtx] Loaded 118 tensors, 142.9 MB into backend +[DAC] Loaded: 4 blocks (strides 8/5/4/3), 24 kHz mono out, weights 142.9 MB +[WeightCtx] Loaded 2 tensors, 3.0 MB into backend +[WeightCtx] Loaded 28 tensors, 24.1 MB into backend +[SEANet] Loaded: 4 stages (ratios 4/5/6/8), 64 -> 512 channels, weights 24.1 MB +[WeightCtx] Loaded 96 tensors, 25.6 MB into backend +[EncTransformer] Loaded: 8 layers, hidden 512, heads 8/8, head_dim 64, FFN 2048, RoPE theta 10000 +[WeightCtx] Loaded 1 tensors, 2.0 MB into backend +[EncDownsample] Loaded: k=4 stride=2, 512 -> 512 channels, weights 2.0 MB +[WeightCtx] Loaded 20 tensors, 34.0 MB into backend +[EncQuantizer] Loaded: 16 codebooks (1 semantic + 15 acoustic), 2048 entries x 256 dim, hidden 512, weights 34.0 MB +[Pipeline] Ready: hop 1920 samples @ 24000 Hz mono, 16 codebooks @ 12.5 Hz +[KVCache] Allocated: 28 layers, 8 KV heads, head_dim 128, max_seq_len 4096 -> 896 MB +[KVCache] Allocated: 5 layers, 8 KV heads, head_dim 128, max_seq_len 16 -> 0 MB +[Pipeline] Loaded: arch=1b7 variant=custom_voice tokenizer=qwen3_tts_tokenizer_12hz codebooks=16 speaker_encoder=absent speakers=9 +[BPE] Loaded from GGUF: 151676 vocab, 151291 merges, eos_id=151643 +[BPE] Registered 5 arch special tokens (total specials=6) +[Prompt] Built: 38 ids, N_text=30, N_instruct=0, T_ctx=41, hidden=2048, lang=english (id=2050), speaker=vivian (id=3065) ref_spk_emb=no icl=no +[Debug] prompt-ids: [38] first4: 151644.000000 77091.000000 198.000000 80.000000 +[Debug] talker-input-embed: [41, 2048] first4: 0.021601 -0.009355 0.007161 -0.019744 +[Debug] trailing-text-hidden: [1, 2048] first4: -0.003786 0.008339 -0.005023 -0.000287 +[Debug] tts-pad-embed: [2048] first4: -0.003786 0.008339 -0.005023 -0.000287 +[Debug] talker-hidden-prefill-l0: [41, 2048] first4: -0.385398 -0.059395 0.003227 -0.015955 +[Debug] talker-hidden-prefill-l7: [41, 2048] first4: -2.095828 0.136483 2.070587 1.095430 +[Debug] talker-hidden-prefill-l14: [41, 2048] first4: -1.841196 0.297595 2.174365 1.049933 +[Debug] talker-hidden-prefill-l21: [41, 2048] first4: -1.422778 0.231152 2.553845 0.556400 +[Debug] talker-hidden-prefill-l27: [41, 2048] first4: -1.260465 -24.832352 -1.697680 25.083447 +[Debug] talker-hidden-prefill-final: [41, 2048] first4: -0.038955 -0.801399 -0.048752 0.706600 +[Debug] talker-logits-prefill: [3072] first4: -0.845418 -7.906702 -2.704062 -4.724893 +[Sample] step=0 c0=1995 u=-1.0000000000 subseq=0 +[Sample-CP] g=0 c=1159 u=-1.0000000000 subseq=1 +[Sample-CP] g=1 c=355 u=-1.0000000000 subseq=2 +[Sample-CP] g=2 c=22 u=-1.0000000000 subseq=3 +[Sample-CP] g=3 c=1174 u=-1.0000000000 subseq=4 +[Sample-CP] g=4 c=1093 u=-1.0000000000 subseq=5 +[Sample-CP] g=5 c=625 u=-1.0000000000 subseq=6 +[Sample-CP] g=6 c=1814 u=-1.0000000000 subseq=7 +[Sample-CP] g=7 c=1058 u=-1.0000000000 subseq=8 +[Sample-CP] g=8 c=905 u=-1.0000000000 subseq=9 +[Sample-CP] g=9 c=1846 u=-1.0000000000 subseq=10 +[Sample-CP] g=10 c=1247 u=-1.0000000000 subseq=11 +[Sample-CP] g=11 c=1677 u=-1.0000000000 subseq=12 +[Sample-CP] g=12 c=889 u=-1.0000000000 subseq=13 +[Sample-CP] g=13 c=812 u=-1.0000000000 subseq=14 +[Sample-CP] g=14 c=901 u=-1.0000000000 subseq=15 +[Debug] codes-step0: [16] first4: 1995.000000 1159.000000 355.000000 22.000000 +[Debug] next-emb-step0: [2048] first4: -0.039680 -0.032027 -0.001058 0.180065 +[Debug] talker-hidden-step1: [2048] first4: 0.538039 -1.838869 3.074217 -1.235840 +[Sample] step=1 c0=259 u=-1.0000000000 subseq=16 +[Sample-CP] g=0 c=259 u=-1.0000000000 subseq=17 +[Sample-CP] g=1 c=1160 u=-1.0000000000 subseq=18 +[Sample-CP] g=2 c=1605 u=-1.0000000000 subseq=19 +[Sample-CP] g=3 c=1191 u=-1.0000000000 subseq=20 +[Sample-CP] g=4 c=667 u=-1.0000000000 subseq=21 +[Sample-CP] g=5 c=1614 u=-1.0000000000 subseq=22 +[Sample-CP] g=6 c=943 u=-1.0000000000 subseq=23 +[Sample-CP] g=7 c=1177 u=-1.0000000000 subseq=24 +[Sample-CP] g=8 c=1907 u=-1.0000000000 subseq=25 +[Sample-CP] g=9 c=944 u=-1.0000000000 subseq=26 +[Sample-CP] g=10 c=126 u=-1.0000000000 subseq=27 +[Sample-CP] g=11 c=1711 u=-1.0000000000 subseq=28 +[Sample-CP] g=12 c=99 u=-1.0000000000 subseq=29 +[Sample-CP] g=13 c=1070 u=-1.0000000000 subseq=30 +[Sample-CP] g=14 c=194 u=-1.0000000000 subseq=31 +[Pipeline] Generated 8 frames +[Pipeline] Generated 16 frames +[Pipeline] Generated 24 frames +[Pipeline] Generated 32 frames +[Pipeline] Generated 40 frames +[Pipeline] Generated 48 frames +[Pipeline] Generated 56 frames +[Pipeline] Generated 64 frames +[Pipeline] Generation done : 64 frames +[Debug] codes-full: [64, 16] first4: 1995.000000 1159.000000 355.000000 22.000000 +[Debug] output-audio: [122880] first4: 0.000014 0.000017 0.000015 0.000016 +[WAV] Wrote cpp/customvoice/customvoice-cpp.wav: 122880 samples, 24000 Hz, mono S16 +[Pipeline] Wrote 122880 samples (5.12 s) -> cpp/customvoice/customvoice-cpp.wav +[Input] Prompt: 100 chars: qwentts.cpp is a minimal C++17 and GGML port of Qwen3-TTS fo... +[Input] Speaker: vivian +[Input] Lang: english Seed: 42 MaxNewTokens: 64 +[Input] Mode: greedy +[Python] Device: cuda +[Python] InputIds shape: (1, 38) +[Python] Codes shape: (63, 16) (T_frames, num_code_groups) +[Python] Audio: 120960 samples 24000 Hz 5.04s -> python/customvoice/customvoice-python.wav +[Quant] Q8_0 -> ../models/qwen-talker-1.7b-customvoice-Q8_0.gguf + ../models/qwen-tokenizer-12hz-Q8_0.gguf +[GGML] Cmd: ../build/qwen-tts --model ../models/qwen-talker-1.7b-customvoice-Q8_0.gguf --codec ../models/qwen-tokenizer-12hz-Q8_0.gguf --seed 42 --text qwentts.cpp is a minimal C++17 and GGML port of Qwen3-TTS for zero shot multilingual text to speech. --speaker vivian --lang english --max-new 64 --dump cpp/customvoice -o cpp/customvoice/customvoice-cpp.wav --greedy +[GGML] Audio: 122880 samples 24000 Hz 5.12s -> cpp/customvoice/customvoice-cpp.wav +[Cossim] PromptIDs exact: 100.00% (38 values) +[Cossim] Embed cos: 0.999962 max: 5.1095e-02 mean: 2.0739e-04 +[Cossim] TrailingText cos: 0.999999 max: 1.8678e-04 mean: 4.3506e-05 +[Cossim] TTSPadEmbed cos: 0.999999 max: 1.8678e-04 mean: 4.3506e-05 +[Cossim] L0 cos: 0.999986 max: 5.0604e-02 mean: 8.8424e-04 +[Cossim] L7 cos: 0.999986 max: 1.0962e+01 mean: 4.6588e-02 +[Cossim] L14 cos: 0.999986 max: 1.0979e+01 mean: 6.0335e-02 +[Cossim] L21 cos: 0.999981 max: 1.1114e+01 mean: 1.2093e-01 +[Cossim] L27 cos: 0.999837 max: 8.0113e+01 mean: 5.5753e-01 +[Cossim] Final cos: 0.998320 max: 1.1710e+01 mean: 4.4568e-02 +[Cossim] Logits cos: 0.999810 max: 3.9394e-01 mean: 7.1349e-02 +[Cossim] NextEmbStep0 cos: 0.999992 max: 1.1319e-03 mean: 2.3562e-04 +[Cossim] TalkerHiddenStep1 cos: 0.999540 max: 5.3552e-01 mean: 5.1769e-02 +[Cossim] CodesFull exact: 5.56% (1008 values) +[Cossim] Audio cos: 0.089618 +[Cossim] WAV stft_cos: 0.180413 samples: 120960 diff --git a/tests/customvoice-Vulkan0-BF16.log b/tests/customvoice-Vulkan0-BF16.log new file mode 100644 index 0000000..64b05f6 --- /dev/null +++ b/tests/customvoice-Vulkan0-BF16.log @@ -0,0 +1,29 @@ +ggml_cuda_init: found 1 CUDA devices (Total VRAM: 97247 MiB): + Device 0: NVIDIA RTX PRO 6000 Blackwell Workstation Edition, compute capability 12.0, VMM: yes, VRAM: 97247 MiB +load_backend: loaded CUDA backend from /mnt/workspace/qwentts.cpp/build/libggml-cuda.so +ggml_vulkan: Found 1 Vulkan devices: +ggml_vulkan: 0 = NVIDIA RTX PRO 6000 Blackwell Workstation Edition (NVIDIA) | uma: 0 | fp16: 1 | bf16: 0 | warp size: 32 | shared memory: 49152 | int dot: 1 | matrix cores: NV_coopmat2 +load_backend: loaded Vulkan backend from /mnt/workspace/qwentts.cpp/build/libggml-vulkan.so +load_backend: loaded CPU backend from /mnt/workspace/qwentts.cpp/build/libggml-cpu-zen4.so +[Load] Talker backend: Vulkan0 (CPU threads: 16) +[GGUF] ../models/qwen-talker-1.7b-customvoice-BF16.gguf: 404 tensors, data at offset 5949824 +[WeightCtx] Loaded 316 tensors, 3322.0 MB into backend +[Talker] Loaded: 28 layers, hidden 2048, heads 16/8, head_dim 128, FFN 6144, RoPE theta 1000000, mrope sections [24,20,20] interleaved=0 +[WeightCtx] Loaded 88 tensors, 334.1 MB into backend +[CodePredictor] Loaded: 5 layers, hidden 1024, heads 16/8, head_dim 128, FFN 3072, RoPE theta 1000000, 15 acoustic codebooks (vocab 2048 each), mtp_proj linear +[GGUF] ../models/qwen-tokenizer-12hz-BF16.gguf: 398 tensors, data at offset 29760 +[WeightCtx] Loaded 18 tensors, 33.0 MB into backend +[Quantizer] Loaded: 16 codebooks (1 semantic + 15 acoustic), 2048 entries x 256 dim, hidden 512 +[WeightCtx] Loaded 93 tensors, 58.1 MB into backend +[Transformer] Loaded: 8 layers, hidden 512, heads 16/16, head_dim 64, FFN 1024, RoPE theta 10000, sliding window 72 +[CausalTransConv] FATAL: 'tok_dec.upsample.0.conv.weight' expected F32 or F16, got type 30 +[Input] Prompt: 100 chars: qwentts.cpp is a minimal C++17 and GGML port of Qwen3-TTS fo... +[Input] Speaker: vivian +[Input] Lang: english Seed: 42 MaxNewTokens: 64 +[Input] Mode: greedy +[Python] Device: cuda +[Python] InputIds shape: (1, 38) +[Python] Codes shape: (63, 16) (T_frames, num_code_groups) +[Python] Audio: 120960 samples 24000 Hz 5.04s -> python/customvoice/customvoice-python.wav +[Quant] BF16 -> ../models/qwen-talker-1.7b-customvoice-BF16.gguf + ../models/qwen-tokenizer-12hz-BF16.gguf +[GGML] Cmd: ../build/qwen-tts --model ../models/qwen-talker-1.7b-customvoice-BF16.gguf --codec ../models/qwen-tokenizer-12hz-BF16.gguf --seed 42 --text qwentts.cpp is a minimal C++17 and GGML port of Qwen3-TTS for zero shot multilingual text to speech. --speaker vivian --lang english --max-new 64 --dump cpp/customvoice -o cpp/customvoice/customvoice-cpp.wav --greedy diff --git a/tests/customvoice-Vulkan0-F32.log b/tests/customvoice-Vulkan0-F32.log new file mode 100644 index 0000000..79450f3 --- /dev/null +++ b/tests/customvoice-Vulkan0-F32.log @@ -0,0 +1,124 @@ +ggml_cuda_init: found 1 CUDA devices (Total VRAM: 97247 MiB): + Device 0: NVIDIA RTX PRO 6000 Blackwell Workstation Edition, compute capability 12.0, VMM: yes, VRAM: 97247 MiB +load_backend: loaded CUDA backend from /mnt/workspace/qwentts.cpp/build/libggml-cuda.so +ggml_vulkan: Found 1 Vulkan devices: +ggml_vulkan: 0 = NVIDIA RTX PRO 6000 Blackwell Workstation Edition (NVIDIA) | uma: 0 | fp16: 1 | bf16: 0 | warp size: 32 | shared memory: 49152 | int dot: 1 | matrix cores: NV_coopmat2 +load_backend: loaded Vulkan backend from /mnt/workspace/qwentts.cpp/build/libggml-vulkan.so +load_backend: loaded CPU backend from /mnt/workspace/qwentts.cpp/build/libggml-cpu-zen4.so +[Load] Talker backend: Vulkan0 (CPU threads: 16) +[GGUF] ../models/qwen-talker-1.7b-customvoice-F32.gguf: 404 tensors, data at offset 5949728 +[WeightCtx] Loaded 316 tensors, 6643.5 MB into backend +[Talker] Loaded: 28 layers, hidden 2048, heads 16/8, head_dim 128, FFN 6144, RoPE theta 1000000, mrope sections [24,20,20] interleaved=0 +[WeightCtx] Loaded 88 tensors, 668.1 MB into backend +[CodePredictor] Loaded: 5 layers, hidden 1024, heads 16/8, head_dim 128, FFN 3072, RoPE theta 1000000, 15 acoustic codebooks (vocab 2048 each), mtp_proj linear +[GGUF] ../models/qwen-tokenizer-12hz-F32.gguf: 398 tensors, data at offset 29664 +[WeightCtx] Loaded 18 tensors, 33.0 MB into backend +[Quantizer] Loaded: 16 codebooks (1 semantic + 15 acoustic), 2048 entries x 256 dim, hidden 512 +[WeightCtx] Loaded 93 tensors, 116.1 MB into backend +[Transformer] Loaded: 8 layers, hidden 512, heads 16/16, head_dim 64, FFN 1024, RoPE theta 10000, sliding window 72 +[WeightCtx] Loaded 22 tensors, 80.1 MB into backend +[Upsample] Loaded: 2 blocks (2x ratio per block), channels 1024, dwconv kernel 7 +[WeightCtx] Loaded 118 tensors, 199.8 MB into backend +[DAC] Loaded: 4 blocks (strides 8/5/4/3), 24 kHz mono out, weights 199.8 MB +[WeightCtx] Loaded 2 tensors, 6.0 MB into backend +[WeightCtx] Loaded 28 tensors, 48.2 MB into backend +[SEANet] Loaded: 4 stages (ratios 4/5/6/8), 64 -> 512 channels, weights 48.2 MB +[WeightCtx] Loaded 96 tensors, 96.1 MB into backend +[EncTransformer] Loaded: 8 layers, hidden 512, heads 8/8, head_dim 64, FFN 2048, RoPE theta 10000 +[WeightCtx] Loaded 1 tensors, 4.0 MB into backend +[EncDownsample] Loaded: k=4 stride=2, 512 -> 512 channels, weights 4.0 MB +[WeightCtx] Loaded 20 tensors, 34.0 MB into backend +[EncQuantizer] Loaded: 16 codebooks (1 semantic + 15 acoustic), 2048 entries x 256 dim, hidden 512, weights 34.0 MB +[Pipeline] Ready: hop 1920 samples @ 24000 Hz mono, 16 codebooks @ 12.5 Hz +[KVCache] Allocated: 28 layers, 8 KV heads, head_dim 128, max_seq_len 4096 -> 896 MB +[KVCache] Allocated: 5 layers, 8 KV heads, head_dim 128, max_seq_len 16 -> 0 MB +[Pipeline] Loaded: arch=1b7 variant=custom_voice tokenizer=qwen3_tts_tokenizer_12hz codebooks=16 speaker_encoder=absent speakers=9 +[BPE] Loaded from GGUF: 151676 vocab, 151291 merges, eos_id=151643 +[BPE] Registered 5 arch special tokens (total specials=6) +[Prompt] Built: 38 ids, N_text=30, N_instruct=0, T_ctx=41, hidden=2048, lang=english (id=2050), speaker=vivian (id=3065) ref_spk_emb=no icl=no +[Debug] prompt-ids: [38] first4: 151644.000000 77091.000000 198.000000 80.000000 +[Debug] talker-input-embed: [41, 2048] first4: 0.021550 -0.009399 0.007126 -0.019719 +[Debug] trailing-text-hidden: [1, 2048] first4: -0.003715 0.008406 -0.005009 -0.000409 +[Debug] tts-pad-embed: [2048] first4: -0.003715 0.008406 -0.005009 -0.000409 +[Debug] talker-hidden-prefill-l0: [41, 2048] first4: -0.383174 -0.061029 0.002488 -0.014012 +[Debug] talker-hidden-prefill-l7: [41, 2048] first4: -1.341561 0.248239 1.590987 2.199589 +[Debug] talker-hidden-prefill-l14: [41, 2048] first4: -1.100653 0.411238 1.690403 2.145705 +[Debug] talker-hidden-prefill-l21: [41, 2048] first4: -0.670661 0.321065 2.044533 1.591175 +[Debug] talker-hidden-prefill-l27: [41, 2048] first4: -0.965589 -24.477230 -2.205596 25.913965 +[Debug] talker-hidden-prefill-final: [41, 2048] first4: -0.029813 -0.789180 -0.063277 0.729295 +[Debug] talker-logits-prefill: [3072] first4: -0.684082 -8.062500 -2.765625 -4.992188 +[Sample] step=0 c0=1995 u=-1.0000000000 subseq=0 +[Sample-CP] g=0 c=1159 u=-1.0000000000 subseq=1 +[Sample-CP] g=1 c=887 u=-1.0000000000 subseq=2 +[Sample-CP] g=2 c=1394 u=-1.0000000000 subseq=3 +[Sample-CP] g=3 c=1021 u=-1.0000000000 subseq=4 +[Sample-CP] g=4 c=1572 u=-1.0000000000 subseq=5 +[Sample-CP] g=5 c=1946 u=-1.0000000000 subseq=6 +[Sample-CP] g=6 c=584 u=-1.0000000000 subseq=7 +[Sample-CP] g=7 c=1686 u=-1.0000000000 subseq=8 +[Sample-CP] g=8 c=1317 u=-1.0000000000 subseq=9 +[Sample-CP] g=9 c=1125 u=-1.0000000000 subseq=10 +[Sample-CP] g=10 c=1139 u=-1.0000000000 subseq=11 +[Sample-CP] g=11 c=876 u=-1.0000000000 subseq=12 +[Sample-CP] g=12 c=681 u=-1.0000000000 subseq=13 +[Sample-CP] g=13 c=1118 u=-1.0000000000 subseq=14 +[Sample-CP] g=14 c=190 u=-1.0000000000 subseq=15 +[Debug] codes-step0: [16] first4: 1995.000000 1159.000000 887.000000 1394.000000 +[Debug] next-emb-step0: [2048] first4: -0.066378 -0.021760 -0.024422 -0.054567 +[Debug] talker-hidden-step1: [2048] first4: 0.251683 -6.890096 0.137346 -3.240454 +[Sample] step=1 c0=174 u=-1.0000000000 subseq=16 +[Sample-CP] g=0 c=1159 u=-1.0000000000 subseq=17 +[Sample-CP] g=1 c=887 u=-1.0000000000 subseq=18 +[Sample-CP] g=2 c=409 u=-1.0000000000 subseq=19 +[Sample-CP] g=3 c=149 u=-1.0000000000 subseq=20 +[Sample-CP] g=4 c=648 u=-1.0000000000 subseq=21 +[Sample-CP] g=5 c=267 u=-1.0000000000 subseq=22 +[Sample-CP] g=6 c=417 u=-1.0000000000 subseq=23 +[Sample-CP] g=7 c=972 u=-1.0000000000 subseq=24 +[Sample-CP] g=8 c=778 u=-1.0000000000 subseq=25 +[Sample-CP] g=9 c=274 u=-1.0000000000 subseq=26 +[Sample-CP] g=10 c=400 u=-1.0000000000 subseq=27 +[Sample-CP] g=11 c=641 u=-1.0000000000 subseq=28 +[Sample-CP] g=12 c=395 u=-1.0000000000 subseq=29 +[Sample-CP] g=13 c=1308 u=-1.0000000000 subseq=30 +[Sample-CP] g=14 c=95 u=-1.0000000000 subseq=31 +[Pipeline] Generated 8 frames +[Pipeline] Generated 16 frames +[Pipeline] Generated 24 frames +[Pipeline] Generated 32 frames +[Pipeline] Generated 40 frames +[Pipeline] Generated 48 frames +[Pipeline] Generated 56 frames +[Pipeline] Generated 64 frames +[Pipeline] Generation done : 64 frames +[Debug] codes-full: [64, 16] first4: 1995.000000 1159.000000 887.000000 1394.000000 +[Debug] output-audio: [122880] first4: 0.000010 0.000010 0.000013 0.000019 +[WAV] Wrote cpp/customvoice/customvoice-cpp.wav: 122880 samples, 24000 Hz, mono S16 +[Pipeline] Wrote 122880 samples (5.12 s) -> cpp/customvoice/customvoice-cpp.wav +[Input] Prompt: 100 chars: qwentts.cpp is a minimal C++17 and GGML port of Qwen3-TTS fo... +[Input] Speaker: vivian +[Input] Lang: english Seed: 42 MaxNewTokens: 64 +[Input] Mode: greedy +[Python] Device: cuda +[Python] InputIds shape: (1, 38) +[Python] Codes shape: (63, 16) (T_frames, num_code_groups) +[Python] Audio: 120960 samples 24000 Hz 5.04s -> python/customvoice/customvoice-python.wav +[Quant] F32 -> ../models/qwen-talker-1.7b-customvoice-F32.gguf + ../models/qwen-tokenizer-12hz-F32.gguf +[GGML] Cmd: ../build/qwen-tts --model ../models/qwen-talker-1.7b-customvoice-F32.gguf --codec ../models/qwen-tokenizer-12hz-F32.gguf --seed 42 --text qwentts.cpp is a minimal C++17 and GGML port of Qwen3-TTS for zero shot multilingual text to speech. --speaker vivian --lang english --max-new 64 --dump cpp/customvoice -o cpp/customvoice/customvoice-cpp.wav --greedy +[GGML] Audio: 122880 samples 24000 Hz 5.12s -> cpp/customvoice/customvoice-cpp.wav +[Cossim] PromptIDs exact: 100.00% (38 values) +[Cossim] Embed cos: 1.000000 max: 1.9073e-06 mean: 1.8764e-08 +[Cossim] TrailingText cos: 1.000000 max: 1.3709e-06 mean: 9.3658e-09 +[Cossim] TTSPadEmbed cos: 1.000000 max: 1.3709e-06 mean: 9.3658e-09 +[Cossim] L0 cos: 0.999998 max: 5.8426e-02 mean: 2.1510e-04 +[Cossim] L7 cos: 0.999996 max: 1.7664e+01 mean: 3.1492e-03 +[Cossim] L14 cos: 0.999996 max: 1.7679e+01 mean: 5.8671e-03 +[Cossim] L21 cos: 0.999996 max: 1.7763e+01 mean: 1.7020e-02 +[Cossim] L27 cos: 0.999995 max: 1.5948e+01 mean: 9.2901e-02 +[Cossim] Final cos: 0.999976 max: 8.5394e-01 mean: 6.5716e-03 +[Cossim] Logits cos: 0.999991 max: 1.1486e-01 mean: 1.5123e-02 +[Cossim] NextEmbStep0 cos: 0.456710 max: 5.6155e-01 mean: 5.6235e-02 +[Cossim] TalkerHiddenStep1 cos: 0.400244 max: 1.1787e+01 mean: 2.0138e+00 +[Cossim] CodesFull exact: 0.40% (1008 values) +[Cossim] Audio cos: 0.000580 +[Cossim] WAV stft_cos: 0.025550 samples: 120960 diff --git a/tests/customvoice-Vulkan0-Q4_K_M.log b/tests/customvoice-Vulkan0-Q4_K_M.log new file mode 100644 index 0000000..a2a4116 --- /dev/null +++ b/tests/customvoice-Vulkan0-Q4_K_M.log @@ -0,0 +1,124 @@ +ggml_cuda_init: found 1 CUDA devices (Total VRAM: 97247 MiB): + Device 0: NVIDIA RTX PRO 6000 Blackwell Workstation Edition, compute capability 12.0, VMM: yes, VRAM: 97247 MiB +load_backend: loaded CUDA backend from /mnt/workspace/qwentts.cpp/build/libggml-cuda.so +ggml_vulkan: Found 1 Vulkan devices: +ggml_vulkan: 0 = NVIDIA RTX PRO 6000 Blackwell Workstation Edition (NVIDIA) | uma: 0 | fp16: 1 | bf16: 0 | warp size: 32 | shared memory: 49152 | int dot: 1 | matrix cores: NV_coopmat2 +load_backend: loaded Vulkan backend from /mnt/workspace/qwentts.cpp/build/libggml-vulkan.so +load_backend: loaded CPU backend from /mnt/workspace/qwentts.cpp/build/libggml-cpu-zen4.so +[Load] Talker backend: Vulkan0 (CPU threads: 16) +[GGUF] ../models/qwen-talker-1.7b-customvoice-Q4_K_M.gguf: 404 tensors, data at offset 5949824 +[WeightCtx] Loaded 316 tensors, 1012.7 MB into backend +[Talker] Loaded: 28 layers, hidden 2048, heads 16/8, head_dim 128, FFN 6144, RoPE theta 1000000, mrope sections [24,20,20] interleaved=0 +[WeightCtx] Loaded 88 tensors, 109.5 MB into backend +[CodePredictor] Loaded: 5 layers, hidden 1024, heads 16/8, head_dim 128, FFN 3072, RoPE theta 1000000, 15 acoustic codebooks (vocab 2048 each), mtp_proj linear +[GGUF] ../models/qwen-tokenizer-12hz-Q4_K_M.gguf: 398 tensors, data at offset 29760 +[WeightCtx] Loaded 18 tensors, 33.0 MB into backend +[Quantizer] Loaded: 16 codebooks (1 semantic + 15 acoustic), 2048 entries x 256 dim, hidden 512 +[WeightCtx] Loaded 93 tensors, 16.4 MB into backend +[Transformer] Loaded: 8 layers, hidden 512, heads 16/16, head_dim 64, FFN 1024, RoPE theta 10000, sliding window 72 +[WeightCtx] Loaded 22 tensors, 25.1 MB into backend +[Upsample] Loaded: 2 blocks (2x ratio per block), channels 1024, dwconv kernel 7 +[WeightCtx] Loaded 118 tensors, 142.9 MB into backend +[DAC] Loaded: 4 blocks (strides 8/5/4/3), 24 kHz mono out, weights 142.9 MB +[WeightCtx] Loaded 2 tensors, 3.0 MB into backend +[WeightCtx] Loaded 28 tensors, 24.1 MB into backend +[SEANet] Loaded: 4 stages (ratios 4/5/6/8), 64 -> 512 channels, weights 24.1 MB +[WeightCtx] Loaded 96 tensors, 13.6 MB into backend +[EncTransformer] Loaded: 8 layers, hidden 512, heads 8/8, head_dim 64, FFN 2048, RoPE theta 10000 +[WeightCtx] Loaded 1 tensors, 2.0 MB into backend +[EncDownsample] Loaded: k=4 stride=2, 512 -> 512 channels, weights 2.0 MB +[WeightCtx] Loaded 20 tensors, 34.0 MB into backend +[EncQuantizer] Loaded: 16 codebooks (1 semantic + 15 acoustic), 2048 entries x 256 dim, hidden 512, weights 34.0 MB +[Pipeline] Ready: hop 1920 samples @ 24000 Hz mono, 16 codebooks @ 12.5 Hz +[KVCache] Allocated: 28 layers, 8 KV heads, head_dim 128, max_seq_len 4096 -> 896 MB +[KVCache] Allocated: 5 layers, 8 KV heads, head_dim 128, max_seq_len 16 -> 0 MB +[Pipeline] Loaded: arch=1b7 variant=custom_voice tokenizer=qwen3_tts_tokenizer_12hz codebooks=16 speaker_encoder=absent speakers=9 +[BPE] Loaded from GGUF: 151676 vocab, 151291 merges, eos_id=151643 +[BPE] Registered 5 arch special tokens (total specials=6) +[Prompt] Built: 38 ids, N_text=30, N_instruct=0, T_ctx=41, hidden=2048, lang=english (id=2050), speaker=vivian (id=3065) ref_spk_emb=no icl=no +[Debug] prompt-ids: [38] first4: 151644.000000 77091.000000 198.000000 80.000000 +[Debug] talker-input-embed: [41, 2048] first4: 0.020406 -0.009921 0.006129 -0.021787 +[Debug] trailing-text-hidden: [1, 2048] first4: -0.003884 0.008386 -0.004502 -0.000786 +[Debug] tts-pad-embed: [2048] first4: -0.003884 0.008386 -0.004502 -0.000786 +[Debug] talker-hidden-prefill-l0: [41, 2048] first4: -0.342387 -0.050952 -0.036901 0.000490 +[Debug] talker-hidden-prefill-l7: [41, 2048] first4: 8.684183 -0.420817 6.308812 14.792739 +[Debug] talker-hidden-prefill-l14: [41, 2048] first4: 8.668537 -0.144105 6.474887 14.627668 +[Debug] talker-hidden-prefill-l21: [41, 2048] first4: 8.614389 0.135494 6.821901 14.258179 +[Debug] talker-hidden-prefill-l27: [41, 2048] first4: 10.474543 -29.180080 -0.901515 39.380138 +[Debug] talker-hidden-prefill-final: [41, 2048] first4: 0.320889 -0.933492 -0.025663 1.099655 +[Debug] talker-logits-prefill: [3072] first4: -0.809082 -8.132812 -1.742188 -5.531250 +[Sample] step=0 c0=1995 u=-1.0000000000 subseq=0 +[Sample-CP] g=0 c=1159 u=-1.0000000000 subseq=1 +[Sample-CP] g=1 c=887 u=-1.0000000000 subseq=2 +[Sample-CP] g=2 c=1394 u=-1.0000000000 subseq=3 +[Sample-CP] g=3 c=1050 u=-1.0000000000 subseq=4 +[Sample-CP] g=4 c=645 u=-1.0000000000 subseq=5 +[Sample-CP] g=5 c=889 u=-1.0000000000 subseq=6 +[Sample-CP] g=6 c=417 u=-1.0000000000 subseq=7 +[Sample-CP] g=7 c=450 u=-1.0000000000 subseq=8 +[Sample-CP] g=8 c=283 u=-1.0000000000 subseq=9 +[Sample-CP] g=9 c=1306 u=-1.0000000000 subseq=10 +[Sample-CP] g=10 c=294 u=-1.0000000000 subseq=11 +[Sample-CP] g=11 c=255 u=-1.0000000000 subseq=12 +[Sample-CP] g=12 c=791 u=-1.0000000000 subseq=13 +[Sample-CP] g=13 c=946 u=-1.0000000000 subseq=14 +[Sample-CP] g=14 c=32 u=-1.0000000000 subseq=15 +[Debug] codes-step0: [16] first4: 1995.000000 1159.000000 887.000000 1394.000000 +[Debug] next-emb-step0: [2048] first4: -0.006790 -0.047986 -0.039779 -0.072832 +[Debug] talker-hidden-step1: [2048] first4: -0.556227 -6.749060 -0.346863 -2.625830 +[Sample] step=1 c0=1028 u=-1.0000000000 subseq=16 +[Sample-CP] g=0 c=1808 u=-1.0000000000 subseq=17 +[Sample-CP] g=1 c=1843 u=-1.0000000000 subseq=18 +[Sample-CP] g=2 c=1016 u=-1.0000000000 subseq=19 +[Sample-CP] g=3 c=27 u=-1.0000000000 subseq=20 +[Sample-CP] g=4 c=1645 u=-1.0000000000 subseq=21 +[Sample-CP] g=5 c=672 u=-1.0000000000 subseq=22 +[Sample-CP] g=6 c=609 u=-1.0000000000 subseq=23 +[Sample-CP] g=7 c=507 u=-1.0000000000 subseq=24 +[Sample-CP] g=8 c=1721 u=-1.0000000000 subseq=25 +[Sample-CP] g=9 c=842 u=-1.0000000000 subseq=26 +[Sample-CP] g=10 c=1324 u=-1.0000000000 subseq=27 +[Sample-CP] g=11 c=733 u=-1.0000000000 subseq=28 +[Sample-CP] g=12 c=1980 u=-1.0000000000 subseq=29 +[Sample-CP] g=13 c=2015 u=-1.0000000000 subseq=30 +[Sample-CP] g=14 c=1760 u=-1.0000000000 subseq=31 +[Pipeline] Generated 8 frames +[Pipeline] Generated 16 frames +[Pipeline] Generated 24 frames +[Pipeline] Generated 32 frames +[Pipeline] Generated 40 frames +[Pipeline] Generated 48 frames +[Pipeline] Generated 56 frames +[Pipeline] Generated 64 frames +[Pipeline] Generation done : 64 frames +[Debug] codes-full: [64, 16] first4: 1995.000000 1159.000000 887.000000 1394.000000 +[Debug] output-audio: [122880] first4: 0.000006 0.000006 0.000006 0.000005 +[WAV] Wrote cpp/customvoice/customvoice-cpp.wav: 122880 samples, 24000 Hz, mono S16 +[Pipeline] Wrote 122880 samples (5.12 s) -> cpp/customvoice/customvoice-cpp.wav +[Input] Prompt: 100 chars: qwentts.cpp is a minimal C++17 and GGML port of Qwen3-TTS fo... +[Input] Speaker: vivian +[Input] Lang: english Seed: 42 MaxNewTokens: 64 +[Input] Mode: greedy +[Python] Device: cuda +[Python] InputIds shape: (1, 38) +[Python] Codes shape: (63, 16) (T_frames, num_code_groups) +[Python] Audio: 120960 samples 24000 Hz 5.04s -> python/customvoice/customvoice-python.wav +[Quant] Q4_K_M -> ../models/qwen-talker-1.7b-customvoice-Q4_K_M.gguf + ../models/qwen-tokenizer-12hz-Q4_K_M.gguf +[GGML] Cmd: ../build/qwen-tts --model ../models/qwen-talker-1.7b-customvoice-Q4_K_M.gguf --codec ../models/qwen-tokenizer-12hz-Q4_K_M.gguf --seed 42 --text qwentts.cpp is a minimal C++17 and GGML port of Qwen3-TTS for zero shot multilingual text to speech. --speaker vivian --lang english --max-new 64 --dump cpp/customvoice -o cpp/customvoice/customvoice-cpp.wav --greedy +[GGML] Audio: 122880 samples 24000 Hz 5.12s -> cpp/customvoice/customvoice-cpp.wav +[Cossim] PromptIDs exact: 100.00% (38 values) +[Cossim] Embed cos: 0.999698 max: 1.6597e-01 mean: 1.0155e-03 +[Cossim] TrailingText cos: 0.999971 max: 1.2941e-03 mean: 2.2429e-04 +[Cossim] TTSPadEmbed cos: 0.999971 max: 1.2941e-03 mean: 2.2429e-04 +[Cossim] L0 cos: 0.999313 max: 4.0368e-01 mean: 6.1748e-03 +[Cossim] L7 cos: 0.997562 max: 7.2752e+01 mean: 5.9666e-01 +[Cossim] L14 cos: 0.997544 max: 7.2375e+01 mean: 7.1751e-01 +[Cossim] L21 cos: 0.997090 max: 7.6005e+01 mean: 1.3161e+00 +[Cossim] L27 cos: 0.986501 max: 6.5157e+02 mean: 5.4902e+00 +[Cossim] Final cos: 0.904388 max: 6.9784e+01 mean: 4.1453e-01 +[Cossim] Logits cos: 0.989767 max: 3.2461e+00 mean: 4.6685e-01 +[Cossim] NextEmbStep0 cos: 0.446799 max: 5.6384e-01 mean: 5.6236e-02 +[Cossim] TalkerHiddenStep1 cos: 0.424530 max: 1.5663e+01 mean: 1.9080e+00 +[Cossim] CodesFull exact: 0.30% (1008 values) +[Cossim] Audio cos: 0.006653 +[Cossim] WAV stft_cos: 0.074317 samples: 120960 diff --git a/tests/customvoice-Vulkan0-Q8_0.log b/tests/customvoice-Vulkan0-Q8_0.log new file mode 100644 index 0000000..6f67e6e --- /dev/null +++ b/tests/customvoice-Vulkan0-Q8_0.log @@ -0,0 +1,124 @@ +ggml_cuda_init: found 1 CUDA devices (Total VRAM: 97247 MiB): + Device 0: NVIDIA RTX PRO 6000 Blackwell Workstation Edition, compute capability 12.0, VMM: yes, VRAM: 97247 MiB +load_backend: loaded CUDA backend from /mnt/workspace/qwentts.cpp/build/libggml-cuda.so +ggml_vulkan: Found 1 Vulkan devices: +ggml_vulkan: 0 = NVIDIA RTX PRO 6000 Blackwell Workstation Edition (NVIDIA) | uma: 0 | fp16: 1 | bf16: 0 | warp size: 32 | shared memory: 49152 | int dot: 1 | matrix cores: NV_coopmat2 +load_backend: loaded Vulkan backend from /mnt/workspace/qwentts.cpp/build/libggml-vulkan.so +load_backend: loaded CPU backend from /mnt/workspace/qwentts.cpp/build/libggml-cpu-zen4.so +[Load] Talker backend: Vulkan0 (CPU threads: 16) +[GGUF] ../models/qwen-talker-1.7b-customvoice-Q8_0.gguf: 404 tensors, data at offset 5949824 +[WeightCtx] Loaded 316 tensors, 1765.0 MB into backend +[Talker] Loaded: 28 layers, hidden 2048, heads 16/8, head_dim 128, FFN 6144, RoPE theta 1000000, mrope sections [24,20,20] interleaved=0 +[WeightCtx] Loaded 88 tensors, 177.5 MB into backend +[CodePredictor] Loaded: 5 layers, hidden 1024, heads 16/8, head_dim 128, FFN 3072, RoPE theta 1000000, 15 acoustic codebooks (vocab 2048 each), mtp_proj linear +[GGUF] ../models/qwen-tokenizer-12hz-Q8_0.gguf: 398 tensors, data at offset 29760 +[WeightCtx] Loaded 18 tensors, 33.0 MB into backend +[Quantizer] Loaded: 16 codebooks (1 semantic + 15 acoustic), 2048 entries x 256 dim, hidden 512 +[WeightCtx] Loaded 93 tensors, 30.9 MB into backend +[Transformer] Loaded: 8 layers, hidden 512, heads 16/16, head_dim 64, FFN 1024, RoPE theta 10000, sliding window 72 +[WeightCtx] Loaded 22 tensors, 33.1 MB into backend +[Upsample] Loaded: 2 blocks (2x ratio per block), channels 1024, dwconv kernel 7 +[WeightCtx] Loaded 118 tensors, 142.9 MB into backend +[DAC] Loaded: 4 blocks (strides 8/5/4/3), 24 kHz mono out, weights 142.9 MB +[WeightCtx] Loaded 2 tensors, 3.0 MB into backend +[WeightCtx] Loaded 28 tensors, 24.1 MB into backend +[SEANet] Loaded: 4 stages (ratios 4/5/6/8), 64 -> 512 channels, weights 24.1 MB +[WeightCtx] Loaded 96 tensors, 25.6 MB into backend +[EncTransformer] Loaded: 8 layers, hidden 512, heads 8/8, head_dim 64, FFN 2048, RoPE theta 10000 +[WeightCtx] Loaded 1 tensors, 2.0 MB into backend +[EncDownsample] Loaded: k=4 stride=2, 512 -> 512 channels, weights 2.0 MB +[WeightCtx] Loaded 20 tensors, 34.0 MB into backend +[EncQuantizer] Loaded: 16 codebooks (1 semantic + 15 acoustic), 2048 entries x 256 dim, hidden 512, weights 34.0 MB +[Pipeline] Ready: hop 1920 samples @ 24000 Hz mono, 16 codebooks @ 12.5 Hz +[KVCache] Allocated: 28 layers, 8 KV heads, head_dim 128, max_seq_len 4096 -> 896 MB +[KVCache] Allocated: 5 layers, 8 KV heads, head_dim 128, max_seq_len 16 -> 0 MB +[Pipeline] Loaded: arch=1b7 variant=custom_voice tokenizer=qwen3_tts_tokenizer_12hz codebooks=16 speaker_encoder=absent speakers=9 +[BPE] Loaded from GGUF: 151676 vocab, 151291 merges, eos_id=151643 +[BPE] Registered 5 arch special tokens (total specials=6) +[Prompt] Built: 38 ids, N_text=30, N_instruct=0, T_ctx=41, hidden=2048, lang=english (id=2050), speaker=vivian (id=3065) ref_spk_emb=no icl=no +[Debug] prompt-ids: [38] first4: 151644.000000 77091.000000 198.000000 80.000000 +[Debug] talker-input-embed: [41, 2048] first4: 0.021601 -0.009355 0.007161 -0.019744 +[Debug] trailing-text-hidden: [1, 2048] first4: -0.003786 0.008339 -0.005023 -0.000287 +[Debug] tts-pad-embed: [2048] first4: -0.003786 0.008339 -0.005023 -0.000287 +[Debug] talker-hidden-prefill-l0: [41, 2048] first4: -0.381353 -0.062761 0.001330 -0.016448 +[Debug] talker-hidden-prefill-l7: [41, 2048] first4: -2.105873 0.156029 2.024559 1.129648 +[Debug] talker-hidden-prefill-l14: [41, 2048] first4: -1.855467 0.320307 2.123760 1.083043 +[Debug] talker-hidden-prefill-l21: [41, 2048] first4: -1.445384 0.256552 2.501003 0.579517 +[Debug] talker-hidden-prefill-l27: [41, 2048] first4: -1.413932 -24.682590 -1.774915 24.908796 +[Debug] talker-hidden-prefill-final: [41, 2048] first4: -0.043676 -0.796183 -0.050946 0.701342 +[Debug] talker-logits-prefill: [3072] first4: -0.807129 -7.988281 -2.699219 -4.851562 +[Sample] step=0 c0=1995 u=-1.0000000000 subseq=0 +[Sample-CP] g=0 c=1159 u=-1.0000000000 subseq=1 +[Sample-CP] g=1 c=887 u=-1.0000000000 subseq=2 +[Sample-CP] g=2 c=1394 u=-1.0000000000 subseq=3 +[Sample-CP] g=3 c=1021 u=-1.0000000000 subseq=4 +[Sample-CP] g=4 c=1572 u=-1.0000000000 subseq=5 +[Sample-CP] g=5 c=1946 u=-1.0000000000 subseq=6 +[Sample-CP] g=6 c=584 u=-1.0000000000 subseq=7 +[Sample-CP] g=7 c=1686 u=-1.0000000000 subseq=8 +[Sample-CP] g=8 c=1317 u=-1.0000000000 subseq=9 +[Sample-CP] g=9 c=1125 u=-1.0000000000 subseq=10 +[Sample-CP] g=10 c=1139 u=-1.0000000000 subseq=11 +[Sample-CP] g=11 c=876 u=-1.0000000000 subseq=12 +[Sample-CP] g=12 c=681 u=-1.0000000000 subseq=13 +[Sample-CP] g=13 c=1118 u=-1.0000000000 subseq=14 +[Sample-CP] g=14 c=190 u=-1.0000000000 subseq=15 +[Debug] codes-step0: [16] first4: 1995.000000 1159.000000 887.000000 1394.000000 +[Debug] next-emb-step0: [2048] first4: -0.066422 -0.021942 -0.023905 -0.054010 +[Debug] talker-hidden-step1: [2048] first4: 0.161350 -6.832321 0.084924 -3.220334 +[Sample] step=1 c0=174 u=-1.0000000000 subseq=16 +[Sample-CP] g=0 c=1159 u=-1.0000000000 subseq=17 +[Sample-CP] g=1 c=887 u=-1.0000000000 subseq=18 +[Sample-CP] g=2 c=409 u=-1.0000000000 subseq=19 +[Sample-CP] g=3 c=149 u=-1.0000000000 subseq=20 +[Sample-CP] g=4 c=648 u=-1.0000000000 subseq=21 +[Sample-CP] g=5 c=267 u=-1.0000000000 subseq=22 +[Sample-CP] g=6 c=417 u=-1.0000000000 subseq=23 +[Sample-CP] g=7 c=972 u=-1.0000000000 subseq=24 +[Sample-CP] g=8 c=778 u=-1.0000000000 subseq=25 +[Sample-CP] g=9 c=274 u=-1.0000000000 subseq=26 +[Sample-CP] g=10 c=400 u=-1.0000000000 subseq=27 +[Sample-CP] g=11 c=641 u=-1.0000000000 subseq=28 +[Sample-CP] g=12 c=395 u=-1.0000000000 subseq=29 +[Sample-CP] g=13 c=1308 u=-1.0000000000 subseq=30 +[Sample-CP] g=14 c=171 u=-1.0000000000 subseq=31 +[Pipeline] Generated 8 frames +[Pipeline] Generated 16 frames +[Pipeline] Generated 24 frames +[Pipeline] Generated 32 frames +[Pipeline] Generated 40 frames +[Pipeline] Generated 48 frames +[Pipeline] Generated 56 frames +[Pipeline] Generated 64 frames +[Pipeline] Generation done : 64 frames +[Debug] codes-full: [64, 16] first4: 1995.000000 1159.000000 887.000000 1394.000000 +[Debug] output-audio: [122880] first4: 0.000011 0.000011 0.000013 0.000018 +[WAV] Wrote cpp/customvoice/customvoice-cpp.wav: 122880 samples, 24000 Hz, mono S16 +[Pipeline] Wrote 122880 samples (5.12 s) -> cpp/customvoice/customvoice-cpp.wav +[Input] Prompt: 100 chars: qwentts.cpp is a minimal C++17 and GGML port of Qwen3-TTS fo... +[Input] Speaker: vivian +[Input] Lang: english Seed: 42 MaxNewTokens: 64 +[Input] Mode: greedy +[Python] Device: cuda +[Python] InputIds shape: (1, 38) +[Python] Codes shape: (63, 16) (T_frames, num_code_groups) +[Python] Audio: 120960 samples 24000 Hz 5.04s -> python/customvoice/customvoice-python.wav +[Quant] Q8_0 -> ../models/qwen-talker-1.7b-customvoice-Q8_0.gguf + ../models/qwen-tokenizer-12hz-Q8_0.gguf +[GGML] Cmd: ../build/qwen-tts --model ../models/qwen-talker-1.7b-customvoice-Q8_0.gguf --codec ../models/qwen-tokenizer-12hz-Q8_0.gguf --seed 42 --text qwentts.cpp is a minimal C++17 and GGML port of Qwen3-TTS for zero shot multilingual text to speech. --speaker vivian --lang english --max-new 64 --dump cpp/customvoice -o cpp/customvoice/customvoice-cpp.wav --greedy +[GGML] Audio: 122880 samples 24000 Hz 5.12s -> cpp/customvoice/customvoice-cpp.wav +[Cossim] PromptIDs exact: 100.00% (38 values) +[Cossim] Embed cos: 0.999962 max: 5.1095e-02 mean: 2.0739e-04 +[Cossim] TrailingText cos: 0.999999 max: 1.8678e-04 mean: 4.3506e-05 +[Cossim] TTSPadEmbed cos: 0.999999 max: 1.8678e-04 mean: 4.3506e-05 +[Cossim] L0 cos: 0.999990 max: 5.0900e-02 mean: 6.5162e-04 +[Cossim] L7 cos: 0.999982 max: 2.1600e+01 mean: 4.4796e-02 +[Cossim] L14 cos: 0.999982 max: 2.1531e+01 mean: 5.5236e-02 +[Cossim] L21 cos: 0.999979 max: 2.1861e+01 mean: 1.0253e-01 +[Cossim] L27 cos: 0.999892 max: 6.5629e+01 mean: 4.4925e-01 +[Cossim] Final cos: 0.998972 max: 1.0132e+01 mean: 3.4602e-02 +[Cossim] Logits cos: 0.999883 max: 3.0927e-01 mean: 5.9168e-02 +[Cossim] NextEmbStep0 cos: 0.456857 max: 5.6147e-01 mean: 5.6227e-02 +[Cossim] TalkerHiddenStep1 cos: 0.397042 max: 1.1716e+01 mean: 2.0233e+00 +[Cossim] CodesFull exact: 0.30% (1008 values) +[Cossim] Audio cos: 0.002140 +[Cossim] WAV stft_cos: 0.038675 samples: 120960 diff --git a/tests/tts-CUDA0-BF16.log b/tests/tts-CUDA0-BF16.log new file mode 100644 index 0000000..56369ed --- /dev/null +++ b/tests/tts-CUDA0-BF16.log @@ -0,0 +1,30 @@ +ggml_cuda_init: found 1 CUDA devices (Total VRAM: 97247 MiB): + Device 0: NVIDIA RTX PRO 6000 Blackwell Workstation Edition, compute capability 12.0, VMM: yes, VRAM: 97247 MiB +load_backend: loaded CUDA backend from /mnt/workspace/qwentts.cpp/build/libggml-cuda.so +ggml_vulkan: Found 1 Vulkan devices: +ggml_vulkan: 0 = NVIDIA RTX PRO 6000 Blackwell Workstation Edition (NVIDIA) | uma: 0 | fp16: 1 | bf16: 0 | warp size: 32 | shared memory: 49152 | int dot: 1 | matrix cores: NV_coopmat2 +load_backend: loaded Vulkan backend from /mnt/workspace/qwentts.cpp/build/libggml-vulkan.so +load_backend: loaded CPU backend from /mnt/workspace/qwentts.cpp/build/libggml-cpu-zen4.so +[Load] Talker backend: CUDA0 (CPU threads: 16) +[GGUF] ../models/qwen-talker-1.7b-voicedesign-BF16.gguf: 404 tensors, data at offset 5949344 +[WeightCtx] Loaded 316 tensors, 3322.0 MB into backend +[Talker] Loaded: 28 layers, hidden 2048, heads 16/8, head_dim 128, FFN 6144, RoPE theta 1000000, mrope sections [24,20,20] interleaved=0 +[WeightCtx] Loaded 88 tensors, 334.1 MB into backend +[CodePredictor] Loaded: 5 layers, hidden 1024, heads 16/8, head_dim 128, FFN 3072, RoPE theta 1000000, 15 acoustic codebooks (vocab 2048 each), mtp_proj linear +[GGUF] ../models/qwen-tokenizer-12hz-BF16.gguf: 398 tensors, data at offset 29760 +[WeightCtx] Loaded 18 tensors, 33.0 MB into backend +[Quantizer] Loaded: 16 codebooks (1 semantic + 15 acoustic), 2048 entries x 256 dim, hidden 512 +[WeightCtx] Loaded 93 tensors, 58.1 MB into backend +[Transformer] Loaded: 8 layers, hidden 512, heads 16/16, head_dim 64, FFN 1024, RoPE theta 10000, sliding window 72 +[CausalTransConv] FATAL: 'tok_dec.upsample.0.conv.weight' expected F32 or F16, got type 30 +[Input] Prompt: 100 chars: qwentts.cpp is a minimal C++17 and GGML port of Qwen3-TTS fo... +[Input] Instruct: male, young adult, moderate pitch +[Input] Lang: english Seed: 42 MaxNewTokens: 64 +[Input] Mode: greedy +[Python] Device: cuda +[Python] InputIds shape: (1, 38) +[Python] InstructIds shape: (1, 12) +[Python] Codes shape: (63, 16) (T_frames, num_code_groups) +[Python] Audio: 120960 samples 24000 Hz 5.04s -> python/tts/tts-python.wav +[Quant] BF16 -> ../models/qwen-talker-1.7b-voicedesign-BF16.gguf + ../models/qwen-tokenizer-12hz-BF16.gguf +[GGML] Cmd: ../build/qwen-tts --model ../models/qwen-talker-1.7b-voicedesign-BF16.gguf --codec ../models/qwen-tokenizer-12hz-BF16.gguf --seed 42 --text qwentts.cpp is a minimal C++17 and GGML port of Qwen3-TTS for zero shot multilingual text to speech. --instruct male, young adult, moderate pitch --lang english --max-new 64 --dump cpp/tts -o cpp/tts/tts-cpp.wav --greedy diff --git a/tests/tts-CUDA0-F32.log b/tests/tts-CUDA0-F32.log new file mode 100644 index 0000000..1e57e0d --- /dev/null +++ b/tests/tts-CUDA0-F32.log @@ -0,0 +1,125 @@ +ggml_cuda_init: found 1 CUDA devices (Total VRAM: 97247 MiB): + Device 0: NVIDIA RTX PRO 6000 Blackwell Workstation Edition, compute capability 12.0, VMM: yes, VRAM: 97247 MiB +load_backend: loaded CUDA backend from /mnt/workspace/qwentts.cpp/build/libggml-cuda.so +ggml_vulkan: Found 1 Vulkan devices: +ggml_vulkan: 0 = NVIDIA RTX PRO 6000 Blackwell Workstation Edition (NVIDIA) | uma: 0 | fp16: 1 | bf16: 0 | warp size: 32 | shared memory: 49152 | int dot: 1 | matrix cores: NV_coopmat2 +load_backend: loaded Vulkan backend from /mnt/workspace/qwentts.cpp/build/libggml-vulkan.so +load_backend: loaded CPU backend from /mnt/workspace/qwentts.cpp/build/libggml-cpu-zen4.so +[Load] Talker backend: CUDA0 (CPU threads: 16) +[GGUF] ../models/qwen-talker-1.7b-voicedesign-F32.gguf: 404 tensors, data at offset 5949248 +[WeightCtx] Loaded 316 tensors, 6643.5 MB into backend +[Talker] Loaded: 28 layers, hidden 2048, heads 16/8, head_dim 128, FFN 6144, RoPE theta 1000000, mrope sections [24,20,20] interleaved=0 +[WeightCtx] Loaded 88 tensors, 668.1 MB into backend +[CodePredictor] Loaded: 5 layers, hidden 1024, heads 16/8, head_dim 128, FFN 3072, RoPE theta 1000000, 15 acoustic codebooks (vocab 2048 each), mtp_proj linear +[GGUF] ../models/qwen-tokenizer-12hz-F32.gguf: 398 tensors, data at offset 29664 +[WeightCtx] Loaded 18 tensors, 33.0 MB into backend +[Quantizer] Loaded: 16 codebooks (1 semantic + 15 acoustic), 2048 entries x 256 dim, hidden 512 +[WeightCtx] Loaded 93 tensors, 116.1 MB into backend +[Transformer] Loaded: 8 layers, hidden 512, heads 16/16, head_dim 64, FFN 1024, RoPE theta 10000, sliding window 72 +[WeightCtx] Loaded 22 tensors, 80.1 MB into backend +[Upsample] Loaded: 2 blocks (2x ratio per block), channels 1024, dwconv kernel 7 +[WeightCtx] Loaded 118 tensors, 199.8 MB into backend +[DAC] Loaded: 4 blocks (strides 8/5/4/3), 24 kHz mono out, weights 199.8 MB +[WeightCtx] Loaded 2 tensors, 6.0 MB into backend +[WeightCtx] Loaded 28 tensors, 48.2 MB into backend +[SEANet] Loaded: 4 stages (ratios 4/5/6/8), 64 -> 512 channels, weights 48.2 MB +[WeightCtx] Loaded 96 tensors, 96.1 MB into backend +[EncTransformer] Loaded: 8 layers, hidden 512, heads 8/8, head_dim 64, FFN 2048, RoPE theta 10000 +[WeightCtx] Loaded 1 tensors, 4.0 MB into backend +[EncDownsample] Loaded: k=4 stride=2, 512 -> 512 channels, weights 4.0 MB +[WeightCtx] Loaded 20 tensors, 34.0 MB into backend +[EncQuantizer] Loaded: 16 codebooks (1 semantic + 15 acoustic), 2048 entries x 256 dim, hidden 512, weights 34.0 MB +[Pipeline] Ready: hop 1920 samples @ 24000 Hz mono, 16 codebooks @ 12.5 Hz +[KVCache] Allocated: 28 layers, 8 KV heads, head_dim 128, max_seq_len 4096 -> 896 MB +[KVCache] Allocated: 5 layers, 8 KV heads, head_dim 128, max_seq_len 16 -> 0 MB +[Pipeline] Loaded: arch=1b7 variant=voice_design tokenizer=qwen3_tts_tokenizer_12hz codebooks=16 speaker_encoder=absent speakers=0 +[BPE] Loaded from GGUF: 151676 vocab, 151291 merges, eos_id=151643 +[BPE] Registered 5 arch special tokens (total specials=6) +[Prompt] Built: 38 ids, N_text=30, N_instruct=12, T_ctx=52, hidden=2048, lang=english (id=2050), speaker=none (id=-1) ref_spk_emb=no icl=no +[Debug] prompt-ids: [38] first4: 151644.000000 77091.000000 198.000000 80.000000 +[Debug] talker-input-embed: [52, 2048] first4: 0.018740 -0.007903 0.004584 -0.013295 +[Debug] trailing-text-hidden: [1, 2048] first4: -0.004532 0.007560 -0.004596 -0.000724 +[Debug] tts-pad-embed: [2048] first4: -0.004532 0.007560 -0.004596 -0.000724 +[Debug] talker-hidden-prefill-l0: [52, 2048] first4: -0.377575 -0.053131 -0.039824 -0.054256 +[Debug] talker-hidden-prefill-l7: [52, 2048] first4: -0.919110 0.546713 0.930030 0.992750 +[Debug] talker-hidden-prefill-l14: [52, 2048] first4: -0.698142 0.742027 1.047814 0.901879 +[Debug] talker-hidden-prefill-l21: [52, 2048] first4: -0.293931 0.674182 1.303768 0.486382 +[Debug] talker-hidden-prefill-l27: [52, 2048] first4: -6.640275 -28.858603 -2.782673 32.034184 +[Debug] talker-hidden-prefill-final: [52, 2048] first4: -0.300680 -1.364321 -0.116567 1.322748 +[Debug] talker-logits-prefill: [3072] first4: -3.029268 -10.119147 -1.570518 -3.061075 +[Sample] step=0 c0=1995 u=-1.0000000000 subseq=0 +[Sample-CP] g=0 c=1642 u=-1.0000000000 subseq=1 +[Sample-CP] g=1 c=1398 u=-1.0000000000 subseq=2 +[Sample-CP] g=2 c=1703 u=-1.0000000000 subseq=3 +[Sample-CP] g=3 c=1047 u=-1.0000000000 subseq=4 +[Sample-CP] g=4 c=37 u=-1.0000000000 subseq=5 +[Sample-CP] g=5 c=1759 u=-1.0000000000 subseq=6 +[Sample-CP] g=6 c=1163 u=-1.0000000000 subseq=7 +[Sample-CP] g=7 c=564 u=-1.0000000000 subseq=8 +[Sample-CP] g=8 c=1 u=-1.0000000000 subseq=9 +[Sample-CP] g=9 c=743 u=-1.0000000000 subseq=10 +[Sample-CP] g=10 c=796 u=-1.0000000000 subseq=11 +[Sample-CP] g=11 c=783 u=-1.0000000000 subseq=12 +[Sample-CP] g=12 c=1999 u=-1.0000000000 subseq=13 +[Sample-CP] g=13 c=82 u=-1.0000000000 subseq=14 +[Sample-CP] g=14 c=803 u=-1.0000000000 subseq=15 +[Debug] codes-step0: [16] first4: 1995.000000 1642.000000 1398.000000 1703.000000 +[Debug] next-emb-step0: [2048] first4: 0.004818 -0.029755 0.017770 0.080159 +[Debug] talker-hidden-step1: [2048] first4: 0.550205 -0.654532 7.058204 -3.804739 +[Sample] step=1 c0=2042 u=-1.0000000000 subseq=16 +[Sample-CP] g=0 c=1230 u=-1.0000000000 subseq=17 +[Sample-CP] g=1 c=141 u=-1.0000000000 subseq=18 +[Sample-CP] g=2 c=1879 u=-1.0000000000 subseq=19 +[Sample-CP] g=3 c=371 u=-1.0000000000 subseq=20 +[Sample-CP] g=4 c=628 u=-1.0000000000 subseq=21 +[Sample-CP] g=5 c=1799 u=-1.0000000000 subseq=22 +[Sample-CP] g=6 c=187 u=-1.0000000000 subseq=23 +[Sample-CP] g=7 c=645 u=-1.0000000000 subseq=24 +[Sample-CP] g=8 c=834 u=-1.0000000000 subseq=25 +[Sample-CP] g=9 c=908 u=-1.0000000000 subseq=26 +[Sample-CP] g=10 c=132 u=-1.0000000000 subseq=27 +[Sample-CP] g=11 c=942 u=-1.0000000000 subseq=28 +[Sample-CP] g=12 c=1522 u=-1.0000000000 subseq=29 +[Sample-CP] g=13 c=317 u=-1.0000000000 subseq=30 +[Sample-CP] g=14 c=623 u=-1.0000000000 subseq=31 +[Pipeline] Generated 8 frames +[Pipeline] Generated 16 frames +[Pipeline] Generated 24 frames +[Pipeline] Generated 32 frames +[Pipeline] Generated 40 frames +[Pipeline] Generated 48 frames +[Pipeline] Generated 56 frames +[Pipeline] Generated 64 frames +[Pipeline] Generation done : 64 frames +[Debug] codes-full: [64, 16] first4: 1995.000000 1642.000000 1398.000000 1703.000000 +[Debug] output-audio: [122880] first4: 0.000048 0.000056 0.000045 0.000048 +[WAV] Wrote cpp/tts/tts-cpp.wav: 122880 samples, 24000 Hz, mono S16 +[Pipeline] Wrote 122880 samples (5.12 s) -> cpp/tts/tts-cpp.wav +[Input] Prompt: 100 chars: qwentts.cpp is a minimal C++17 and GGML port of Qwen3-TTS fo... +[Input] Instruct: male, young adult, moderate pitch +[Input] Lang: english Seed: 42 MaxNewTokens: 64 +[Input] Mode: greedy +[Python] Device: cuda +[Python] InputIds shape: (1, 38) +[Python] InstructIds shape: (1, 12) +[Python] Codes shape: (63, 16) (T_frames, num_code_groups) +[Python] Audio: 120960 samples 24000 Hz 5.04s -> python/tts/tts-python.wav +[Quant] F32 -> ../models/qwen-talker-1.7b-voicedesign-F32.gguf + ../models/qwen-tokenizer-12hz-F32.gguf +[GGML] Cmd: ../build/qwen-tts --model ../models/qwen-talker-1.7b-voicedesign-F32.gguf --codec ../models/qwen-tokenizer-12hz-F32.gguf --seed 42 --text qwentts.cpp is a minimal C++17 and GGML port of Qwen3-TTS for zero shot multilingual text to speech. --instruct male, young adult, moderate pitch --lang english --max-new 64 --dump cpp/tts -o cpp/tts/tts-cpp.wav --greedy +[GGML] Audio: 122880 samples 24000 Hz 5.12s -> cpp/tts/tts-cpp.wav +[Cossim] PromptIDs exact: 100.00% (38 values) +[Cossim] Embed cos: 1.000000 max: 2.3842e-06 mean: 1.8509e-08 +[Cossim] TrailingText cos: 1.000000 max: 8.0466e-07 mean: 9.1670e-09 +[Cossim] TTSPadEmbed cos: 1.000000 max: 8.0466e-07 mean: 9.1670e-09 +[Cossim] L0 cos: 1.000000 max: 2.2888e-05 mean: 6.9453e-08 +[Cossim] L7 cos: 1.000000 max: 4.8828e-04 mean: 3.9031e-07 +[Cossim] L14 cos: 1.000000 max: 4.8828e-04 mean: 9.1018e-07 +[Cossim] L21 cos: 1.000000 max: 4.8828e-04 mean: 2.7898e-06 +[Cossim] L27 cos: 1.000000 max: 3.4180e-03 mean: 1.0663e-05 +[Cossim] Final cos: 1.000000 max: 2.3651e-04 mean: 1.3797e-06 +[Cossim] Logits cos: 1.000000 max: 1.7285e-05 mean: 2.6001e-06 +[Cossim] NextEmbStep0 cos: 1.000000 max: 8.3447e-07 mean: 9.2208e-09 +[Cossim] TalkerHiddenStep1 cos: 1.000000 max: 1.7166e-05 mean: 2.3196e-06 +[Cossim] CodesFull exact: 100.00% (1008 values) +[Cossim] Audio cos: 0.999998 +[Cossim] WAV stft_cos: 0.999999 samples: 120960 diff --git a/tests/tts-CUDA0-Q4_K_M.log b/tests/tts-CUDA0-Q4_K_M.log new file mode 100644 index 0000000..570aad2 --- /dev/null +++ b/tests/tts-CUDA0-Q4_K_M.log @@ -0,0 +1,125 @@ +ggml_cuda_init: found 1 CUDA devices (Total VRAM: 97247 MiB): + Device 0: NVIDIA RTX PRO 6000 Blackwell Workstation Edition, compute capability 12.0, VMM: yes, VRAM: 97247 MiB +load_backend: loaded CUDA backend from /mnt/workspace/qwentts.cpp/build/libggml-cuda.so +ggml_vulkan: Found 1 Vulkan devices: +ggml_vulkan: 0 = NVIDIA RTX PRO 6000 Blackwell Workstation Edition (NVIDIA) | uma: 0 | fp16: 1 | bf16: 0 | warp size: 32 | shared memory: 49152 | int dot: 1 | matrix cores: NV_coopmat2 +load_backend: loaded Vulkan backend from /mnt/workspace/qwentts.cpp/build/libggml-vulkan.so +load_backend: loaded CPU backend from /mnt/workspace/qwentts.cpp/build/libggml-cpu-zen4.so +[Load] Talker backend: CUDA0 (CPU threads: 16) +[GGUF] ../models/qwen-talker-1.7b-voicedesign-Q4_K_M.gguf: 404 tensors, data at offset 5949344 +[WeightCtx] Loaded 316 tensors, 1012.7 MB into backend +[Talker] Loaded: 28 layers, hidden 2048, heads 16/8, head_dim 128, FFN 6144, RoPE theta 1000000, mrope sections [24,20,20] interleaved=0 +[WeightCtx] Loaded 88 tensors, 109.5 MB into backend +[CodePredictor] Loaded: 5 layers, hidden 1024, heads 16/8, head_dim 128, FFN 3072, RoPE theta 1000000, 15 acoustic codebooks (vocab 2048 each), mtp_proj linear +[GGUF] ../models/qwen-tokenizer-12hz-Q4_K_M.gguf: 398 tensors, data at offset 29760 +[WeightCtx] Loaded 18 tensors, 33.0 MB into backend +[Quantizer] Loaded: 16 codebooks (1 semantic + 15 acoustic), 2048 entries x 256 dim, hidden 512 +[WeightCtx] Loaded 93 tensors, 16.4 MB into backend +[Transformer] Loaded: 8 layers, hidden 512, heads 16/16, head_dim 64, FFN 1024, RoPE theta 10000, sliding window 72 +[WeightCtx] Loaded 22 tensors, 25.1 MB into backend +[Upsample] Loaded: 2 blocks (2x ratio per block), channels 1024, dwconv kernel 7 +[WeightCtx] Loaded 118 tensors, 142.9 MB into backend +[DAC] Loaded: 4 blocks (strides 8/5/4/3), 24 kHz mono out, weights 142.9 MB +[WeightCtx] Loaded 2 tensors, 3.0 MB into backend +[WeightCtx] Loaded 28 tensors, 24.1 MB into backend +[SEANet] Loaded: 4 stages (ratios 4/5/6/8), 64 -> 512 channels, weights 24.1 MB +[WeightCtx] Loaded 96 tensors, 13.6 MB into backend +[EncTransformer] Loaded: 8 layers, hidden 512, heads 8/8, head_dim 64, FFN 2048, RoPE theta 10000 +[WeightCtx] Loaded 1 tensors, 2.0 MB into backend +[EncDownsample] Loaded: k=4 stride=2, 512 -> 512 channels, weights 2.0 MB +[WeightCtx] Loaded 20 tensors, 34.0 MB into backend +[EncQuantizer] Loaded: 16 codebooks (1 semantic + 15 acoustic), 2048 entries x 256 dim, hidden 512, weights 34.0 MB +[Pipeline] Ready: hop 1920 samples @ 24000 Hz mono, 16 codebooks @ 12.5 Hz +[KVCache] Allocated: 28 layers, 8 KV heads, head_dim 128, max_seq_len 4096 -> 896 MB +[KVCache] Allocated: 5 layers, 8 KV heads, head_dim 128, max_seq_len 16 -> 0 MB +[Pipeline] Loaded: arch=1b7 variant=voice_design tokenizer=qwen3_tts_tokenizer_12hz codebooks=16 speaker_encoder=absent speakers=0 +[BPE] Loaded from GGUF: 151676 vocab, 151291 merges, eos_id=151643 +[BPE] Registered 5 arch special tokens (total specials=6) +[Prompt] Built: 38 ids, N_text=30, N_instruct=12, T_ctx=52, hidden=2048, lang=english (id=2050), speaker=none (id=-1) ref_spk_emb=no icl=no +[Debug] prompt-ids: [38] first4: 151644.000000 77091.000000 198.000000 80.000000 +[Debug] talker-input-embed: [52, 2048] first4: 0.017779 -0.008618 0.002377 -0.014714 +[Debug] trailing-text-hidden: [1, 2048] first4: -0.004540 0.007622 -0.004462 -0.000982 +[Debug] tts-pad-embed: [2048] first4: -0.004540 0.007622 -0.004462 -0.000982 +[Debug] talker-hidden-prefill-l0: [52, 2048] first4: -0.371689 -0.023940 -0.019825 -0.090360 +[Debug] talker-hidden-prefill-l7: [52, 2048] first4: -11.135981 0.675024 5.790349 -2.381296 +[Debug] talker-hidden-prefill-l14: [52, 2048] first4: -10.706117 0.605723 5.933682 -2.483038 +[Debug] talker-hidden-prefill-l21: [52, 2048] first4: -9.700500 -0.234456 6.598506 -1.840014 +[Debug] talker-hidden-prefill-l27: [52, 2048] first4: -13.985462 -29.550419 6.957130 29.017033 +[Debug] talker-hidden-prefill-final: [52, 2048] first4: -0.661750 -1.459834 0.304538 1.252031 +[Debug] talker-logits-prefill: [3072] first4: -6.002866 -8.173971 0.543856 0.185978 +[Sample] step=0 c0=1995 u=-1.0000000000 subseq=0 +[Sample-CP] g=0 c=1642 u=-1.0000000000 subseq=1 +[Sample-CP] g=1 c=1398 u=-1.0000000000 subseq=2 +[Sample-CP] g=2 c=2030 u=-1.0000000000 subseq=3 +[Sample-CP] g=3 c=6 u=-1.0000000000 subseq=4 +[Sample-CP] g=4 c=2026 u=-1.0000000000 subseq=5 +[Sample-CP] g=5 c=1751 u=-1.0000000000 subseq=6 +[Sample-CP] g=6 c=99 u=-1.0000000000 subseq=7 +[Sample-CP] g=7 c=971 u=-1.0000000000 subseq=8 +[Sample-CP] g=8 c=1221 u=-1.0000000000 subseq=9 +[Sample-CP] g=9 c=288 u=-1.0000000000 subseq=10 +[Sample-CP] g=10 c=248 u=-1.0000000000 subseq=11 +[Sample-CP] g=11 c=706 u=-1.0000000000 subseq=12 +[Sample-CP] g=12 c=1759 u=-1.0000000000 subseq=13 +[Sample-CP] g=13 c=812 u=-1.0000000000 subseq=14 +[Sample-CP] g=14 c=1435 u=-1.0000000000 subseq=15 +[Debug] codes-step0: [16] first4: 1995.000000 1642.000000 1398.000000 2030.000000 +[Debug] next-emb-step0: [2048] first4: 0.052074 -0.063247 0.048163 0.061720 +[Debug] talker-hidden-step1: [2048] first4: 0.974696 -1.231946 4.508642 -3.423083 +[Sample] step=1 c0=215 u=-1.0000000000 subseq=16 +[Sample-CP] g=0 c=1782 u=-1.0000000000 subseq=17 +[Sample-CP] g=1 c=1398 u=-1.0000000000 subseq=18 +[Sample-CP] g=2 c=1336 u=-1.0000000000 subseq=19 +[Sample-CP] g=3 c=1531 u=-1.0000000000 subseq=20 +[Sample-CP] g=4 c=278 u=-1.0000000000 subseq=21 +[Sample-CP] g=5 c=1155 u=-1.0000000000 subseq=22 +[Sample-CP] g=6 c=1902 u=-1.0000000000 subseq=23 +[Sample-CP] g=7 c=1440 u=-1.0000000000 subseq=24 +[Sample-CP] g=8 c=1124 u=-1.0000000000 subseq=25 +[Sample-CP] g=9 c=324 u=-1.0000000000 subseq=26 +[Sample-CP] g=10 c=1331 u=-1.0000000000 subseq=27 +[Sample-CP] g=11 c=914 u=-1.0000000000 subseq=28 +[Sample-CP] g=12 c=1759 u=-1.0000000000 subseq=29 +[Sample-CP] g=13 c=1772 u=-1.0000000000 subseq=30 +[Sample-CP] g=14 c=803 u=-1.0000000000 subseq=31 +[Pipeline] Generated 8 frames +[Pipeline] Generated 16 frames +[Pipeline] Generated 24 frames +[Pipeline] Generated 32 frames +[Pipeline] Generated 40 frames +[Pipeline] Generated 48 frames +[Pipeline] Generated 56 frames +[Pipeline] Generated 64 frames +[Pipeline] Generation done : 64 frames +[Debug] codes-full: [64, 16] first4: 1995.000000 1642.000000 1398.000000 2030.000000 +[Debug] output-audio: [122880] first4: 0.000106 0.000147 0.000150 0.000143 +[WAV] Wrote cpp/tts/tts-cpp.wav: 122880 samples, 24000 Hz, mono S16 +[Pipeline] Wrote 122880 samples (5.12 s) -> cpp/tts/tts-cpp.wav +[Input] Prompt: 100 chars: qwentts.cpp is a minimal C++17 and GGML port of Qwen3-TTS fo... +[Input] Instruct: male, young adult, moderate pitch +[Input] Lang: english Seed: 42 MaxNewTokens: 64 +[Input] Mode: greedy +[Python] Device: cuda +[Python] InputIds shape: (1, 38) +[Python] InstructIds shape: (1, 12) +[Python] Codes shape: (63, 16) (T_frames, num_code_groups) +[Python] Audio: 120960 samples 24000 Hz 5.04s -> python/tts/tts-python.wav +[Quant] Q4_K_M -> ../models/qwen-talker-1.7b-voicedesign-Q4_K_M.gguf + ../models/qwen-tokenizer-12hz-Q4_K_M.gguf +[GGML] Cmd: ../build/qwen-tts --model ../models/qwen-talker-1.7b-voicedesign-Q4_K_M.gguf --codec ../models/qwen-tokenizer-12hz-Q4_K_M.gguf --seed 42 --text qwentts.cpp is a minimal C++17 and GGML port of Qwen3-TTS for zero shot multilingual text to speech. --instruct male, young adult, moderate pitch --lang english --max-new 64 --dump cpp/tts -o cpp/tts/tts-cpp.wav --greedy +[GGML] Audio: 122880 samples 24000 Hz 5.12s -> cpp/tts/tts-cpp.wav +[Cossim] PromptIDs exact: 100.00% (38 values) +[Cossim] Embed cos: 0.999680 max: 1.3213e-02 mean: 9.5199e-04 +[Cossim] TrailingText cos: 0.999969 max: 2.4252e-03 mean: 2.2081e-04 +[Cossim] TTSPadEmbed cos: 0.999969 max: 2.4252e-03 mean: 2.2081e-04 +[Cossim] L0 cos: 0.999158 max: 8.3527e-01 mean: 6.7138e-03 +[Cossim] L7 cos: 0.997488 max: 1.3347e+02 mean: 4.3744e-01 +[Cossim] L14 cos: 0.997461 max: 1.3464e+02 mean: 5.4416e-01 +[Cossim] L21 cos: 0.997052 max: 1.3294e+02 mean: 1.0180e+00 +[Cossim] L27 cos: 0.988593 max: 5.2666e+02 mean: 4.5783e+00 +[Cossim] Final cos: 0.929912 max: 2.7847e+01 mean: 5.2305e-01 +[Cossim] Logits cos: 0.883872 max: 9.1003e+00 mean: 1.7283e+00 +[Cossim] NextEmbStep0 cos: 0.784060 max: 1.5974e-01 mean: 3.5553e-02 +[Cossim] TalkerHiddenStep1 cos: 0.693917 max: 9.2592e+00 mean: 1.8013e+00 +[Cossim] CodesFull exact: 0.30% (1008 values) +[Cossim] Audio cos: 0.013818 +[Cossim] WAV stft_cos: 0.143592 samples: 120960 diff --git a/tests/tts-CUDA0-Q8_0.log b/tests/tts-CUDA0-Q8_0.log new file mode 100644 index 0000000..1d1341b --- /dev/null +++ b/tests/tts-CUDA0-Q8_0.log @@ -0,0 +1,125 @@ +ggml_cuda_init: found 1 CUDA devices (Total VRAM: 97247 MiB): + Device 0: NVIDIA RTX PRO 6000 Blackwell Workstation Edition, compute capability 12.0, VMM: yes, VRAM: 97247 MiB +load_backend: loaded CUDA backend from /mnt/workspace/qwentts.cpp/build/libggml-cuda.so +ggml_vulkan: Found 1 Vulkan devices: +ggml_vulkan: 0 = NVIDIA RTX PRO 6000 Blackwell Workstation Edition (NVIDIA) | uma: 0 | fp16: 1 | bf16: 0 | warp size: 32 | shared memory: 49152 | int dot: 1 | matrix cores: NV_coopmat2 +load_backend: loaded Vulkan backend from /mnt/workspace/qwentts.cpp/build/libggml-vulkan.so +load_backend: loaded CPU backend from /mnt/workspace/qwentts.cpp/build/libggml-cpu-zen4.so +[Load] Talker backend: CUDA0 (CPU threads: 16) +[GGUF] ../models/qwen-talker-1.7b-voicedesign-Q8_0.gguf: 404 tensors, data at offset 5949344 +[WeightCtx] Loaded 316 tensors, 1765.0 MB into backend +[Talker] Loaded: 28 layers, hidden 2048, heads 16/8, head_dim 128, FFN 6144, RoPE theta 1000000, mrope sections [24,20,20] interleaved=0 +[WeightCtx] Loaded 88 tensors, 177.5 MB into backend +[CodePredictor] Loaded: 5 layers, hidden 1024, heads 16/8, head_dim 128, FFN 3072, RoPE theta 1000000, 15 acoustic codebooks (vocab 2048 each), mtp_proj linear +[GGUF] ../models/qwen-tokenizer-12hz-Q8_0.gguf: 398 tensors, data at offset 29760 +[WeightCtx] Loaded 18 tensors, 33.0 MB into backend +[Quantizer] Loaded: 16 codebooks (1 semantic + 15 acoustic), 2048 entries x 256 dim, hidden 512 +[WeightCtx] Loaded 93 tensors, 30.9 MB into backend +[Transformer] Loaded: 8 layers, hidden 512, heads 16/16, head_dim 64, FFN 1024, RoPE theta 10000, sliding window 72 +[WeightCtx] Loaded 22 tensors, 33.1 MB into backend +[Upsample] Loaded: 2 blocks (2x ratio per block), channels 1024, dwconv kernel 7 +[WeightCtx] Loaded 118 tensors, 142.9 MB into backend +[DAC] Loaded: 4 blocks (strides 8/5/4/3), 24 kHz mono out, weights 142.9 MB +[WeightCtx] Loaded 2 tensors, 3.0 MB into backend +[WeightCtx] Loaded 28 tensors, 24.1 MB into backend +[SEANet] Loaded: 4 stages (ratios 4/5/6/8), 64 -> 512 channels, weights 24.1 MB +[WeightCtx] Loaded 96 tensors, 25.6 MB into backend +[EncTransformer] Loaded: 8 layers, hidden 512, heads 8/8, head_dim 64, FFN 2048, RoPE theta 10000 +[WeightCtx] Loaded 1 tensors, 2.0 MB into backend +[EncDownsample] Loaded: k=4 stride=2, 512 -> 512 channels, weights 2.0 MB +[WeightCtx] Loaded 20 tensors, 34.0 MB into backend +[EncQuantizer] Loaded: 16 codebooks (1 semantic + 15 acoustic), 2048 entries x 256 dim, hidden 512, weights 34.0 MB +[Pipeline] Ready: hop 1920 samples @ 24000 Hz mono, 16 codebooks @ 12.5 Hz +[KVCache] Allocated: 28 layers, 8 KV heads, head_dim 128, max_seq_len 4096 -> 896 MB +[KVCache] Allocated: 5 layers, 8 KV heads, head_dim 128, max_seq_len 16 -> 0 MB +[Pipeline] Loaded: arch=1b7 variant=voice_design tokenizer=qwen3_tts_tokenizer_12hz codebooks=16 speaker_encoder=absent speakers=0 +[BPE] Loaded from GGUF: 151676 vocab, 151291 merges, eos_id=151643 +[BPE] Registered 5 arch special tokens (total specials=6) +[Prompt] Built: 38 ids, N_text=30, N_instruct=12, T_ctx=52, hidden=2048, lang=english (id=2050), speaker=none (id=-1) ref_spk_emb=no icl=no +[Debug] prompt-ids: [38] first4: 151644.000000 77091.000000 198.000000 80.000000 +[Debug] talker-input-embed: [52, 2048] first4: 0.018647 -0.007834 0.004680 -0.013328 +[Debug] trailing-text-hidden: [1, 2048] first4: -0.004554 0.007647 -0.004656 -0.000707 +[Debug] tts-pad-embed: [2048] first4: -0.004554 0.007647 -0.004656 -0.000707 +[Debug] talker-hidden-prefill-l0: [52, 2048] first4: -0.383302 -0.050605 -0.040526 -0.049895 +[Debug] talker-hidden-prefill-l7: [52, 2048] first4: -1.393858 0.381871 1.525452 0.556245 +[Debug] talker-hidden-prefill-l14: [52, 2048] first4: -1.167568 0.580672 1.653311 0.469169 +[Debug] talker-hidden-prefill-l21: [52, 2048] first4: -0.757229 0.472590 1.960911 0.103175 +[Debug] talker-hidden-prefill-l27: [52, 2048] first4: -6.869149 -29.638502 -2.016915 31.724474 +[Debug] talker-hidden-prefill-final: [52, 2048] first4: -0.308995 -1.391961 -0.083932 1.301329 +[Debug] talker-logits-prefill: [3072] first4: -2.926836 -10.031683 -1.534877 -3.103800 +[Sample] step=0 c0=1995 u=-1.0000000000 subseq=0 +[Sample-CP] g=0 c=1642 u=-1.0000000000 subseq=1 +[Sample-CP] g=1 c=1398 u=-1.0000000000 subseq=2 +[Sample-CP] g=2 c=1703 u=-1.0000000000 subseq=3 +[Sample-CP] g=3 c=1047 u=-1.0000000000 subseq=4 +[Sample-CP] g=4 c=37 u=-1.0000000000 subseq=5 +[Sample-CP] g=5 c=1759 u=-1.0000000000 subseq=6 +[Sample-CP] g=6 c=1163 u=-1.0000000000 subseq=7 +[Sample-CP] g=7 c=564 u=-1.0000000000 subseq=8 +[Sample-CP] g=8 c=1 u=-1.0000000000 subseq=9 +[Sample-CP] g=9 c=743 u=-1.0000000000 subseq=10 +[Sample-CP] g=10 c=796 u=-1.0000000000 subseq=11 +[Sample-CP] g=11 c=783 u=-1.0000000000 subseq=12 +[Sample-CP] g=12 c=1999 u=-1.0000000000 subseq=13 +[Sample-CP] g=13 c=82 u=-1.0000000000 subseq=14 +[Sample-CP] g=14 c=803 u=-1.0000000000 subseq=15 +[Debug] codes-step0: [16] first4: 1995.000000 1642.000000 1398.000000 1703.000000 +[Debug] next-emb-step0: [2048] first4: 0.004793 -0.029425 0.017809 0.080303 +[Debug] talker-hidden-step1: [2048] first4: 0.518513 -0.706861 6.929946 -3.851983 +[Sample] step=1 c0=2042 u=-1.0000000000 subseq=16 +[Sample-CP] g=0 c=1230 u=-1.0000000000 subseq=17 +[Sample-CP] g=1 c=141 u=-1.0000000000 subseq=18 +[Sample-CP] g=2 c=1879 u=-1.0000000000 subseq=19 +[Sample-CP] g=3 c=371 u=-1.0000000000 subseq=20 +[Sample-CP] g=4 c=628 u=-1.0000000000 subseq=21 +[Sample-CP] g=5 c=1799 u=-1.0000000000 subseq=22 +[Sample-CP] g=6 c=187 u=-1.0000000000 subseq=23 +[Sample-CP] g=7 c=645 u=-1.0000000000 subseq=24 +[Sample-CP] g=8 c=834 u=-1.0000000000 subseq=25 +[Sample-CP] g=9 c=943 u=-1.0000000000 subseq=26 +[Sample-CP] g=10 c=1520 u=-1.0000000000 subseq=27 +[Sample-CP] g=11 c=958 u=-1.0000000000 subseq=28 +[Sample-CP] g=12 c=772 u=-1.0000000000 subseq=29 +[Sample-CP] g=13 c=1728 u=-1.0000000000 subseq=30 +[Sample-CP] g=14 c=1 u=-1.0000000000 subseq=31 +[Pipeline] Generated 8 frames +[Pipeline] Generated 16 frames +[Pipeline] Generated 24 frames +[Pipeline] Generated 32 frames +[Pipeline] Generated 40 frames +[Pipeline] Generated 48 frames +[Pipeline] Generated 56 frames +[Pipeline] Generated 64 frames +[Pipeline] Generation done : 64 frames +[Debug] codes-full: [64, 16] first4: 1995.000000 1642.000000 1398.000000 1703.000000 +[Debug] output-audio: [122880] first4: 0.000048 0.000057 0.000046 0.000047 +[WAV] Wrote cpp/tts/tts-cpp.wav: 122880 samples, 24000 Hz, mono S16 +[Pipeline] Wrote 122880 samples (5.12 s) -> cpp/tts/tts-cpp.wav +[Input] Prompt: 100 chars: qwentts.cpp is a minimal C++17 and GGML port of Qwen3-TTS fo... +[Input] Instruct: male, young adult, moderate pitch +[Input] Lang: english Seed: 42 MaxNewTokens: 64 +[Input] Mode: greedy +[Python] Device: cuda +[Python] InputIds shape: (1, 38) +[Python] InstructIds shape: (1, 12) +[Python] Codes shape: (63, 16) (T_frames, num_code_groups) +[Python] Audio: 120960 samples 24000 Hz 5.04s -> python/tts/tts-python.wav +[Quant] Q8_0 -> ../models/qwen-talker-1.7b-voicedesign-Q8_0.gguf + ../models/qwen-tokenizer-12hz-Q8_0.gguf +[GGML] Cmd: ../build/qwen-tts --model ../models/qwen-talker-1.7b-voicedesign-Q8_0.gguf --codec ../models/qwen-tokenizer-12hz-Q8_0.gguf --seed 42 --text qwentts.cpp is a minimal C++17 and GGML port of Qwen3-TTS for zero shot multilingual text to speech. --instruct male, young adult, moderate pitch --lang english --max-new 64 --dump cpp/tts -o cpp/tts/tts-cpp.wav --greedy +[GGML] Audio: 122880 samples 24000 Hz 5.12s -> cpp/tts/tts-cpp.wav +[Cossim] PromptIDs exact: 100.00% (38 values) +[Cossim] Embed cos: 0.999989 max: 2.2227e-03 mean: 1.6673e-04 +[Cossim] TrailingText cos: 0.999999 max: 1.8711e-04 mean: 4.2146e-05 +[Cossim] TTSPadEmbed cos: 0.999999 max: 1.8711e-04 mean: 4.2146e-05 +[Cossim] L0 cos: 0.999985 max: 4.3993e-02 mean: 9.2738e-04 +[Cossim] L7 cos: 0.999987 max: 9.9563e+00 mean: 3.3943e-02 +[Cossim] L14 cos: 0.999987 max: 9.9055e+00 mean: 4.4787e-02 +[Cossim] L21 cos: 0.999983 max: 9.6638e+00 mean: 8.9751e-02 +[Cossim] L27 cos: 0.999887 max: 1.3903e+02 mean: 4.0896e-01 +[Cossim] Final cos: 0.999444 max: 3.9794e+00 mean: 4.7093e-02 +[Cossim] Logits cos: 0.999819 max: 3.5383e-01 mean: 5.5424e-02 +[Cossim] NextEmbStep0 cos: 0.999990 max: 1.0252e-03 mean: 2.4056e-04 +[Cossim] TalkerHiddenStep1 cos: 0.999389 max: 4.4522e-01 mean: 7.6610e-02 +[Cossim] CodesFull exact: 4.17% (1008 values) +[Cossim] Audio cos: 0.000338 +[Cossim] WAV stft_cos: 0.300761 samples: 120960 diff --git a/tests/tts-Vulkan0-BF16.log b/tests/tts-Vulkan0-BF16.log new file mode 100644 index 0000000..a31a452 --- /dev/null +++ b/tests/tts-Vulkan0-BF16.log @@ -0,0 +1,30 @@ +ggml_cuda_init: found 1 CUDA devices (Total VRAM: 97247 MiB): + Device 0: NVIDIA RTX PRO 6000 Blackwell Workstation Edition, compute capability 12.0, VMM: yes, VRAM: 97247 MiB +load_backend: loaded CUDA backend from /mnt/workspace/qwentts.cpp/build/libggml-cuda.so +ggml_vulkan: Found 1 Vulkan devices: +ggml_vulkan: 0 = NVIDIA RTX PRO 6000 Blackwell Workstation Edition (NVIDIA) | uma: 0 | fp16: 1 | bf16: 0 | warp size: 32 | shared memory: 49152 | int dot: 1 | matrix cores: NV_coopmat2 +load_backend: loaded Vulkan backend from /mnt/workspace/qwentts.cpp/build/libggml-vulkan.so +load_backend: loaded CPU backend from /mnt/workspace/qwentts.cpp/build/libggml-cpu-zen4.so +[Load] Talker backend: Vulkan0 (CPU threads: 16) +[GGUF] ../models/qwen-talker-1.7b-voicedesign-BF16.gguf: 404 tensors, data at offset 5949344 +[WeightCtx] Loaded 316 tensors, 3322.0 MB into backend +[Talker] Loaded: 28 layers, hidden 2048, heads 16/8, head_dim 128, FFN 6144, RoPE theta 1000000, mrope sections [24,20,20] interleaved=0 +[WeightCtx] Loaded 88 tensors, 334.1 MB into backend +[CodePredictor] Loaded: 5 layers, hidden 1024, heads 16/8, head_dim 128, FFN 3072, RoPE theta 1000000, 15 acoustic codebooks (vocab 2048 each), mtp_proj linear +[GGUF] ../models/qwen-tokenizer-12hz-BF16.gguf: 398 tensors, data at offset 29760 +[WeightCtx] Loaded 18 tensors, 33.0 MB into backend +[Quantizer] Loaded: 16 codebooks (1 semantic + 15 acoustic), 2048 entries x 256 dim, hidden 512 +[WeightCtx] Loaded 93 tensors, 58.1 MB into backend +[Transformer] Loaded: 8 layers, hidden 512, heads 16/16, head_dim 64, FFN 1024, RoPE theta 10000, sliding window 72 +[CausalTransConv] FATAL: 'tok_dec.upsample.0.conv.weight' expected F32 or F16, got type 30 +[Input] Prompt: 100 chars: qwentts.cpp is a minimal C++17 and GGML port of Qwen3-TTS fo... +[Input] Instruct: male, young adult, moderate pitch +[Input] Lang: english Seed: 42 MaxNewTokens: 64 +[Input] Mode: greedy +[Python] Device: cuda +[Python] InputIds shape: (1, 38) +[Python] InstructIds shape: (1, 12) +[Python] Codes shape: (63, 16) (T_frames, num_code_groups) +[Python] Audio: 120960 samples 24000 Hz 5.04s -> python/tts/tts-python.wav +[Quant] BF16 -> ../models/qwen-talker-1.7b-voicedesign-BF16.gguf + ../models/qwen-tokenizer-12hz-BF16.gguf +[GGML] Cmd: ../build/qwen-tts --model ../models/qwen-talker-1.7b-voicedesign-BF16.gguf --codec ../models/qwen-tokenizer-12hz-BF16.gguf --seed 42 --text qwentts.cpp is a minimal C++17 and GGML port of Qwen3-TTS for zero shot multilingual text to speech. --instruct male, young adult, moderate pitch --lang english --max-new 64 --dump cpp/tts -o cpp/tts/tts-cpp.wav --greedy diff --git a/tests/tts-Vulkan0-F32.log b/tests/tts-Vulkan0-F32.log new file mode 100644 index 0000000..b43615c --- /dev/null +++ b/tests/tts-Vulkan0-F32.log @@ -0,0 +1,125 @@ +ggml_cuda_init: found 1 CUDA devices (Total VRAM: 97247 MiB): + Device 0: NVIDIA RTX PRO 6000 Blackwell Workstation Edition, compute capability 12.0, VMM: yes, VRAM: 97247 MiB +load_backend: loaded CUDA backend from /mnt/workspace/qwentts.cpp/build/libggml-cuda.so +ggml_vulkan: Found 1 Vulkan devices: +ggml_vulkan: 0 = NVIDIA RTX PRO 6000 Blackwell Workstation Edition (NVIDIA) | uma: 0 | fp16: 1 | bf16: 0 | warp size: 32 | shared memory: 49152 | int dot: 1 | matrix cores: NV_coopmat2 +load_backend: loaded Vulkan backend from /mnt/workspace/qwentts.cpp/build/libggml-vulkan.so +load_backend: loaded CPU backend from /mnt/workspace/qwentts.cpp/build/libggml-cpu-zen4.so +[Load] Talker backend: Vulkan0 (CPU threads: 16) +[GGUF] ../models/qwen-talker-1.7b-voicedesign-F32.gguf: 404 tensors, data at offset 5949248 +[WeightCtx] Loaded 316 tensors, 6643.5 MB into backend +[Talker] Loaded: 28 layers, hidden 2048, heads 16/8, head_dim 128, FFN 6144, RoPE theta 1000000, mrope sections [24,20,20] interleaved=0 +[WeightCtx] Loaded 88 tensors, 668.1 MB into backend +[CodePredictor] Loaded: 5 layers, hidden 1024, heads 16/8, head_dim 128, FFN 3072, RoPE theta 1000000, 15 acoustic codebooks (vocab 2048 each), mtp_proj linear +[GGUF] ../models/qwen-tokenizer-12hz-F32.gguf: 398 tensors, data at offset 29664 +[WeightCtx] Loaded 18 tensors, 33.0 MB into backend +[Quantizer] Loaded: 16 codebooks (1 semantic + 15 acoustic), 2048 entries x 256 dim, hidden 512 +[WeightCtx] Loaded 93 tensors, 116.1 MB into backend +[Transformer] Loaded: 8 layers, hidden 512, heads 16/16, head_dim 64, FFN 1024, RoPE theta 10000, sliding window 72 +[WeightCtx] Loaded 22 tensors, 80.1 MB into backend +[Upsample] Loaded: 2 blocks (2x ratio per block), channels 1024, dwconv kernel 7 +[WeightCtx] Loaded 118 tensors, 199.8 MB into backend +[DAC] Loaded: 4 blocks (strides 8/5/4/3), 24 kHz mono out, weights 199.8 MB +[WeightCtx] Loaded 2 tensors, 6.0 MB into backend +[WeightCtx] Loaded 28 tensors, 48.2 MB into backend +[SEANet] Loaded: 4 stages (ratios 4/5/6/8), 64 -> 512 channels, weights 48.2 MB +[WeightCtx] Loaded 96 tensors, 96.1 MB into backend +[EncTransformer] Loaded: 8 layers, hidden 512, heads 8/8, head_dim 64, FFN 2048, RoPE theta 10000 +[WeightCtx] Loaded 1 tensors, 4.0 MB into backend +[EncDownsample] Loaded: k=4 stride=2, 512 -> 512 channels, weights 4.0 MB +[WeightCtx] Loaded 20 tensors, 34.0 MB into backend +[EncQuantizer] Loaded: 16 codebooks (1 semantic + 15 acoustic), 2048 entries x 256 dim, hidden 512, weights 34.0 MB +[Pipeline] Ready: hop 1920 samples @ 24000 Hz mono, 16 codebooks @ 12.5 Hz +[KVCache] Allocated: 28 layers, 8 KV heads, head_dim 128, max_seq_len 4096 -> 896 MB +[KVCache] Allocated: 5 layers, 8 KV heads, head_dim 128, max_seq_len 16 -> 0 MB +[Pipeline] Loaded: arch=1b7 variant=voice_design tokenizer=qwen3_tts_tokenizer_12hz codebooks=16 speaker_encoder=absent speakers=0 +[BPE] Loaded from GGUF: 151676 vocab, 151291 merges, eos_id=151643 +[BPE] Registered 5 arch special tokens (total specials=6) +[Prompt] Built: 38 ids, N_text=30, N_instruct=12, T_ctx=52, hidden=2048, lang=english (id=2050), speaker=none (id=-1) ref_spk_emb=no icl=no +[Debug] prompt-ids: [38] first4: 151644.000000 77091.000000 198.000000 80.000000 +[Debug] talker-input-embed: [52, 2048] first4: 0.018740 -0.007903 0.004584 -0.013295 +[Debug] trailing-text-hidden: [1, 2048] first4: -0.004532 0.007560 -0.004596 -0.000724 +[Debug] tts-pad-embed: [2048] first4: -0.004532 0.007560 -0.004596 -0.000724 +[Debug] talker-hidden-prefill-l0: [52, 2048] first4: -0.377561 -0.053297 -0.039743 -0.054188 +[Debug] talker-hidden-prefill-l7: [52, 2048] first4: -0.920873 0.548539 0.926258 0.994933 +[Debug] talker-hidden-prefill-l14: [52, 2048] first4: -0.698720 0.743128 1.044047 0.903014 +[Debug] talker-hidden-prefill-l21: [52, 2048] first4: -0.290339 0.678288 1.299727 0.487553 +[Debug] talker-hidden-prefill-l27: [52, 2048] first4: -6.545020 -29.117104 -2.840297 32.037647 +[Debug] talker-hidden-prefill-final: [52, 2048] first4: -0.297654 -1.382519 -0.119497 1.328634 +[Debug] talker-logits-prefill: [3072] first4: -3.015625 -10.132812 -1.593750 -3.062500 +[Sample] step=0 c0=1995 u=-1.0000000000 subseq=0 +[Sample-CP] g=0 c=1642 u=-1.0000000000 subseq=1 +[Sample-CP] g=1 c=1602 u=-1.0000000000 subseq=2 +[Sample-CP] g=2 c=1088 u=-1.0000000000 subseq=3 +[Sample-CP] g=3 c=1000 u=-1.0000000000 subseq=4 +[Sample-CP] g=4 c=1521 u=-1.0000000000 subseq=5 +[Sample-CP] g=5 c=1767 u=-1.0000000000 subseq=6 +[Sample-CP] g=6 c=1023 u=-1.0000000000 subseq=7 +[Sample-CP] g=7 c=635 u=-1.0000000000 subseq=8 +[Sample-CP] g=8 c=398 u=-1.0000000000 subseq=9 +[Sample-CP] g=9 c=1820 u=-1.0000000000 subseq=10 +[Sample-CP] g=10 c=612 u=-1.0000000000 subseq=11 +[Sample-CP] g=11 c=157 u=-1.0000000000 subseq=12 +[Sample-CP] g=12 c=1794 u=-1.0000000000 subseq=13 +[Sample-CP] g=13 c=1399 u=-1.0000000000 subseq=14 +[Sample-CP] g=14 c=1772 u=-1.0000000000 subseq=15 +[Debug] codes-step0: [16] first4: 1995.000000 1642.000000 1602.000000 1088.000000 +[Debug] next-emb-step0: [2048] first4: 0.056980 -0.053437 0.010571 -0.035270 +[Debug] talker-hidden-step1: [2048] first4: -1.876469 -3.299715 -0.850600 -0.712180 +[Sample] step=1 c0=505 u=-1.0000000000 subseq=16 +[Sample-CP] g=0 c=1752 u=-1.0000000000 subseq=17 +[Sample-CP] g=1 c=878 u=-1.0000000000 subseq=18 +[Sample-CP] g=2 c=1112 u=-1.0000000000 subseq=19 +[Sample-CP] g=3 c=791 u=-1.0000000000 subseq=20 +[Sample-CP] g=4 c=1572 u=-1.0000000000 subseq=21 +[Sample-CP] g=5 c=267 u=-1.0000000000 subseq=22 +[Sample-CP] g=6 c=1731 u=-1.0000000000 subseq=23 +[Sample-CP] g=7 c=279 u=-1.0000000000 subseq=24 +[Sample-CP] g=8 c=1039 u=-1.0000000000 subseq=25 +[Sample-CP] g=9 c=346 u=-1.0000000000 subseq=26 +[Sample-CP] g=10 c=395 u=-1.0000000000 subseq=27 +[Sample-CP] g=11 c=1033 u=-1.0000000000 subseq=28 +[Sample-CP] g=12 c=1918 u=-1.0000000000 subseq=29 +[Sample-CP] g=13 c=1805 u=-1.0000000000 subseq=30 +[Sample-CP] g=14 c=193 u=-1.0000000000 subseq=31 +[Pipeline] Generated 8 frames +[Pipeline] Generated 16 frames +[Pipeline] Generated 24 frames +[Pipeline] Generated 32 frames +[Pipeline] Generated 40 frames +[Pipeline] Generated 48 frames +[Pipeline] Generated 56 frames +[Pipeline] Generated 64 frames +[Pipeline] Generation done : 64 frames +[Debug] codes-full: [64, 16] first4: 1995.000000 1642.000000 1602.000000 1088.000000 +[Debug] output-audio: [122880] first4: 0.000017 0.000020 0.000011 0.000011 +[WAV] Wrote cpp/tts/tts-cpp.wav: 122880 samples, 24000 Hz, mono S16 +[Pipeline] Wrote 122880 samples (5.12 s) -> cpp/tts/tts-cpp.wav +[Input] Prompt: 100 chars: qwentts.cpp is a minimal C++17 and GGML port of Qwen3-TTS fo... +[Input] Instruct: male, young adult, moderate pitch +[Input] Lang: english Seed: 42 MaxNewTokens: 64 +[Input] Mode: greedy +[Python] Device: cuda +[Python] InputIds shape: (1, 38) +[Python] InstructIds shape: (1, 12) +[Python] Codes shape: (63, 16) (T_frames, num_code_groups) +[Python] Audio: 120960 samples 24000 Hz 5.04s -> python/tts/tts-python.wav +[Quant] F32 -> ../models/qwen-talker-1.7b-voicedesign-F32.gguf + ../models/qwen-tokenizer-12hz-F32.gguf +[GGML] Cmd: ../build/qwen-tts --model ../models/qwen-talker-1.7b-voicedesign-F32.gguf --codec ../models/qwen-tokenizer-12hz-F32.gguf --seed 42 --text qwentts.cpp is a minimal C++17 and GGML port of Qwen3-TTS for zero shot multilingual text to speech. --instruct male, young adult, moderate pitch --lang english --max-new 64 --dump cpp/tts -o cpp/tts/tts-cpp.wav --greedy +[GGML] Audio: 122880 samples 24000 Hz 5.12s -> cpp/tts/tts-cpp.wav +[Cossim] PromptIDs exact: 100.00% (38 values) +[Cossim] Embed cos: 1.000000 max: 2.3842e-06 mean: 1.8509e-08 +[Cossim] TrailingText cos: 1.000000 max: 8.0466e-07 mean: 9.1670e-09 +[Cossim] TTSPadEmbed cos: 1.000000 max: 8.0466e-07 mean: 9.1670e-09 +[Cossim] L0 cos: 0.999998 max: 3.3560e-02 mean: 2.3534e-04 +[Cossim] L7 cos: 0.999997 max: 2.3657e+01 mean: 2.9852e-03 +[Cossim] L14 cos: 0.999997 max: 2.3630e+01 mean: 5.2238e-03 +[Cossim] L21 cos: 0.999997 max: 2.3655e+01 mean: 1.4206e-02 +[Cossim] L27 cos: 0.999992 max: 2.5899e+01 mean: 8.3456e-02 +[Cossim] Final cos: 0.999975 max: 6.5904e-01 mean: 9.2044e-03 +[Cossim] Logits cos: 0.999991 max: 8.7137e-02 mean: 1.3245e-02 +[Cossim] NextEmbStep0 cos: 0.564984 max: 2.6316e-01 mean: 4.8794e-02 +[Cossim] TalkerHiddenStep1 cos: 0.278505 max: 2.1955e+01 mean: 2.5290e+00 +[Cossim] CodesFull exact: 0.20% (1008 values) +[Cossim] Audio cos: 0.000892 +[Cossim] WAV stft_cos: 0.049533 samples: 120960 diff --git a/tests/tts-Vulkan0-Q4_K_M.log b/tests/tts-Vulkan0-Q4_K_M.log new file mode 100644 index 0000000..7f08077 --- /dev/null +++ b/tests/tts-Vulkan0-Q4_K_M.log @@ -0,0 +1,125 @@ +ggml_cuda_init: found 1 CUDA devices (Total VRAM: 97247 MiB): + Device 0: NVIDIA RTX PRO 6000 Blackwell Workstation Edition, compute capability 12.0, VMM: yes, VRAM: 97247 MiB +load_backend: loaded CUDA backend from /mnt/workspace/qwentts.cpp/build/libggml-cuda.so +ggml_vulkan: Found 1 Vulkan devices: +ggml_vulkan: 0 = NVIDIA RTX PRO 6000 Blackwell Workstation Edition (NVIDIA) | uma: 0 | fp16: 1 | bf16: 0 | warp size: 32 | shared memory: 49152 | int dot: 1 | matrix cores: NV_coopmat2 +load_backend: loaded Vulkan backend from /mnt/workspace/qwentts.cpp/build/libggml-vulkan.so +load_backend: loaded CPU backend from /mnt/workspace/qwentts.cpp/build/libggml-cpu-zen4.so +[Load] Talker backend: Vulkan0 (CPU threads: 16) +[GGUF] ../models/qwen-talker-1.7b-voicedesign-Q4_K_M.gguf: 404 tensors, data at offset 5949344 +[WeightCtx] Loaded 316 tensors, 1012.7 MB into backend +[Talker] Loaded: 28 layers, hidden 2048, heads 16/8, head_dim 128, FFN 6144, RoPE theta 1000000, mrope sections [24,20,20] interleaved=0 +[WeightCtx] Loaded 88 tensors, 109.5 MB into backend +[CodePredictor] Loaded: 5 layers, hidden 1024, heads 16/8, head_dim 128, FFN 3072, RoPE theta 1000000, 15 acoustic codebooks (vocab 2048 each), mtp_proj linear +[GGUF] ../models/qwen-tokenizer-12hz-Q4_K_M.gguf: 398 tensors, data at offset 29760 +[WeightCtx] Loaded 18 tensors, 33.0 MB into backend +[Quantizer] Loaded: 16 codebooks (1 semantic + 15 acoustic), 2048 entries x 256 dim, hidden 512 +[WeightCtx] Loaded 93 tensors, 16.4 MB into backend +[Transformer] Loaded: 8 layers, hidden 512, heads 16/16, head_dim 64, FFN 1024, RoPE theta 10000, sliding window 72 +[WeightCtx] Loaded 22 tensors, 25.1 MB into backend +[Upsample] Loaded: 2 blocks (2x ratio per block), channels 1024, dwconv kernel 7 +[WeightCtx] Loaded 118 tensors, 142.9 MB into backend +[DAC] Loaded: 4 blocks (strides 8/5/4/3), 24 kHz mono out, weights 142.9 MB +[WeightCtx] Loaded 2 tensors, 3.0 MB into backend +[WeightCtx] Loaded 28 tensors, 24.1 MB into backend +[SEANet] Loaded: 4 stages (ratios 4/5/6/8), 64 -> 512 channels, weights 24.1 MB +[WeightCtx] Loaded 96 tensors, 13.6 MB into backend +[EncTransformer] Loaded: 8 layers, hidden 512, heads 8/8, head_dim 64, FFN 2048, RoPE theta 10000 +[WeightCtx] Loaded 1 tensors, 2.0 MB into backend +[EncDownsample] Loaded: k=4 stride=2, 512 -> 512 channels, weights 2.0 MB +[WeightCtx] Loaded 20 tensors, 34.0 MB into backend +[EncQuantizer] Loaded: 16 codebooks (1 semantic + 15 acoustic), 2048 entries x 256 dim, hidden 512, weights 34.0 MB +[Pipeline] Ready: hop 1920 samples @ 24000 Hz mono, 16 codebooks @ 12.5 Hz +[KVCache] Allocated: 28 layers, 8 KV heads, head_dim 128, max_seq_len 4096 -> 896 MB +[KVCache] Allocated: 5 layers, 8 KV heads, head_dim 128, max_seq_len 16 -> 0 MB +[Pipeline] Loaded: arch=1b7 variant=voice_design tokenizer=qwen3_tts_tokenizer_12hz codebooks=16 speaker_encoder=absent speakers=0 +[BPE] Loaded from GGUF: 151676 vocab, 151291 merges, eos_id=151643 +[BPE] Registered 5 arch special tokens (total specials=6) +[Prompt] Built: 38 ids, N_text=30, N_instruct=12, T_ctx=52, hidden=2048, lang=english (id=2050), speaker=none (id=-1) ref_spk_emb=no icl=no +[Debug] prompt-ids: [38] first4: 151644.000000 77091.000000 198.000000 80.000000 +[Debug] talker-input-embed: [52, 2048] first4: 0.017779 -0.008618 0.002377 -0.014714 +[Debug] trailing-text-hidden: [1, 2048] first4: -0.004540 0.007622 -0.004462 -0.000982 +[Debug] tts-pad-embed: [2048] first4: -0.004540 0.007622 -0.004462 -0.000982 +[Debug] talker-hidden-prefill-l0: [52, 2048] first4: -0.365522 -0.027829 -0.021236 -0.090642 +[Debug] talker-hidden-prefill-l7: [52, 2048] first4: -11.040422 0.707821 5.835257 -2.337338 +[Debug] talker-hidden-prefill-l14: [52, 2048] first4: -10.607028 0.632244 5.976556 -2.445023 +[Debug] talker-hidden-prefill-l21: [52, 2048] first4: -9.634210 -0.166934 6.658974 -1.739157 +[Debug] talker-hidden-prefill-l27: [52, 2048] first4: -13.693601 -29.542841 7.490469 30.102182 +[Debug] talker-hidden-prefill-final: [52, 2048] first4: -0.651792 -1.468135 0.329833 1.306573 +[Debug] talker-logits-prefill: [3072] first4: -6.042969 -8.476562 0.566406 -0.104187 +[Sample] step=0 c0=1995 u=-1.0000000000 subseq=0 +[Sample-CP] g=0 c=1642 u=-1.0000000000 subseq=1 +[Sample-CP] g=1 c=1114 u=-1.0000000000 subseq=2 +[Sample-CP] g=2 c=295 u=-1.0000000000 subseq=3 +[Sample-CP] g=3 c=1894 u=-1.0000000000 subseq=4 +[Sample-CP] g=4 c=1643 u=-1.0000000000 subseq=5 +[Sample-CP] g=5 c=1142 u=-1.0000000000 subseq=6 +[Sample-CP] g=6 c=327 u=-1.0000000000 subseq=7 +[Sample-CP] g=7 c=387 u=-1.0000000000 subseq=8 +[Sample-CP] g=8 c=1658 u=-1.0000000000 subseq=9 +[Sample-CP] g=9 c=1809 u=-1.0000000000 subseq=10 +[Sample-CP] g=10 c=57 u=-1.0000000000 subseq=11 +[Sample-CP] g=11 c=841 u=-1.0000000000 subseq=12 +[Sample-CP] g=12 c=732 u=-1.0000000000 subseq=13 +[Sample-CP] g=13 c=77 u=-1.0000000000 subseq=14 +[Sample-CP] g=14 c=278 u=-1.0000000000 subseq=15 +[Debug] codes-step0: [16] first4: 1995.000000 1642.000000 1114.000000 295.000000 +[Debug] next-emb-step0: [2048] first4: 0.010285 -0.009700 -0.000257 0.021635 +[Debug] talker-hidden-step1: [2048] first4: -1.652356 -4.971395 -0.333058 -0.910279 +[Sample] step=1 c0=174 u=-1.0000000000 subseq=16 +[Sample-CP] g=0 c=1924 u=-1.0000000000 subseq=17 +[Sample-CP] g=1 c=813 u=-1.0000000000 subseq=18 +[Sample-CP] g=2 c=681 u=-1.0000000000 subseq=19 +[Sample-CP] g=3 c=1385 u=-1.0000000000 subseq=20 +[Sample-CP] g=4 c=606 u=-1.0000000000 subseq=21 +[Sample-CP] g=5 c=672 u=-1.0000000000 subseq=22 +[Sample-CP] g=6 c=1316 u=-1.0000000000 subseq=23 +[Sample-CP] g=7 c=1153 u=-1.0000000000 subseq=24 +[Sample-CP] g=8 c=197 u=-1.0000000000 subseq=25 +[Sample-CP] g=9 c=151 u=-1.0000000000 subseq=26 +[Sample-CP] g=10 c=1490 u=-1.0000000000 subseq=27 +[Sample-CP] g=11 c=245 u=-1.0000000000 subseq=28 +[Sample-CP] g=12 c=1707 u=-1.0000000000 subseq=29 +[Sample-CP] g=13 c=1622 u=-1.0000000000 subseq=30 +[Sample-CP] g=14 c=1002 u=-1.0000000000 subseq=31 +[Pipeline] Generated 8 frames +[Pipeline] Generated 16 frames +[Pipeline] Generated 24 frames +[Pipeline] Generated 32 frames +[Pipeline] Generated 40 frames +[Pipeline] Generated 48 frames +[Pipeline] Generated 56 frames +[Pipeline] Generated 64 frames +[Pipeline] Generation done : 64 frames +[Debug] codes-full: [64, 16] first4: 1995.000000 1642.000000 1114.000000 295.000000 +[Debug] output-audio: [122880] first4: 0.000016 0.000016 0.000003 0.000016 +[WAV] Wrote cpp/tts/tts-cpp.wav: 122880 samples, 24000 Hz, mono S16 +[Pipeline] Wrote 122880 samples (5.12 s) -> cpp/tts/tts-cpp.wav +[Input] Prompt: 100 chars: qwentts.cpp is a minimal C++17 and GGML port of Qwen3-TTS fo... +[Input] Instruct: male, young adult, moderate pitch +[Input] Lang: english Seed: 42 MaxNewTokens: 64 +[Input] Mode: greedy +[Python] Device: cuda +[Python] InputIds shape: (1, 38) +[Python] InstructIds shape: (1, 12) +[Python] Codes shape: (63, 16) (T_frames, num_code_groups) +[Python] Audio: 120960 samples 24000 Hz 5.04s -> python/tts/tts-python.wav +[Quant] Q4_K_M -> ../models/qwen-talker-1.7b-voicedesign-Q4_K_M.gguf + ../models/qwen-tokenizer-12hz-Q4_K_M.gguf +[GGML] Cmd: ../build/qwen-tts --model ../models/qwen-talker-1.7b-voicedesign-Q4_K_M.gguf --codec ../models/qwen-tokenizer-12hz-Q4_K_M.gguf --seed 42 --text qwentts.cpp is a minimal C++17 and GGML port of Qwen3-TTS for zero shot multilingual text to speech. --instruct male, young adult, moderate pitch --lang english --max-new 64 --dump cpp/tts -o cpp/tts/tts-cpp.wav --greedy +[GGML] Audio: 122880 samples 24000 Hz 5.12s -> cpp/tts/tts-cpp.wav +[Cossim] PromptIDs exact: 100.00% (38 values) +[Cossim] Embed cos: 0.999680 max: 1.3213e-02 mean: 9.5199e-04 +[Cossim] TrailingText cos: 0.999969 max: 2.4252e-03 mean: 2.2081e-04 +[Cossim] TTSPadEmbed cos: 0.999969 max: 2.4252e-03 mean: 2.2081e-04 +[Cossim] L0 cos: 0.999207 max: 7.6312e-01 mean: 6.5113e-03 +[Cossim] L7 cos: 0.997484 max: 1.5604e+02 mean: 4.3659e-01 +[Cossim] L14 cos: 0.997458 max: 1.5686e+02 mean: 5.4276e-01 +[Cossim] L21 cos: 0.997066 max: 1.5483e+02 mean: 1.0092e+00 +[Cossim] L27 cos: 0.988934 max: 5.2996e+02 mean: 4.5230e+00 +[Cossim] Final cos: 0.935085 max: 2.8574e+01 mean: 5.0807e-01 +[Cossim] Logits cos: 0.889860 max: 9.0592e+00 mean: 1.7072e+00 +[Cossim] NextEmbStep0 cos: 0.592676 max: 2.6653e-01 mean: 4.5659e-02 +[Cossim] TalkerHiddenStep1 cos: 0.234535 max: 2.2844e+01 mean: 2.5944e+00 +[Cossim] CodesFull exact: 0.20% (1008 values) +[Cossim] Audio cos: -0.007758 +[Cossim] WAV stft_cos: 0.067234 samples: 120960 diff --git a/tests/tts-Vulkan0-Q8_0.log b/tests/tts-Vulkan0-Q8_0.log new file mode 100644 index 0000000..5a77a4d --- /dev/null +++ b/tests/tts-Vulkan0-Q8_0.log @@ -0,0 +1,125 @@ +ggml_cuda_init: found 1 CUDA devices (Total VRAM: 97247 MiB): + Device 0: NVIDIA RTX PRO 6000 Blackwell Workstation Edition, compute capability 12.0, VMM: yes, VRAM: 97247 MiB +load_backend: loaded CUDA backend from /mnt/workspace/qwentts.cpp/build/libggml-cuda.so +ggml_vulkan: Found 1 Vulkan devices: +ggml_vulkan: 0 = NVIDIA RTX PRO 6000 Blackwell Workstation Edition (NVIDIA) | uma: 0 | fp16: 1 | bf16: 0 | warp size: 32 | shared memory: 49152 | int dot: 1 | matrix cores: NV_coopmat2 +load_backend: loaded Vulkan backend from /mnt/workspace/qwentts.cpp/build/libggml-vulkan.so +load_backend: loaded CPU backend from /mnt/workspace/qwentts.cpp/build/libggml-cpu-zen4.so +[Load] Talker backend: Vulkan0 (CPU threads: 16) +[GGUF] ../models/qwen-talker-1.7b-voicedesign-Q8_0.gguf: 404 tensors, data at offset 5949344 +[WeightCtx] Loaded 316 tensors, 1765.0 MB into backend +[Talker] Loaded: 28 layers, hidden 2048, heads 16/8, head_dim 128, FFN 6144, RoPE theta 1000000, mrope sections [24,20,20] interleaved=0 +[WeightCtx] Loaded 88 tensors, 177.5 MB into backend +[CodePredictor] Loaded: 5 layers, hidden 1024, heads 16/8, head_dim 128, FFN 3072, RoPE theta 1000000, 15 acoustic codebooks (vocab 2048 each), mtp_proj linear +[GGUF] ../models/qwen-tokenizer-12hz-Q8_0.gguf: 398 tensors, data at offset 29760 +[WeightCtx] Loaded 18 tensors, 33.0 MB into backend +[Quantizer] Loaded: 16 codebooks (1 semantic + 15 acoustic), 2048 entries x 256 dim, hidden 512 +[WeightCtx] Loaded 93 tensors, 30.9 MB into backend +[Transformer] Loaded: 8 layers, hidden 512, heads 16/16, head_dim 64, FFN 1024, RoPE theta 10000, sliding window 72 +[WeightCtx] Loaded 22 tensors, 33.1 MB into backend +[Upsample] Loaded: 2 blocks (2x ratio per block), channels 1024, dwconv kernel 7 +[WeightCtx] Loaded 118 tensors, 142.9 MB into backend +[DAC] Loaded: 4 blocks (strides 8/5/4/3), 24 kHz mono out, weights 142.9 MB +[WeightCtx] Loaded 2 tensors, 3.0 MB into backend +[WeightCtx] Loaded 28 tensors, 24.1 MB into backend +[SEANet] Loaded: 4 stages (ratios 4/5/6/8), 64 -> 512 channels, weights 24.1 MB +[WeightCtx] Loaded 96 tensors, 25.6 MB into backend +[EncTransformer] Loaded: 8 layers, hidden 512, heads 8/8, head_dim 64, FFN 2048, RoPE theta 10000 +[WeightCtx] Loaded 1 tensors, 2.0 MB into backend +[EncDownsample] Loaded: k=4 stride=2, 512 -> 512 channels, weights 2.0 MB +[WeightCtx] Loaded 20 tensors, 34.0 MB into backend +[EncQuantizer] Loaded: 16 codebooks (1 semantic + 15 acoustic), 2048 entries x 256 dim, hidden 512, weights 34.0 MB +[Pipeline] Ready: hop 1920 samples @ 24000 Hz mono, 16 codebooks @ 12.5 Hz +[KVCache] Allocated: 28 layers, 8 KV heads, head_dim 128, max_seq_len 4096 -> 896 MB +[KVCache] Allocated: 5 layers, 8 KV heads, head_dim 128, max_seq_len 16 -> 0 MB +[Pipeline] Loaded: arch=1b7 variant=voice_design tokenizer=qwen3_tts_tokenizer_12hz codebooks=16 speaker_encoder=absent speakers=0 +[BPE] Loaded from GGUF: 151676 vocab, 151291 merges, eos_id=151643 +[BPE] Registered 5 arch special tokens (total specials=6) +[Prompt] Built: 38 ids, N_text=30, N_instruct=12, T_ctx=52, hidden=2048, lang=english (id=2050), speaker=none (id=-1) ref_spk_emb=no icl=no +[Debug] prompt-ids: [38] first4: 151644.000000 77091.000000 198.000000 80.000000 +[Debug] talker-input-embed: [52, 2048] first4: 0.018647 -0.007834 0.004680 -0.013328 +[Debug] trailing-text-hidden: [1, 2048] first4: -0.004554 0.007647 -0.004656 -0.000707 +[Debug] tts-pad-embed: [2048] first4: -0.004554 0.007647 -0.004656 -0.000707 +[Debug] talker-hidden-prefill-l0: [52, 2048] first4: -0.379852 -0.054862 -0.041081 -0.052085 +[Debug] talker-hidden-prefill-l7: [52, 2048] first4: -1.402517 0.407066 1.510208 0.573808 +[Debug] talker-hidden-prefill-l14: [52, 2048] first4: -1.175941 0.612193 1.632609 0.488113 +[Debug] talker-hidden-prefill-l21: [52, 2048] first4: -0.785830 0.492748 1.932347 0.109454 +[Debug] talker-hidden-prefill-l27: [52, 2048] first4: -7.070812 -29.670967 -2.154939 31.796692 +[Debug] talker-hidden-prefill-final: [52, 2048] first4: -0.319355 -1.399132 -0.090039 1.309577 +[Debug] talker-logits-prefill: [3072] first4: -2.992188 -10.062500 -1.494141 -3.066406 +[Sample] step=0 c0=1995 u=-1.0000000000 subseq=0 +[Sample-CP] g=0 c=1642 u=-1.0000000000 subseq=1 +[Sample-CP] g=1 c=1602 u=-1.0000000000 subseq=2 +[Sample-CP] g=2 c=1088 u=-1.0000000000 subseq=3 +[Sample-CP] g=3 c=1000 u=-1.0000000000 subseq=4 +[Sample-CP] g=4 c=1521 u=-1.0000000000 subseq=5 +[Sample-CP] g=5 c=1767 u=-1.0000000000 subseq=6 +[Sample-CP] g=6 c=1023 u=-1.0000000000 subseq=7 +[Sample-CP] g=7 c=635 u=-1.0000000000 subseq=8 +[Sample-CP] g=8 c=398 u=-1.0000000000 subseq=9 +[Sample-CP] g=9 c=1820 u=-1.0000000000 subseq=10 +[Sample-CP] g=10 c=612 u=-1.0000000000 subseq=11 +[Sample-CP] g=11 c=157 u=-1.0000000000 subseq=12 +[Sample-CP] g=12 c=1794 u=-1.0000000000 subseq=13 +[Sample-CP] g=13 c=1399 u=-1.0000000000 subseq=14 +[Sample-CP] g=14 c=1772 u=-1.0000000000 subseq=15 +[Debug] codes-step0: [16] first4: 1995.000000 1642.000000 1602.000000 1088.000000 +[Debug] next-emb-step0: [2048] first4: 0.056649 -0.053523 0.010754 -0.035536 +[Debug] talker-hidden-step1: [2048] first4: -1.753798 -3.439198 -0.773368 -0.761658 +[Sample] step=1 c0=505 u=-1.0000000000 subseq=16 +[Sample-CP] g=0 c=1752 u=-1.0000000000 subseq=17 +[Sample-CP] g=1 c=878 u=-1.0000000000 subseq=18 +[Sample-CP] g=2 c=1112 u=-1.0000000000 subseq=19 +[Sample-CP] g=3 c=791 u=-1.0000000000 subseq=20 +[Sample-CP] g=4 c=1572 u=-1.0000000000 subseq=21 +[Sample-CP] g=5 c=267 u=-1.0000000000 subseq=22 +[Sample-CP] g=6 c=1731 u=-1.0000000000 subseq=23 +[Sample-CP] g=7 c=279 u=-1.0000000000 subseq=24 +[Sample-CP] g=8 c=1039 u=-1.0000000000 subseq=25 +[Sample-CP] g=9 c=346 u=-1.0000000000 subseq=26 +[Sample-CP] g=10 c=395 u=-1.0000000000 subseq=27 +[Sample-CP] g=11 c=1033 u=-1.0000000000 subseq=28 +[Sample-CP] g=12 c=1918 u=-1.0000000000 subseq=29 +[Sample-CP] g=13 c=1805 u=-1.0000000000 subseq=30 +[Sample-CP] g=14 c=193 u=-1.0000000000 subseq=31 +[Pipeline] Generated 8 frames +[Pipeline] Generated 16 frames +[Pipeline] Generated 24 frames +[Pipeline] Generated 32 frames +[Pipeline] Generated 40 frames +[Pipeline] Generated 48 frames +[Pipeline] Generated 56 frames +[Pipeline] Generated 64 frames +[Pipeline] Generation done : 64 frames +[Debug] codes-full: [64, 16] first4: 1995.000000 1642.000000 1602.000000 1088.000000 +[Debug] output-audio: [122880] first4: 0.000018 0.000022 0.000014 0.000015 +[WAV] Wrote cpp/tts/tts-cpp.wav: 122880 samples, 24000 Hz, mono S16 +[Pipeline] Wrote 122880 samples (5.12 s) -> cpp/tts/tts-cpp.wav +[Input] Prompt: 100 chars: qwentts.cpp is a minimal C++17 and GGML port of Qwen3-TTS fo... +[Input] Instruct: male, young adult, moderate pitch +[Input] Lang: english Seed: 42 MaxNewTokens: 64 +[Input] Mode: greedy +[Python] Device: cuda +[Python] InputIds shape: (1, 38) +[Python] InstructIds shape: (1, 12) +[Python] Codes shape: (63, 16) (T_frames, num_code_groups) +[Python] Audio: 120960 samples 24000 Hz 5.04s -> python/tts/tts-python.wav +[Quant] Q8_0 -> ../models/qwen-talker-1.7b-voicedesign-Q8_0.gguf + ../models/qwen-tokenizer-12hz-Q8_0.gguf +[GGML] Cmd: ../build/qwen-tts --model ../models/qwen-talker-1.7b-voicedesign-Q8_0.gguf --codec ../models/qwen-tokenizer-12hz-Q8_0.gguf --seed 42 --text qwentts.cpp is a minimal C++17 and GGML port of Qwen3-TTS for zero shot multilingual text to speech. --instruct male, young adult, moderate pitch --lang english --max-new 64 --dump cpp/tts -o cpp/tts/tts-cpp.wav --greedy +[GGML] Audio: 122880 samples 24000 Hz 5.12s -> cpp/tts/tts-cpp.wav +[Cossim] PromptIDs exact: 100.00% (38 values) +[Cossim] Embed cos: 0.999989 max: 2.2227e-03 mean: 1.6673e-04 +[Cossim] TrailingText cos: 0.999999 max: 1.8711e-04 mean: 4.2146e-05 +[Cossim] TTSPadEmbed cos: 0.999999 max: 1.8711e-04 mean: 4.2146e-05 +[Cossim] L0 cos: 0.999992 max: 4.5462e-02 mean: 6.5980e-04 +[Cossim] L7 cos: 0.999986 max: 2.6321e+01 mean: 3.2151e-02 +[Cossim] L14 cos: 0.999986 max: 2.6197e+01 mean: 4.0514e-02 +[Cossim] L21 cos: 0.999983 max: 2.6375e+01 mean: 7.7104e-02 +[Cossim] L27 cos: 0.999945 max: 6.2261e+01 mean: 3.3700e-01 +[Cossim] Final cos: 0.999666 max: 1.4233e+00 mean: 3.7771e-02 +[Cossim] Logits cos: 0.999756 max: 3.9106e-01 mean: 6.4052e-02 +[Cossim] NextEmbStep0 cos: 0.565000 max: 2.6307e-01 mean: 4.8794e-02 +[Cossim] TalkerHiddenStep1 cos: 0.277044 max: 2.2239e+01 mean: 2.5255e+00 +[Cossim] CodesFull exact: 0.20% (1008 values) +[Cossim] Audio cos: 0.006878 +[Cossim] WAV stft_cos: 0.064563 samples: 120960