Release Jaiden Voice4 0.6B direct fine-tune

#2
Files changed (7) hide show
  1. README.md +69 -65
  2. config.json +11 -7
  3. history.json +74 -0
  4. model.safetensors +1 -1
  5. v6_seg5.tar.gz +0 -3
  6. v6_transfer.tar.gz +0 -3
  7. v_old_transfer.tar.gz +0 -3
README.md CHANGED
@@ -1,103 +1,107 @@
1
  ---
2
  license: apache-2.0
 
3
  pipeline_tag: text-to-speech
4
  language:
5
- - zh
6
  - en
7
- - ja
8
- - ko
9
- - de
10
- - fr
11
- - ru
12
- - pt
13
- - es
14
- - it
15
  tags:
16
  - audio
17
  - tts
18
- - voice-clone
 
 
19
  ---
20
 
21
- # Qwen3-TTS-12Hz-0.6B-Base
22
 
23
- [**Qwen3-TTS Technical Report**](https://huggingface.co/papers/2601.15621) | [**GitHub Repository**](https://github.com/QwenLM/Qwen3-TTS) | [**Hugging Face Demo**](https://huggingface.co/spaces/Qwen/Qwen3-TTS)
 
 
 
24
 
25
- Qwen3-TTS is a family of advanced multilingual, controllable, robust, and streaming text-to-speech models. Trained on over 5 million hours of speech data spanning 10 languages, Qwen3-TTS supports state-of-the-art 3-second voice cloning and description-based control.
26
-
27
- This specific checkpoint is the **0.6B Base model**, which is capable of rapid voice cloning from a user-provided audio input.
 
 
28
 
29
  ## Quickstart
30
 
31
- ### Installation
32
-
33
  ```bash
34
- pip install -U qwen-tts
35
- # Optional: for optimized performance
36
- pip install -U flash-attn --no-build-isolation
37
  ```
38
 
39
- ### Sample Usage (Voice Clone)
40
-
41
- To clone a voice and synthesize new content using the Base model, you can use the following code snippet:
42
-
43
  ```python
44
- import torch
45
  import soundfile as sf
 
46
  from qwen_tts import Qwen3TTSModel
47
 
48
- # Load the model
49
  model = Qwen3TTSModel.from_pretrained(
50
- "Qwen/Qwen3-TTS-12Hz-0.6B-Base",
51
  device_map="cuda:0",
52
  dtype=torch.bfloat16,
53
- attn_implementation="flash_attention_2",
54
  )
55
 
56
- # Reference audio for cloning
57
- ref_audio = "https://qianwen-res.oss-cn-beijing.aliyuncs.com/Qwen3-TTS-Repo/clone.wav"
58
- ref_text = "Okay. Yeah. I resent you. I love you. I respect you. But you know what? You blew it! And thanks to you."
59
-
60
- # Generate speech
61
- wavs, sr = model.generate_voice_clone(
62
- text="I am solving the equation: x = [-b ± √(b²-4ac)] / 2a? Nobody can — it's a disaster (◍•͈⌔•͈◍), very sad!",
63
- language="English",
64
- ref_audio=ref_audio,
65
- ref_text=ref_text,
66
  )
67
-
68
- # Save the resulting audio
69
- sf.write("output_voice_clone.wav", wavs[0], sr)
70
  ```
71
 
72
- ## Overview
73
- ### Introduction
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
74
 
75
- <p align="center">
76
- <img src="https://qianwen-res.oss-cn-beijing.aliyuncs.com/Qwen3-TTS-Repo/qwen3_tts_introduction.png" width="90%"/>
77
- <p>
78
 
79
- Qwen3-TTS covers 10 major languages (Chinese, English, Japanese, Korean, German, French, Russian, Portuguese, Spanish, and Italian) as well as multiple dialectal voice profiles to meet global application needs. Key features:
 
80
 
81
- * **Powerful Speech Representation**: Powered by the self-developed Qwen3-TTS-Tokenizer-12Hz, it achieves efficient acoustic compression and high-dimensional semantic modeling.
82
- * **Universal End-to-End Architecture**: Utilizing a discrete multi-codebook LM architecture, it realizes full-information end-to-end speech modeling.
83
- * **Extreme Low-Latency Streaming Generation**: End-to-end synthesis latency as low as 97ms, meeting the rigorous demands of real-time interactive scenarios.
84
- * **Intelligent Text Understanding and Voice Control**: Supports speech generation driven by natural language instructions, allowing for flexible control over multi-dimensional acoustic attributes.
85
 
86
- ### Model Architecture
 
 
 
87
 
88
- <p align="center">
89
- <img src="https://qianwen-res.oss-cn-beijing.aliyuncs.com/Qwen3-TTS-Repo/overview.png" width="80%"/>
90
- <p>
 
 
91
 
92
- ## Citation
93
 
94
- If you find this work useful, please consider citing the technical report:
 
95
 
96
- ```BibTeX
97
- @article{Qwen3-TTS,
98
- title={Qwen3-TTS Technical Report},
99
- author={Hangrui Hu and Xinfa Zhu and Ting He and Dake Guo and Bin Zhang and Xiong Wang and Zhifang Guo and Ziyue Jiang and Hongkun Hao and Zishan Guo and Xinyu Zhang and Pei Zhang and Baosong Yang and Jin Xu and Jingren Zhou and Junyang Lin},
100
- journal={arXiv preprint arXiv:2601.15621},
101
- year={2026}
102
- }
103
- ```
 
1
  ---
2
  license: apache-2.0
3
+ base_model: Qwen/Qwen3-TTS-12Hz-0.6B-Base
4
  pipeline_tag: text-to-speech
5
  language:
 
6
  - en
 
 
 
 
 
 
 
 
7
  tags:
8
  - audio
9
  - tts
10
+ - qwen3-tts
11
+ - custom-voice
12
+ - fine-tuned
13
  ---
14
 
15
+ # E3 Voice4 / Jaiden — Qwen3-TTS 0.6B direct fine-tune
16
 
17
+ This is the ear-selected **epoch-0 full fine-tune** of
18
+ [`Qwen/Qwen3-TTS-12Hz-0.6B-Base`](https://huggingface.co/Qwen/Qwen3-TTS-12Hz-0.6B-Base)
19
+ for the E3 Voice4 single-speaker voice. The embedded speaker is exposed as
20
+ `speaker_test`; inference does not require reference audio.
21
 
22
+ The checkpoint was selected from five fixed-seed draws. The preferred output
23
+ was draw 1 (seed 43), chosen for its balance of speaker identity and expressive
24
+ range. This replaces the older Vivian/Fish-distilled weights previously on the
25
+ repository's `main` branch. Historical models remain available through the
26
+ repository's `v1`–`v5` tags and commit history.
27
 
28
  ## Quickstart
29
 
 
 
30
  ```bash
31
+ pip install -U qwen-tts soundfile
 
 
32
  ```
33
 
 
 
 
 
34
  ```python
 
35
  import soundfile as sf
36
+ import torch
37
  from qwen_tts import Qwen3TTSModel
38
 
 
39
  model = Qwen3TTSModel.from_pretrained(
40
+ "e3group-research/enderv1.0",
41
  device_map="cuda:0",
42
  dtype=torch.bfloat16,
 
43
  )
44
 
45
+ torch.manual_seed(43)
46
+ wavs, sample_rate = model.generate_custom_voice(
47
+ text="This is a test of the E3 Voice4 checkpoint.",
48
+ speaker="speaker_test",
49
+ language="english",
 
 
 
 
 
50
  )
51
+ sf.write("voice4.wav", wavs[0], sample_rate)
 
 
52
  ```
53
 
54
+ The only configured speaker key is `speaker_test` (speaker slot 3000).
55
+
56
+ ## Training recipe
57
+
58
+ - Base model: Qwen3-TTS 12 Hz 0.6B Base
59
+ - Method: single-stage full fine-tune, not LoRA or teacher distillation
60
+ - Data: 130 single-speaker speech clips, 16.56 minutes total
61
+ - Retained checkpoint: epoch 0 (65 optimizer steps)
62
+ - Learning rate: `2e-5`, with 50 warmup steps
63
+ - Objective: codec-0 cross entropy + `0.3 ×` sub-talker loss
64
+ - Embedded speaker: slot 3000, populated from the training reference voice
65
+
66
+ `history.json` records the complete eight-epoch training run. Only epoch 0 was
67
+ retained for this release; later epochs were rejected because they overfit and
68
+ could produce severe duration runaway.
69
+
70
+ ## Selection measurements
71
+
72
+ For the selected seed-43 evaluation draw:
73
+
74
+ | Measurement | Value |
75
+ |---|---:|
76
+ | Speaker similarity vs. internal reference | 0.9261 |
77
+ | F0 p10–p90 range | 12.45 semitones |
78
+ | F0 median | 246.83 Hz |
79
+ | Duration | 22.78 seconds |
80
+ | Speaking rate | 187 WPM |
81
+
82
+ These are measurements for the selected generation, not aggregate benchmark
83
+ results. Generation is stochastic and results vary with text and seed.
84
 
85
+ ## Integrity
 
 
86
 
87
+ - `model.safetensors` SHA-256: `54f399102bdfc0b55e5c2ffa7fd1d3eb3d68cae4a516e151cbe6df8d01e96b7a`
88
+ - `speech_tokenizer/model.safetensors` SHA-256: `836b7b357f5ea43e889936a3709af68dfe3751881acefe4ecf0dbd30ba571258`
89
 
90
+ ## Limitations and responsible use
 
 
 
91
 
92
+ The checkpoint was selected primarily on English narration and has not been
93
+ validated equally across all languages or production workloads. It may inherit
94
+ pronunciation, hallucination, pacing, and robustness limitations from the base
95
+ model.
96
 
97
+ This is a research voice checkpoint. It is not affiliated with or endorsed by
98
+ the source speaker. Do not use it for deceptive impersonation, fraud,
99
+ harassment, or to imply endorsement. Users are responsible for obtaining any
100
+ required consent and complying with applicable privacy, publicity, copyright,
101
+ and disclosure requirements.
102
 
103
+ ## Base model
104
 
105
+ - [Qwen3-TTS technical report](https://huggingface.co/papers/2601.15621)
106
+ - [Qwen3-TTS source repository](https://github.com/QwenLM/Qwen3-TTS)
107
 
 
 
 
 
 
 
 
 
config.json CHANGED
@@ -166,12 +166,16 @@
166
  "vocab_size": 3072
167
  },
168
  "transformers_version": "4.57.3",
169
- "two_stage_metadata": {
170
- "stage1_epochs": 15,
171
- "stage1_lr": 1e-05,
172
- "stage2_epochs": 20,
173
- "stage2_lr": 0.0005,
174
- "eos_weight": 200.0,
175
- "train_samples": 250
 
 
 
 
176
  }
177
  }
 
166
  "vocab_size": 3072
167
  },
168
  "transformers_version": "4.57.3",
169
+ "direct_ft_metadata": {
170
+ "script": "sft_direct.py",
171
+ "epoch": 0,
172
+ "lr": 2e-05,
173
+ "warmup_steps": 50,
174
+ "alpha_sub_talker": 0.3,
175
+ "epochs_total_planned": 8,
176
+ "train_samples": 130,
177
+ "loss_avg": 4.452753011996929,
178
+ "ce_avg": 1.1196514423076922,
179
+ "sub_avg": 11.110338123028095
180
  }
181
  }
