Release Jaiden Voice4 0.6B direct fine-tune
#2
by jainvansh - opened
- README.md +69 -65
- config.json +11 -7
- history.json +74 -0
- model.safetensors +1 -1
- v6_seg5.tar.gz +0 -3
- v6_transfer.tar.gz +0 -3
- 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 |
-
-
|
|
|
|
|
|
|
| 19 |
---
|
| 20 |
|
| 21 |
-
# Qwen3-TTS
|
| 22 |
|
| 23 |
-
|
|
|
|
|
|
|
|
|
|
| 24 |
|
| 25 |
-
|
| 26 |
-
|
| 27 |
-
This
|
|
|
|
|
|
|
| 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 |
-
"
|
| 51 |
device_map="cuda:0",
|
| 52 |
dtype=torch.bfloat16,
|
| 53 |
-
attn_implementation="flash_attention_2",
|
| 54 |
)
|
| 55 |
|
| 56 |
-
|
| 57 |
-
|
| 58 |
-
|
| 59 |
-
|
| 60 |
-
|
| 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 |
-
|
| 73 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 74 |
|
| 75 |
-
|
| 76 |
-
<img src="https://qianwen-res.oss-cn-beijing.aliyuncs.com/Qwen3-TTS-Repo/qwen3_tts_introduction.png" width="90%"/>
|
| 77 |
-
<p>
|
| 78 |
|
| 79 |
-
|
|
|
|
| 80 |
|
| 81 |
-
|
| 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 |
-
|
|
|
|
|
|
|
|
|
|
| 87 |
|
| 88 |
-
|
| 89 |
-
|
| 90 |
-
|
|
|
|
|
|
|
| 91 |
|
| 92 |
-
##
|
| 93 |
|
| 94 |
-
|
|
|
|
| 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 |
-
"
|
| 170 |
-
"
|
| 171 |
-
"
|
| 172 |
-
"
|
| 173 |
-
"
|
| 174 |
-
"
|
| 175 |
-
"
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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:
|
| 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
|
|
|
|
|
|
|
|
|
|
|
|