history.json ADDED
@@ -0,0 +1,74 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ [
2
+ {
3
+ "epoch": 0,
4
+ "loss": 4.452753011996929,
5
+ "ce": 1.1196514423076922,
6
+ "sub": 11.110338123028095,
7
+ "lr": 6.9320000000000016e-06,
8
+ "steps": 65,
9
+ "eval": null
10
+ },
11
+ {
12
+ "epoch": 1,
13
+ "loss": 3.636187718464778,
14
+ "ce": 1.010096153846154,
15
+ "sub": 8.753638230837309,
16
+ "lr": 1.3664000000000005e-05,
17
+ "steps": 65,
18
+ "eval": null
19
+ },
20
+ {
21
+ "epoch": 2,
22
+ "loss": 3.1426233181586634,
23
+ "ce": 0.8228064903846154,
24
+ "sub": 7.7327224364647495,
25
+ "lr": 2e-05,
26
+ "steps": 65,
27
+ "eval": null
28
+ },
29
+ {
30
+ "epoch": 3,
31
+ "loss": 2.8571965621067927,
32
+ "ce": 0.5620342548076923,
33
+ "sub": 7.6505407039935776,
34
+ "lr": 2e-05,
35
+ "steps": 65,
36
+ "eval": null
37
+ },
38
+ {
39
+ "epoch": 4,
40
+ "loss": 2.6110953367673435,
41
+ "ce": 0.3226111778846154,
42
+ "sub": 7.62828022149893,
43
+ "lr": 2e-05,
44
+ "steps": 65,
45
+ "eval": null
46
+ },
47
+ {
48
+ "epoch": 5,
49
+ "loss": 2.4492226417248064,
50
+ "ce": 0.16533203125,
51
+ "sub": 7.6129683494567875,
52
+ "lr": 2e-05,
53
+ "steps": 65,
54
+ "eval": null
55
+ },
56
+ {
57
+ "epoch": 6,
58
+ "loss": 2.3791526060837964,
59
+ "ce": 0.09971829927884615,
60
+ "sub": 7.598114013671875,
61
+ "lr": 2e-05,
62
+ "steps": 65,
63
+ "eval": null
64
+ },
65
+ {
66
+ "epoch": 7,
67
+ "loss": 2.329445670201228,
68
+ "ce": 0.05500300480769231,
69
+ "sub": 7.581475243201623,
70
+ "lr": 2e-05,
71
+ "steps": 65,
72
+ "eval": null
73
+ }
74
+ ]
model.safetensors CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:0962d2b722b44d67fcb4595609f704514200dd3f6afa377c0a3b83a8495f4dfd
3
  size 1811626544
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:54f399102bdfc0b55e5c2ffa7fd1d3eb3d68cae4a516e151cbe6df8d01e96b7a
3
  size 1811626544
v6_seg5.tar.gz DELETED
@@ -1,3 +0,0 @@
1
- version https://git-lfs.github.com/spec/v1
2
- oid sha256:9902b4411f10a705550fd085ddbf1625d16bf61eb068e87ab8dc870957c520b7
3
- size 2105439959
 
 
 
 
v6_transfer.tar.gz DELETED
@@ -1,3 +0,0 @@
1
- version https://git-lfs.github.com/spec/v1
2
- oid sha256:169d526ba3ed8bf309d4fc91ee8543f431e2c52967f7c84c8a9561178168af8b
3
- size 8503623358
 
 
 
 
v_old_transfer.tar.gz DELETED
@@ -1,3 +0,0 @@
1
- version https://git-lfs.github.com/spec/v1
2
- oid sha256:134f4c09c671aaae266e154dd611a99bf9e9c322fc2defa0c2a340ad94dba2be
3
- size 8472423614