prince-canuma commited on
Commit
88b7cc4
Β·
verified Β·
1 Parent(s): 46cf0bc

Upload folder using huggingface_hub

Browse files
.gitattributes CHANGED
@@ -33,3 +33,5 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
 
 
 
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
36
+ tokenizer/tokenizer.json filter=lfs diff=lfs merge=lfs -text
37
+ tokenizer.json filter=lfs diff=lfs merge=lfs -text
README.md ADDED
@@ -0,0 +1,41 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ language:
3
+ - en
4
+ license: apache-2.0
5
+ library_name: mlx-audio
6
+ pipeline_tag: text-to-speech
7
+ tags:
8
+ - mlx
9
+ - text-to-speech
10
+ - speech
11
+ - speech generation
12
+ - voice cloning
13
+ - tts
14
+ ---
15
+
16
+ # mlx-community/maya1-4bit
17
+ This model was converted to MLX format from [`maya-research/maya1`](https://huggingface.co/maya-research/maya1) using mlx-audio version **0.2.9**.
18
+ Refer to the [original model card](https://huggingface.co/maya-research/maya1) for more details on the model.
19
+
20
+ ## Use with mlx-audio
21
+
22
+ ```bash
23
+ pip install -U mlx-audio
24
+ ```
25
+
26
+ ### CLI Example:
27
+ ```bash
28
+ python -m mlx_audio.tts.generate --model mlx-community/maya1-4bit --text "Hello, this is a test."
29
+ ```
30
+ ### Python Example:
31
+ ```python
32
+ from mlx_audio.tts.utils import load_model
33
+ from mlx_audio.tts.generate import generate_audio
34
+ model = load_model("mlx-community/maya1-4bit")
35
+ generate_audio(
36
+ model=model, text="Hello, this is a test.",
37
+ ref_audio="path_to_audio.wav",
38
+ file_prefix="test_audio",
39
+ )
40
+
41
+ ```
config.json ADDED
@@ -0,0 +1,46 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "architectures": [
3
+ "LlamaForCausalLM"
4
+ ],
5
+ "attention_bias": false,
6
+ "attention_dropout": 0.0,
7
+ "bos_token_id": 128000,
8
+ "dtype": "bfloat16",
9
+ "eos_token_id": 128009,
10
+ "head_dim": 128,
11
+ "hidden_act": "silu",
12
+ "hidden_size": 3072,
13
+ "initializer_range": 0.02,
14
+ "intermediate_size": 8192,
15
+ "max_position_embeddings": 131072,
16
+ "mlp_bias": false,
17
+ "model_type": "llama",
18
+ "num_attention_heads": 24,
19
+ "num_hidden_layers": 28,
20
+ "num_key_value_heads": 8,
21
+ "pad_token_id": 128263,
22
+ "pretraining_tp": 1,
23
+ "quantization": {
24
+ "group_size": 64,
25
+ "bits": 4,
26
+ "mode": "affine"
27
+ },
28
+ "quantization_config": {
29
+ "group_size": 64,
30
+ "bits": 4,
31
+ "mode": "affine"
32
+ },
33
+ "rms_norm_eps": 1e-05,
34
+ "rope_scaling": {
35
+ "factor": 32.0,
36
+ "high_freq_factor": 4.0,
37
+ "low_freq_factor": 1.0,
38
+ "original_max_position_embeddings": 8192,
39
+ "rope_type": "llama3"
40
+ },
41
+ "rope_theta": 500000.0,
42
+ "tie_word_embeddings": true,
43
+ "transformers_version": "4.57.1",
44
+ "use_cache": false,
45
+ "vocab_size": 156960
46
+ }
emotions.txt ADDED
@@ -0,0 +1,17 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <laugh>
2
+ <laugh_harder>
3
+ <sigh>
4
+ <chuckle>
5
+ <gasp>
6
+ <angry>
7
+ <excited>
8
+ <whisper>
9
+ <cry>
10
+ <scream>
11
+ <sing>
12
+ <snort>
13
+ <exhale>
14
+ <gulp>
15
+ <giggle>
16
+ <sarcastic>
17
+ <curious>
generation_config.json ADDED
@@ -0,0 +1,13 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "_from_model_config": true,
3
+ "bos_token_id": 128000,
4
+ "do_sample": true,
5
+ "eos_token_id": [
6
+ 128009,
7
+ 128258
8
+ ],
9
+ "pad_token_id": 128263,
10
+ "temperature": 0.6,
11
+ "top_p": 0.9,
12
+ "transformers_version": "4.57.1"
13
+ }
model-00001-of-00002.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:f1dae409f70c5beb92916662c6bc389b9b235ac8aa5edd19a4dcb87e37a73074
3
+ size 4991160848
model-00002-of-00002.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:df22e9a90c1bea262250982640b119e6020474736991da482cb6ed56dd23d045
3
+ size 1610725592
model.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:3419d8c0e4c73d260480df16fc928cf7808442ac53ffd4fb18d120fddf5b14ae
3
+ size 1857097241
model.safetensors.index.json ADDED
@@ -0,0 +1,656 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "metadata": {
3
+ "total_size": 1857024000,
4
+ "total_parameters": 3300928512
5
+ },
6
+ "weight_map": {
7
+ "model.embed_tokens.biases": "model.safetensors",
8
+ "model.embed_tokens.scales": "model.safetensors",
9
+ "model.embed_tokens.weight": "model.safetensors",
10
+ "model.layers.0.input_layernorm.weight": "model.safetensors",
11
+ "model.layers.0.mlp.down_proj.biases": "model.safetensors",
12
+ "model.layers.0.mlp.down_proj.scales": "model.safetensors",
13
+ "model.layers.0.mlp.down_proj.weight": "model.safetensors",
14
+ "model.layers.0.mlp.gate_proj.biases": "model.safetensors",
15
+ "model.layers.0.mlp.gate_proj.scales": "model.safetensors",
16
+ "model.layers.0.mlp.gate_proj.weight": "model.safetensors",
17
+ "model.layers.0.mlp.up_proj.biases": "model.safetensors",
18
+ "model.layers.0.mlp.up_proj.scales": "model.safetensors",
19
+ "model.layers.0.mlp.up_proj.weight": "model.safetensors",
20
+ "model.layers.0.post_attention_layernorm.weight": "model.safetensors",
21
+ "model.layers.0.self_attn.k_proj.biases": "model.safetensors",
22
+ "model.layers.0.self_attn.k_proj.scales": "model.safetensors",
23
+ "model.layers.0.self_attn.k_proj.weight": "model.safetensors",
24
+ "model.layers.0.self_attn.o_proj.biases": "model.safetensors",
25
+ "model.layers.0.self_attn.o_proj.scales": "model.safetensors",
26
+ "model.layers.0.self_attn.o_proj.weight": "model.safetensors",
27
+ "model.layers.0.self_attn.q_proj.biases": "model.safetensors",
28
+ "model.layers.0.self_attn.q_proj.scales": "model.safetensors",
29
+ "model.layers.0.self_attn.q_proj.weight": "model.safetensors",
30
+ "model.layers.0.self_attn.v_proj.biases": "model.safetensors",
31
+ "model.layers.0.self_attn.v_proj.scales": "model.safetensors",
32
+ "model.layers.0.self_attn.v_proj.weight": "model.safetensors",
33
+ "model.layers.1.input_layernorm.weight": "model.safetensors",
34
+ "model.layers.1.mlp.down_proj.biases": "model.safetensors",
35
+ "model.layers.1.mlp.down_proj.scales": "model.safetensors",
36
+ "model.layers.1.mlp.down_proj.weight": "model.safetensors",
37
+ "model.layers.1.mlp.gate_proj.biases": "model.safetensors",
38
+ "model.layers.1.mlp.gate_proj.scales": "model.safetensors",
39
+ "model.layers.1.mlp.gate_proj.weight": "model.safetensors",
40
+ "model.layers.1.mlp.up_proj.biases": "model.safetensors",
41
+ "model.layers.1.mlp.up_proj.scales": "model.safetensors",
42
+ "model.layers.1.mlp.up_proj.weight": "model.safetensors",
43
+ "model.layers.1.post_attention_layernorm.weight": "model.safetensors",
44
+ "model.layers.1.self_attn.k_proj.biases": "model.safetensors",
45
+ "model.layers.1.self_attn.k_proj.scales": "model.safetensors",
46
+ "model.layers.1.self_attn.k_proj.weight": "model.safetensors",
47
+ "model.layers.1.self_attn.o_proj.biases": "model.safetensors",
48
+ "model.layers.1.self_attn.o_proj.scales": "model.safetensors",
49
+ "model.layers.1.self_attn.o_proj.weight": "model.safetensors",
50
+ "model.layers.1.self_attn.q_proj.biases": "model.safetensors",
51
+ "model.layers.1.self_attn.q_proj.scales": "model.safetensors",
52
+ "model.layers.1.self_attn.q_proj.weight": "model.safetensors",
53
+ "model.layers.1.self_attn.v_proj.biases": "model.safetensors",
54
+ "model.layers.1.self_attn.v_proj.scales": "model.safetensors",
55
+ "model.layers.1.self_attn.v_proj.weight": "model.safetensors",
56
+ "model.layers.10.input_layernorm.weight": "model.safetensors",
57
+ "model.layers.10.mlp.down_proj.biases": "model.safetensors",
58
+ "model.layers.10.mlp.down_proj.scales": "model.safetensors",
59
+ "model.layers.10.mlp.down_proj.weight": "model.safetensors",
60
+ "model.layers.10.mlp.gate_proj.biases": "model.safetensors",
61
+ "model.layers.10.mlp.gate_proj.scales": "model.safetensors",
62
+ "model.layers.10.mlp.gate_proj.weight": "model.safetensors",
63
+ "model.layers.10.mlp.up_proj.biases": "model.safetensors",
64
+ "model.layers.10.mlp.up_proj.scales": "model.safetensors",
65
+ "model.layers.10.mlp.up_proj.weight": "model.safetensors",
66
+ "model.layers.10.post_attention_layernorm.weight": "model.safetensors",
67
+ "model.layers.10.self_attn.k_proj.biases": "model.safetensors",
68
+ "model.layers.10.self_attn.k_proj.scales": "model.safetensors",
69
+ "model.layers.10.self_attn.k_proj.weight": "model.safetensors",
70
+ "model.layers.10.self_attn.o_proj.biases": "model.safetensors",
71
+ "model.layers.10.self_attn.o_proj.scales": "model.safetensors",
72
+ "model.layers.10.self_attn.o_proj.weight": "model.safetensors",
73
+ "model.layers.10.self_attn.q_proj.biases": "model.safetensors",
74
+ "model.layers.10.self_attn.q_proj.scales": "model.safetensors",
75
+ "model.layers.10.self_attn.q_proj.weight": "model.safetensors",
76
+ "model.layers.10.self_attn.v_proj.biases": "model.safetensors",
77
+ "model.layers.10.self_attn.v_proj.scales": "model.safetensors",
78
+ "model.layers.10.self_attn.v_proj.weight": "model.safetensors",
79
+ "model.layers.11.input_layernorm.weight": "model.safetensors",
80
+ "model.layers.11.mlp.down_proj.biases": "model.safetensors",
81
+ "model.layers.11.mlp.down_proj.scales": "model.safetensors",
82
+ "model.layers.11.mlp.down_proj.weight": "model.safetensors",
83
+ "model.layers.11.mlp.gate_proj.biases": "model.safetensors",
84
+ "model.layers.11.mlp.gate_proj.scales": "model.safetensors",
85
+ "model.layers.11.mlp.gate_proj.weight": "model.safetensors",
86
+ "model.layers.11.mlp.up_proj.biases": "model.safetensors",
87
+ "model.layers.11.mlp.up_proj.scales": "model.safetensors",
88
+ "model.layers.11.mlp.up_proj.weight": "model.safetensors",
89
+ "model.layers.11.post_attention_layernorm.weight": "model.safetensors",
90
+ "model.layers.11.self_attn.k_proj.biases": "model.safetensors",
91
+ "model.layers.11.self_attn.k_proj.scales": "model.safetensors",
92
+ "model.layers.11.self_attn.k_proj.weight": "model.safetensors",
93
+ "model.layers.11.self_attn.o_proj.biases": "model.safetensors",
94
+ "model.layers.11.self_attn.o_proj.scales": "model.safetensors",
95
+ "model.layers.11.self_attn.o_proj.weight": "model.safetensors",
96
+ "model.layers.11.self_attn.q_proj.biases": "model.safetensors",
97
+ "model.layers.11.self_attn.q_proj.scales": "model.safetensors",
98
+ "model.layers.11.self_attn.q_proj.weight": "model.safetensors",
99
+ "model.layers.11.self_attn.v_proj.biases": "model.safetensors",
100
+ "model.layers.11.self_attn.v_proj.scales": "model.safetensors",
101
+ "model.layers.11.self_attn.v_proj.weight": "model.safetensors",
102
+ "model.layers.12.input_layernorm.weight": "model.safetensors",
103
+ "model.layers.12.mlp.down_proj.biases": "model.safetensors",
104
+ "model.layers.12.mlp.down_proj.scales": "model.safetensors",
105
+ "model.layers.12.mlp.down_proj.weight": "model.safetensors",
106
+ "model.layers.12.mlp.gate_proj.biases": "model.safetensors",
107
+ "model.layers.12.mlp.gate_proj.scales": "model.safetensors",
108
+ "model.layers.12.mlp.gate_proj.weight": "model.safetensors",
109
+ "model.layers.12.mlp.up_proj.biases": "model.safetensors",
110
+ "model.layers.12.mlp.up_proj.scales": "model.safetensors",
111
+ "model.layers.12.mlp.up_proj.weight": "model.safetensors",
112
+ "model.layers.12.post_attention_layernorm.weight": "model.safetensors",
113
+ "model.layers.12.self_attn.k_proj.biases": "model.safetensors",
114
+ "model.layers.12.self_attn.k_proj.scales": "model.safetensors",
115
+ "model.layers.12.self_attn.k_proj.weight": "model.safetensors",
116
+ "model.layers.12.self_attn.o_proj.biases": "model.safetensors",
117
+ "model.layers.12.self_attn.o_proj.scales": "model.safetensors",
118
+ "model.layers.12.self_attn.o_proj.weight": "model.safetensors",
119
+ "model.layers.12.self_attn.q_proj.biases": "model.safetensors",
120
+ "model.layers.12.self_attn.q_proj.scales": "model.safetensors",
121
+ "model.layers.12.self_attn.q_proj.weight": "model.safetensors",
122
+ "model.layers.12.self_attn.v_proj.biases": "model.safetensors",
123
+ "model.layers.12.self_attn.v_proj.scales": "model.safetensors",
124
+ "model.layers.12.self_attn.v_proj.weight": "model.safetensors",
125
+ "model.layers.13.input_layernorm.weight": "model.safetensors",
126
+ "model.layers.13.mlp.down_proj.biases": "model.safetensors",
127
+ "model.layers.13.mlp.down_proj.scales": "model.safetensors",
128
+ "model.layers.13.mlp.down_proj.weight": "model.safetensors",
129
+ "model.layers.13.mlp.gate_proj.biases": "model.safetensors",
130
+ "model.layers.13.mlp.gate_proj.scales": "model.safetensors",
131
+ "model.layers.13.mlp.gate_proj.weight": "model.safetensors",
132
+ "model.layers.13.mlp.up_proj.biases": "model.safetensors",
133
+ "model.layers.13.mlp.up_proj.scales": "model.safetensors",
134
+ "model.layers.13.mlp.up_proj.weight": "model.safetensors",
135
+ "model.layers.13.post_attention_layernorm.weight": "model.safetensors",
136
+ "model.layers.13.self_attn.k_proj.biases": "model.safetensors",
137
+ "model.layers.13.self_attn.k_proj.scales": "model.safetensors",
138
+ "model.layers.13.self_attn.k_proj.weight": "model.safetensors",
139
+ "model.layers.13.self_attn.o_proj.biases": "model.safetensors",
140
+ "model.layers.13.self_attn.o_proj.scales": "model.safetensors",
141
+ "model.layers.13.self_attn.o_proj.weight": "model.safetensors",
142
+ "model.layers.13.self_attn.q_proj.biases": "model.safetensors",
143
+ "model.layers.13.self_attn.q_proj.scales": "model.safetensors",
144
+ "model.layers.13.self_attn.q_proj.weight": "model.safetensors",
145
+ "model.layers.13.self_attn.v_proj.biases": "model.safetensors",
146
+ "model.layers.13.self_attn.v_proj.scales": "model.safetensors",
147
+ "model.layers.13.self_attn.v_proj.weight": "model.safetensors",
148
+ "model.layers.14.input_layernorm.weight": "model.safetensors",
149
+ "model.layers.14.mlp.down_proj.biases": "model.safetensors",
150
+ "model.layers.14.mlp.down_proj.scales": "model.safetensors",
151
+ "model.layers.14.mlp.down_proj.weight": "model.safetensors",
152
+ "model.layers.14.mlp.gate_proj.biases": "model.safetensors",
153
+ "model.layers.14.mlp.gate_proj.scales": "model.safetensors",
154
+ "model.layers.14.mlp.gate_proj.weight": "model.safetensors",
155
+ "model.layers.14.mlp.up_proj.biases": "model.safetensors",
156
+ "model.layers.14.mlp.up_proj.scales": "model.safetensors",
157
+ "model.layers.14.mlp.up_proj.weight": "model.safetensors",
158
+ "model.layers.14.post_attention_layernorm.weight": "model.safetensors",
159
+ "model.layers.14.self_attn.k_proj.biases": "model.safetensors",
160
+ "model.layers.14.self_attn.k_proj.scales": "model.safetensors",
161
+ "model.layers.14.self_attn.k_proj.weight": "model.safetensors",
162
+ "model.layers.14.self_attn.o_proj.biases": "model.safetensors",
163
+ "model.layers.14.self_attn.o_proj.scales": "model.safetensors",
164
+ "model.layers.14.self_attn.o_proj.weight": "model.safetensors",
165
+ "model.layers.14.self_attn.q_proj.biases": "model.safetensors",
166
+ "model.layers.14.self_attn.q_proj.scales": "model.safetensors",
167
+ "model.layers.14.self_attn.q_proj.weight": "model.safetensors",
168
+ "model.layers.14.self_attn.v_proj.biases": "model.safetensors",
169
+ "model.layers.14.self_attn.v_proj.scales": "model.safetensors",
170
+ "model.layers.14.self_attn.v_proj.weight": "model.safetensors",
171
+ "model.layers.15.input_layernorm.weight": "model.safetensors",
172
+ "model.layers.15.mlp.down_proj.biases": "model.safetensors",
173
+ "model.layers.15.mlp.down_proj.scales": "model.safetensors",
174
+ "model.layers.15.mlp.down_proj.weight": "model.safetensors",
175
+ "model.layers.15.mlp.gate_proj.biases": "model.safetensors",
176
+ "model.layers.15.mlp.gate_proj.scales": "model.safetensors",
177
+ "model.layers.15.mlp.gate_proj.weight": "model.safetensors",
178
+ "model.layers.15.mlp.up_proj.biases": "model.safetensors",
179
+ "model.layers.15.mlp.up_proj.scales": "model.safetensors",
180
+ "model.layers.15.mlp.up_proj.weight": "model.safetensors",
181
+ "model.layers.15.post_attention_layernorm.weight": "model.safetensors",
182
+ "model.layers.15.self_attn.k_proj.biases": "model.safetensors",
183
+ "model.layers.15.self_attn.k_proj.scales": "model.safetensors",
184
+ "model.layers.15.self_attn.k_proj.weight": "model.safetensors",
185
+ "model.layers.15.self_attn.o_proj.biases": "model.safetensors",
186
+ "model.layers.15.self_attn.o_proj.scales": "model.safetensors",
187
+ "model.layers.15.self_attn.o_proj.weight": "model.safetensors",
188
+ "model.layers.15.self_attn.q_proj.biases": "model.safetensors",
189
+ "model.layers.15.self_attn.q_proj.scales": "model.safetensors",
190
+ "model.layers.15.self_attn.q_proj.weight": "model.safetensors",
191
+ "model.layers.15.self_attn.v_proj.biases": "model.safetensors",
192
+ "model.layers.15.self_attn.v_proj.scales": "model.safetensors",
193
+ "model.layers.15.self_attn.v_proj.weight": "model.safetensors",
194
+ "model.layers.16.input_layernorm.weight": "model.safetensors",
195
+ "model.layers.16.mlp.down_proj.biases": "model.safetensors",
196
+ "model.layers.16.mlp.down_proj.scales": "model.safetensors",
197
+ "model.layers.16.mlp.down_proj.weight": "model.safetensors",
198
+ "model.layers.16.mlp.gate_proj.biases": "model.safetensors",
199
+ "model.layers.16.mlp.gate_proj.scales": "model.safetensors",
200
+ "model.layers.16.mlp.gate_proj.weight": "model.safetensors",
201
+ "model.layers.16.mlp.up_proj.biases": "model.safetensors",
202
+ "model.layers.16.mlp.up_proj.scales": "model.safetensors",
203
+ "model.layers.16.mlp.up_proj.weight": "model.safetensors",
204
+ "model.layers.16.post_attention_layernorm.weight": "model.safetensors",
205
+ "model.layers.16.self_attn.k_proj.biases": "model.safetensors",
206
+ "model.layers.16.self_attn.k_proj.scales": "model.safetensors",
207
+ "model.layers.16.self_attn.k_proj.weight": "model.safetensors",
208
+ "model.layers.16.self_attn.o_proj.biases": "model.safetensors",
209
+ "model.layers.16.self_attn.o_proj.scales": "model.safetensors",
210
+ "model.layers.16.self_attn.o_proj.weight": "model.safetensors",
211
+ "model.layers.16.self_attn.q_proj.biases": "model.safetensors",
212
+ "model.layers.16.self_attn.q_proj.scales": "model.safetensors",
213
+ "model.layers.16.self_attn.q_proj.weight": "model.safetensors",
214
+ "model.layers.16.self_attn.v_proj.biases": "model.safetensors",
215
+ "model.layers.16.self_attn.v_proj.scales": "model.safetensors",
216
+ "model.layers.16.self_attn.v_proj.weight": "model.safetensors",
217
+ "model.layers.17.input_layernorm.weight": "model.safetensors",
218
+ "model.layers.17.mlp.down_proj.biases": "model.safetensors",
219
+ "model.layers.17.mlp.down_proj.scales": "model.safetensors",
220
+ "model.layers.17.mlp.down_proj.weight": "model.safetensors",
221
+ "model.layers.17.mlp.gate_proj.biases": "model.safetensors",
222
+ "model.layers.17.mlp.gate_proj.scales": "model.safetensors",
223
+ "model.layers.17.mlp.gate_proj.weight": "model.safetensors",
224
+ "model.layers.17.mlp.up_proj.biases": "model.safetensors",
225
+ "model.layers.17.mlp.up_proj.scales": "model.safetensors",
226
+ "model.layers.17.mlp.up_proj.weight": "model.safetensors",
227
+ "model.layers.17.post_attention_layernorm.weight": "model.safetensors",
228
+ "model.layers.17.self_attn.k_proj.biases": "model.safetensors",
229
+ "model.layers.17.self_attn.k_proj.scales": "model.safetensors",
230
+ "model.layers.17.self_attn.k_proj.weight": "model.safetensors",
231
+ "model.layers.17.self_attn.o_proj.biases": "model.safetensors",
232
+ "model.layers.17.self_attn.o_proj.scales": "model.safetensors",
233
+ "model.layers.17.self_attn.o_proj.weight": "model.safetensors",
234
+ "model.layers.17.self_attn.q_proj.biases": "model.safetensors",
235
+ "model.layers.17.self_attn.q_proj.scales": "model.safetensors",
236
+ "model.layers.17.self_attn.q_proj.weight": "model.safetensors",
237
+ "model.layers.17.self_attn.v_proj.biases": "model.safetensors",
238
+ "model.layers.17.self_attn.v_proj.scales": "model.safetensors",
239
+ "model.layers.17.self_attn.v_proj.weight": "model.safetensors",
240
+ "model.layers.18.input_layernorm.weight": "model.safetensors",
241
+ "model.layers.18.mlp.down_proj.biases": "model.safetensors",
242
+ "model.layers.18.mlp.down_proj.scales": "model.safetensors",
243
+ "model.layers.18.mlp.down_proj.weight": "model.safetensors",
244
+ "model.layers.18.mlp.gate_proj.biases": "model.safetensors",
245
+ "model.layers.18.mlp.gate_proj.scales": "model.safetensors",
246
+ "model.layers.18.mlp.gate_proj.weight": "model.safetensors",
247
+ "model.layers.18.mlp.up_proj.biases": "model.safetensors",
248
+ "model.layers.18.mlp.up_proj.scales": "model.safetensors",
249
+ "model.layers.18.mlp.up_proj.weight": "model.safetensors",
250
+ "model.layers.18.post_attention_layernorm.weight": "model.safetensors",
251
+ "model.layers.18.self_attn.k_proj.biases": "model.safetensors",
252
+ "model.layers.18.self_attn.k_proj.scales": "model.safetensors",
253
+ "model.layers.18.self_attn.k_proj.weight": "model.safetensors",
254
+ "model.layers.18.self_attn.o_proj.biases": "model.safetensors",
255
+ "model.layers.18.self_attn.o_proj.scales": "model.safetensors",
256
+ "model.layers.18.self_attn.o_proj.weight": "model.safetensors",
257
+ "model.layers.18.self_attn.q_proj.biases": "model.safetensors",
258
+ "model.layers.18.self_attn.q_proj.scales": "model.safetensors",
259
+ "model.layers.18.self_attn.q_proj.weight": "model.safetensors",
260
+ "model.layers.18.self_attn.v_proj.biases": "model.safetensors",
261
+ "model.layers.18.self_attn.v_proj.scales": "model.safetensors",
262
+ "model.layers.18.self_attn.v_proj.weight": "model.safetensors",
263
+ "model.layers.19.input_layernorm.weight": "model.safetensors",
264
+ "model.layers.19.mlp.down_proj.biases": "model.safetensors",
265
+ "model.layers.19.mlp.down_proj.scales": "model.safetensors",
266
+ "model.layers.19.mlp.down_proj.weight": "model.safetensors",
267
+ "model.layers.19.mlp.gate_proj.biases": "model.safetensors",
268
+ "model.layers.19.mlp.gate_proj.scales": "model.safetensors",
269
+ "model.layers.19.mlp.gate_proj.weight": "model.safetensors",
270
+ "model.layers.19.mlp.up_proj.biases": "model.safetensors",
271
+ "model.layers.19.mlp.up_proj.scales": "model.safetensors",
272
+ "model.layers.19.mlp.up_proj.weight": "model.safetensors",
273
+ "model.layers.19.post_attention_layernorm.weight": "model.safetensors",
274
+ "model.layers.19.self_attn.k_proj.biases": "model.safetensors",
275
+ "model.layers.19.self_attn.k_proj.scales": "model.safetensors",
276
+ "model.layers.19.self_attn.k_proj.weight": "model.safetensors",
277
+ "model.layers.19.self_attn.o_proj.biases": "model.safetensors",
278
+ "model.layers.19.self_attn.o_proj.scales": "model.safetensors",
279
+ "model.layers.19.self_attn.o_proj.weight": "model.safetensors",
280
+ "model.layers.19.self_attn.q_proj.biases": "model.safetensors",
281
+ "model.layers.19.self_attn.q_proj.scales": "model.safetensors",
282
+ "model.layers.19.self_attn.q_proj.weight": "model.safetensors",
283
+ "model.layers.19.self_attn.v_proj.biases": "model.safetensors",
284
+ "model.layers.19.self_attn.v_proj.scales": "model.safetensors",
285
+ "model.layers.19.self_attn.v_proj.weight": "model.safetensors",
286
+ "model.layers.2.input_layernorm.weight": "model.safetensors",
287
+ "model.layers.2.mlp.down_proj.biases": "model.safetensors",
288
+ "model.layers.2.mlp.down_proj.scales": "model.safetensors",
289
+ "model.layers.2.mlp.down_proj.weight": "model.safetensors",
290
+ "model.layers.2.mlp.gate_proj.biases": "model.safetensors",
291
+ "model.layers.2.mlp.gate_proj.scales": "model.safetensors",
292
+ "model.layers.2.mlp.gate_proj.weight": "model.safetensors",
293
+ "model.layers.2.mlp.up_proj.biases": "model.safetensors",
294
+ "model.layers.2.mlp.up_proj.scales": "model.safetensors",
295
+ "model.layers.2.mlp.up_proj.weight": "model.safetensors",
296
+ "model.layers.2.post_attention_layernorm.weight": "model.safetensors",
297
+ "model.layers.2.self_attn.k_proj.biases": "model.safetensors",
298
+ "model.layers.2.self_attn.k_proj.scales": "model.safetensors",
299
+ "model.layers.2.self_attn.k_proj.weight": "model.safetensors",
300
+ "model.layers.2.self_attn.o_proj.biases": "model.safetensors",
301
+ "model.layers.2.self_attn.o_proj.scales": "model.safetensors",
302
+ "model.layers.2.self_attn.o_proj.weight": "model.safetensors",
303
+ "model.layers.2.self_attn.q_proj.biases": "model.safetensors",
304
+ "model.layers.2.self_attn.q_proj.scales": "model.safetensors",
305
+ "model.layers.2.self_attn.q_proj.weight": "model.safetensors",
306
+ "model.layers.2.self_attn.v_proj.biases": "model.safetensors",
307
+ "model.layers.2.self_attn.v_proj.scales": "model.safetensors",
308
+ "model.layers.2.self_attn.v_proj.weight": "model.safetensors",
309
+ "model.layers.20.input_layernorm.weight": "model.safetensors",
310
+ "model.layers.20.mlp.down_proj.biases": "model.safetensors",
311
+ "model.layers.20.mlp.down_proj.scales": "model.safetensors",
312
+ "model.layers.20.mlp.down_proj.weight": "model.safetensors",
313
+ "model.layers.20.mlp.gate_proj.biases": "model.safetensors",
314
+ "model.layers.20.mlp.gate_proj.scales": "model.safetensors",
315
+ "model.layers.20.mlp.gate_proj.weight": "model.safetensors",
316
+ "model.layers.20.mlp.up_proj.biases": "model.safetensors",
317
+ "model.layers.20.mlp.up_proj.scales": "model.safetensors",
318
+ "model.layers.20.mlp.up_proj.weight": "model.safetensors",
319
+ "model.layers.20.post_attention_layernorm.weight": "model.safetensors",
320
+ "model.layers.20.self_attn.k_proj.biases": "model.safetensors",
321
+ "model.layers.20.self_attn.k_proj.scales": "model.safetensors",
322
+ "model.layers.20.self_attn.k_proj.weight": "model.safetensors",
323
+ "model.layers.20.self_attn.o_proj.biases": "model.safetensors",
324
+ "model.layers.20.self_attn.o_proj.scales": "model.safetensors",
325
+ "model.layers.20.self_attn.o_proj.weight": "model.safetensors",
326
+ "model.layers.20.self_attn.q_proj.biases": "model.safetensors",
327
+ "model.layers.20.self_attn.q_proj.scales": "model.safetensors",
328
+ "model.layers.20.self_attn.q_proj.weight": "model.safetensors",
329
+ "model.layers.20.self_attn.v_proj.biases": "model.safetensors",
330
+ "model.layers.20.self_attn.v_proj.scales": "model.safetensors",
331
+ "model.layers.20.self_attn.v_proj.weight": "model.safetensors",
332
+ "model.layers.21.input_layernorm.weight": "model.safetensors",
333
+ "model.layers.21.mlp.down_proj.biases": "model.safetensors",
334
+ "model.layers.21.mlp.down_proj.scales": "model.safetensors",
335
+ "model.layers.21.mlp.down_proj.weight": "model.safetensors",
336
+ "model.layers.21.mlp.gate_proj.biases": "model.safetensors",
337
+ "model.layers.21.mlp.gate_proj.scales": "model.safetensors",
338
+ "model.layers.21.mlp.gate_proj.weight": "model.safetensors",
339
+ "model.layers.21.mlp.up_proj.biases": "model.safetensors",
340
+ "model.layers.21.mlp.up_proj.scales": "model.safetensors",
341
+ "model.layers.21.mlp.up_proj.weight": "model.safetensors",
342
+ "model.layers.21.post_attention_layernorm.weight": "model.safetensors",
343
+ "model.layers.21.self_attn.k_proj.biases": "model.safetensors",
344
+ "model.layers.21.self_attn.k_proj.scales": "model.safetensors",
345
+ "model.layers.21.self_attn.k_proj.weight": "model.safetensors",
346
+ "model.layers.21.self_attn.o_proj.biases": "model.safetensors",
347
+ "model.layers.21.self_attn.o_proj.scales": "model.safetensors",
348
+ "model.layers.21.self_attn.o_proj.weight": "model.safetensors",
349
+ "model.layers.21.self_attn.q_proj.biases": "model.safetensors",
350
+ "model.layers.21.self_attn.q_proj.scales": "model.safetensors",
351
+ "model.layers.21.self_attn.q_proj.weight": "model.safetensors",
352
+ "model.layers.21.self_attn.v_proj.biases": "model.safetensors",
353
+ "model.layers.21.self_attn.v_proj.scales": "model.safetensors",
354
+ "model.layers.21.self_attn.v_proj.weight": "model.safetensors",
355
+ "model.layers.22.input_layernorm.weight": "model.safetensors",
356
+ "model.layers.22.mlp.down_proj.biases": "model.safetensors",
357
+ "model.layers.22.mlp.down_proj.scales": "model.safetensors",
358
+ "model.layers.22.mlp.down_proj.weight": "model.safetensors",
359
+ "model.layers.22.mlp.gate_proj.biases": "model.safetensors",
360
+ "model.layers.22.mlp.gate_proj.scales": "model.safetensors",
361
+ "model.layers.22.mlp.gate_proj.weight": "model.safetensors",
362
+ "model.layers.22.mlp.up_proj.biases": "model.safetensors",
363
+ "model.layers.22.mlp.up_proj.scales": "model.safetensors",
364
+ "model.layers.22.mlp.up_proj.weight": "model.safetensors",
365
+ "model.layers.22.post_attention_layernorm.weight": "model.safetensors",
366
+ "model.layers.22.self_attn.k_proj.biases": "model.safetensors",
367
+ "model.layers.22.self_attn.k_proj.scales": "model.safetensors",
368
+ "model.layers.22.self_attn.k_proj.weight": "model.safetensors",
369
+ "model.layers.22.self_attn.o_proj.biases": "model.safetensors",
370
+ "model.layers.22.self_attn.o_proj.scales": "model.safetensors",
371
+ "model.layers.22.self_attn.o_proj.weight": "model.safetensors",
372
+ "model.layers.22.self_attn.q_proj.biases": "model.safetensors",
373
+ "model.layers.22.self_attn.q_proj.scales": "model.safetensors",
374
+ "model.layers.22.self_attn.q_proj.weight": "model.safetensors",
375
+ "model.layers.22.self_attn.v_proj.biases": "model.safetensors",
376
+ "model.layers.22.self_attn.v_proj.scales": "model.safetensors",
377
+ "model.layers.22.self_attn.v_proj.weight": "model.safetensors",
378
+ "model.layers.23.input_layernorm.weight": "model.safetensors",
379
+ "model.layers.23.mlp.down_proj.biases": "model.safetensors",
380
+ "model.layers.23.mlp.down_proj.scales": "model.safetensors",
381
+ "model.layers.23.mlp.down_proj.weight": "model.safetensors",
382
+ "model.layers.23.mlp.gate_proj.biases": "model.safetensors",
383
+ "model.layers.23.mlp.gate_proj.scales": "model.safetensors",
384
+ "model.layers.23.mlp.gate_proj.weight": "model.safetensors",
385
+ "model.layers.23.mlp.up_proj.biases": "model.safetensors",
386
+ "model.layers.23.mlp.up_proj.scales": "model.safetensors",
387
+ "model.layers.23.mlp.up_proj.weight": "model.safetensors",
388
+ "model.layers.23.post_attention_layernorm.weight": "model.safetensors",
389
+ "model.layers.23.self_attn.k_proj.biases": "model.safetensors",
390
+ "model.layers.23.self_attn.k_proj.scales": "model.safetensors",
391
+ "model.layers.23.self_attn.k_proj.weight": "model.safetensors",
392
+ "model.layers.23.self_attn.o_proj.biases": "model.safetensors",
393
+ "model.layers.23.self_attn.o_proj.scales": "model.safetensors",
394
+ "model.layers.23.self_attn.o_proj.weight": "model.safetensors",
395
+ "model.layers.23.self_attn.q_proj.biases": "model.safetensors",
396
+ "model.layers.23.self_attn.q_proj.scales": "model.safetensors",
397
+ "model.layers.23.self_attn.q_proj.weight": "model.safetensors",
398
+ "model.layers.23.self_attn.v_proj.biases": "model.safetensors",
399
+ "model.layers.23.self_attn.v_proj.scales": "model.safetensors",
400
+ "model.layers.23.self_attn.v_proj.weight": "model.safetensors",
401
+ "model.layers.24.input_layernorm.weight": "model.safetensors",
402
+ "model.layers.24.mlp.down_proj.biases": "model.safetensors",
403
+ "model.layers.24.mlp.down_proj.scales": "model.safetensors",
404
+ "model.layers.24.mlp.down_proj.weight": "model.safetensors",
405
+ "model.layers.24.mlp.gate_proj.biases": "model.safetensors",
406
+ "model.layers.24.mlp.gate_proj.scales": "model.safetensors",
407
+ "model.layers.24.mlp.gate_proj.weight": "model.safetensors",
408
+ "model.layers.24.mlp.up_proj.biases": "model.safetensors",
409
+ "model.layers.24.mlp.up_proj.scales": "model.safetensors",
410
+ "model.layers.24.mlp.up_proj.weight": "model.safetensors",
411
+ "model.layers.24.post_attention_layernorm.weight": "model.safetensors",
412
+ "model.layers.24.self_attn.k_proj.biases": "model.safetensors",
413
+ "model.layers.24.self_attn.k_proj.scales": "model.safetensors",
414
+ "model.layers.24.self_attn.k_proj.weight": "model.safetensors",
415
+ "model.layers.24.self_attn.o_proj.biases": "model.safetensors",
416
+ "model.layers.24.self_attn.o_proj.scales": "model.safetensors",
417
+ "model.layers.24.self_attn.o_proj.weight": "model.safetensors",
418
+ "model.layers.24.self_attn.q_proj.biases": "model.safetensors",
419
+ "model.layers.24.self_attn.q_proj.scales": "model.safetensors",
420
+ "model.layers.24.self_attn.q_proj.weight": "model.safetensors",
421
+ "model.layers.24.self_attn.v_proj.biases": "model.safetensors",
422
+ "model.layers.24.self_attn.v_proj.scales": "model.safetensors",
423
+ "model.layers.24.self_attn.v_proj.weight": "model.safetensors",
424
+ "model.layers.25.input_layernorm.weight": "model.safetensors",
425
+ "model.layers.25.mlp.down_proj.biases": "model.safetensors",
426
+ "model.layers.25.mlp.down_proj.scales": "model.safetensors",
427
+ "model.layers.25.mlp.down_proj.weight": "model.safetensors",
428
+ "model.layers.25.mlp.gate_proj.biases": "model.safetensors",
429
+ "model.layers.25.mlp.gate_proj.scales": "model.safetensors",
430
+ "model.layers.25.mlp.gate_proj.weight": "model.safetensors",
431
+ "model.layers.25.mlp.up_proj.biases": "model.safetensors",
432
+ "model.layers.25.mlp.up_proj.scales": "model.safetensors",
433
+ "model.layers.25.mlp.up_proj.weight": "model.safetensors",
434
+ "model.layers.25.post_attention_layernorm.weight": "model.safetensors",
435
+ "model.layers.25.self_attn.k_proj.biases": "model.safetensors",
436
+ "model.layers.25.self_attn.k_proj.scales": "model.safetensors",
437
+ "model.layers.25.self_attn.k_proj.weight": "model.safetensors",
438
+ "model.layers.25.self_attn.o_proj.biases": "model.safetensors",
439
+ "model.layers.25.self_attn.o_proj.scales": "model.safetensors",
440
+ "model.layers.25.self_attn.o_proj.weight": "model.safetensors",
441
+ "model.layers.25.self_attn.q_proj.biases": "model.safetensors",
442
+ "model.layers.25.self_attn.q_proj.scales": "model.safetensors",
443
+ "model.layers.25.self_attn.q_proj.weight": "model.safetensors",
444
+ "model.layers.25.self_attn.v_proj.biases": "model.safetensors",
445
+ "model.layers.25.self_attn.v_proj.scales": "model.safetensors",
446
+ "model.layers.25.self_attn.v_proj.weight": "model.safetensors",
447
+ "model.layers.26.input_layernorm.weight": "model.safetensors",
448
+ "model.layers.26.mlp.down_proj.biases": "model.safetensors",
449
+ "model.layers.26.mlp.down_proj.scales": "model.safetensors",
450
+ "model.layers.26.mlp.down_proj.weight": "model.safetensors",
451
+ "model.layers.26.mlp.gate_proj.biases": "model.safetensors",
452
+ "model.layers.26.mlp.gate_proj.scales": "model.safetensors",
453
+ "model.layers.26.mlp.gate_proj.weight": "model.safetensors",
454
+ "model.layers.26.mlp.up_proj.biases": "model.safetensors",
455
+ "model.layers.26.mlp.up_proj.scales": "model.safetensors",
456
+ "model.layers.26.mlp.up_proj.weight": "model.safetensors",
457
+ "model.layers.26.post_attention_layernorm.weight": "model.safetensors",
458
+ "model.layers.26.self_attn.k_proj.biases": "model.safetensors",
459
+ "model.layers.26.self_attn.k_proj.scales": "model.safetensors",
460
+ "model.layers.26.self_attn.k_proj.weight": "model.safetensors",
461
+ "model.layers.26.self_attn.o_proj.biases": "model.safetensors",
462
+ "model.layers.26.self_attn.o_proj.scales": "model.safetensors",
463
+ "model.layers.26.self_attn.o_proj.weight": "model.safetensors",
464
+ "model.layers.26.self_attn.q_proj.biases": "model.safetensors",
465
+ "model.layers.26.self_attn.q_proj.scales": "model.safetensors",
466
+ "model.layers.26.self_attn.q_proj.weight": "model.safetensors",
467
+ "model.layers.26.self_attn.v_proj.biases": "model.safetensors",
468
+ "model.layers.26.self_attn.v_proj.scales": "model.safetensors",
469
+ "model.layers.26.self_attn.v_proj.weight": "model.safetensors",
470
+ "model.layers.27.input_layernorm.weight": "model.safetensors",
471
+ "model.layers.27.mlp.down_proj.biases": "model.safetensors",
472
+ "model.layers.27.mlp.down_proj.scales": "model.safetensors",
473
+ "model.layers.27.mlp.down_proj.weight": "model.safetensors",
474
+ "model.layers.27.mlp.gate_proj.biases": "model.safetensors",
475
+ "model.layers.27.mlp.gate_proj.scales": "model.safetensors",
476
+ "model.layers.27.mlp.gate_proj.weight": "model.safetensors",
477
+ "model.layers.27.mlp.up_proj.biases": "model.safetensors",
478
+ "model.layers.27.mlp.up_proj.scales": "model.safetensors",
479
+ "model.layers.27.mlp.up_proj.weight": "model.safetensors",
480
+ "model.layers.27.post_attention_layernorm.weight": "model.safetensors",
481
+ "model.layers.27.self_attn.k_proj.biases": "model.safetensors",
482
+ "model.layers.27.self_attn.k_proj.scales": "model.safetensors",
483
+ "model.layers.27.self_attn.k_proj.weight": "model.safetensors",
484
+ "model.layers.27.self_attn.o_proj.biases": "model.safetensors",
485
+ "model.layers.27.self_attn.o_proj.scales": "model.safetensors",
486
+ "model.layers.27.self_attn.o_proj.weight": "model.safetensors",
487
+ "model.layers.27.self_attn.q_proj.biases": "model.safetensors",
488
+ "model.layers.27.self_attn.q_proj.scales": "model.safetensors",
489
+ "model.layers.27.self_attn.q_proj.weight": "model.safetensors",
490
+ "model.layers.27.self_attn.v_proj.biases": "model.safetensors",
491
+ "model.layers.27.self_attn.v_proj.scales": "model.safetensors",
492
+ "model.layers.27.self_attn.v_proj.weight": "model.safetensors",
493
+ "model.layers.3.input_layernorm.weight": "model.safetensors",
494
+ "model.layers.3.mlp.down_proj.biases": "model.safetensors",
495
+ "model.layers.3.mlp.down_proj.scales": "model.safetensors",
496
+ "model.layers.3.mlp.down_proj.weight": "model.safetensors",
497
+ "model.layers.3.mlp.gate_proj.biases": "model.safetensors",
498
+ "model.layers.3.mlp.gate_proj.scales": "model.safetensors",
499
+ "model.layers.3.mlp.gate_proj.weight": "model.safetensors",
500
+ "model.layers.3.mlp.up_proj.biases": "model.safetensors",
501
+ "model.layers.3.mlp.up_proj.scales": "model.safetensors",
502
+ "model.layers.3.mlp.up_proj.weight": "model.safetensors",
503
+ "model.layers.3.post_attention_layernorm.weight": "model.safetensors",
504
+ "model.layers.3.self_attn.k_proj.biases": "model.safetensors",
505
+ "model.layers.3.self_attn.k_proj.scales": "model.safetensors",
506
+ "model.layers.3.self_attn.k_proj.weight": "model.safetensors",
507
+ "model.layers.3.self_attn.o_proj.biases": "model.safetensors",
508
+ "model.layers.3.self_attn.o_proj.scales": "model.safetensors",
509
+ "model.layers.3.self_attn.o_proj.weight": "model.safetensors",
510
+ "model.layers.3.self_attn.q_proj.biases": "model.safetensors",
511
+ "model.layers.3.self_attn.q_proj.scales": "model.safetensors",
512
+ "model.layers.3.self_attn.q_proj.weight": "model.safetensors",
513
+ "model.layers.3.self_attn.v_proj.biases": "model.safetensors",
514
+ "model.layers.3.self_attn.v_proj.scales": "model.safetensors",
515
+ "model.layers.3.self_attn.v_proj.weight": "model.safetensors",
516
+ "model.layers.4.input_layernorm.weight": "model.safetensors",
517
+ "model.layers.4.mlp.down_proj.biases": "model.safetensors",
518
+ "model.layers.4.mlp.down_proj.scales": "model.safetensors",
519
+ "model.layers.4.mlp.down_proj.weight": "model.safetensors",
520
+ "model.layers.4.mlp.gate_proj.biases": "model.safetensors",
521
+ "model.layers.4.mlp.gate_proj.scales": "model.safetensors",
522
+ "model.layers.4.mlp.gate_proj.weight": "model.safetensors",
523
+ "model.layers.4.mlp.up_proj.biases": "model.safetensors",
524
+ "model.layers.4.mlp.up_proj.scales": "model.safetensors",
525
+ "model.layers.4.mlp.up_proj.weight": "model.safetensors",
526
+ "model.layers.4.post_attention_layernorm.weight": "model.safetensors",
527
+ "model.layers.4.self_attn.k_proj.biases": "model.safetensors",
528
+ "model.layers.4.self_attn.k_proj.scales": "model.safetensors",
529
+ "model.layers.4.self_attn.k_proj.weight": "model.safetensors",
530
+ "model.layers.4.self_attn.o_proj.biases": "model.safetensors",
531
+ "model.layers.4.self_attn.o_proj.scales": "model.safetensors",
532
+ "model.layers.4.self_attn.o_proj.weight": "model.safetensors",
533
+ "model.layers.4.self_attn.q_proj.biases": "model.safetensors",
534
+ "model.layers.4.self_attn.q_proj.scales": "model.safetensors",
535
+ "model.layers.4.self_attn.q_proj.weight": "model.safetensors",
536
+ "model.layers.4.self_attn.v_proj.biases": "model.safetensors",
537
+ "model.layers.4.self_attn.v_proj.scales": "model.safetensors",
538
+ "model.layers.4.self_attn.v_proj.weight": "model.safetensors",
539
+ "model.layers.5.input_layernorm.weight": "model.safetensors",
540
+ "model.layers.5.mlp.down_proj.biases": "model.safetensors",
541
+ "model.layers.5.mlp.down_proj.scales": "model.safetensors",
542
+ "model.layers.5.mlp.down_proj.weight": "model.safetensors",
543
+ "model.layers.5.mlp.gate_proj.biases": "model.safetensors",
544
+ "model.layers.5.mlp.gate_proj.scales": "model.safetensors",
545
+ "model.layers.5.mlp.gate_proj.weight": "model.safetensors",
546
+ "model.layers.5.mlp.up_proj.biases": "model.safetensors",
547
+ "model.layers.5.mlp.up_proj.scales": "model.safetensors",
548
+ "model.layers.5.mlp.up_proj.weight": "model.safetensors",
549
+ "model.layers.5.post_attention_layernorm.weight": "model.safetensors",
550
+ "model.layers.5.self_attn.k_proj.biases": "model.safetensors",
551
+ "model.layers.5.self_attn.k_proj.scales": "model.safetensors",
552
+ "model.layers.5.self_attn.k_proj.weight": "model.safetensors",
553
+ "model.layers.5.self_attn.o_proj.biases": "model.safetensors",
554
+ "model.layers.5.self_attn.o_proj.scales": "model.safetensors",
555
+ "model.layers.5.self_attn.o_proj.weight": "model.safetensors",
556
+ "model.layers.5.self_attn.q_proj.biases": "model.safetensors",
557
+ "model.layers.5.self_attn.q_proj.scales": "model.safetensors",
558
+ "model.layers.5.self_attn.q_proj.weight": "model.safetensors",
559
+ "model.layers.5.self_attn.v_proj.biases": "model.safetensors",
560
+ "model.layers.5.self_attn.v_proj.scales": "model.safetensors",
561
+ "model.layers.5.self_attn.v_proj.weight": "model.safetensors",
562
+ "model.layers.6.input_layernorm.weight": "model.safetensors",
563
+ "model.layers.6.mlp.down_proj.biases": "model.safetensors",
564
+ "model.layers.6.mlp.down_proj.scales": "model.safetensors",
565
+ "model.layers.6.mlp.down_proj.weight": "model.safetensors",
566
+ "model.layers.6.mlp.gate_proj.biases": "model.safetensors",
567
+ "model.layers.6.mlp.gate_proj.scales": "model.safetensors",
568
+ "model.layers.6.mlp.gate_proj.weight": "model.safetensors",
569
+ "model.layers.6.mlp.up_proj.biases": "model.safetensors",
570
+ "model.layers.6.mlp.up_proj.scales": "model.safetensors",
571
+ "model.layers.6.mlp.up_proj.weight": "model.safetensors",
572
+ "model.layers.6.post_attention_layernorm.weight": "model.safetensors",
573
+ "model.layers.6.self_attn.k_proj.biases": "model.safetensors",
574
+ "model.layers.6.self_attn.k_proj.scales": "model.safetensors",
575
+ "model.layers.6.self_attn.k_proj.weight": "model.safetensors",
576
+ "model.layers.6.self_attn.o_proj.biases": "model.safetensors",
577
+ "model.layers.6.self_attn.o_proj.scales": "model.safetensors",
578
+ "model.layers.6.self_attn.o_proj.weight": "model.safetensors",
579
+ "model.layers.6.self_attn.q_proj.biases": "model.safetensors",
580
+ "model.layers.6.self_attn.q_proj.scales": "model.safetensors",
581
+ "model.layers.6.self_attn.q_proj.weight": "model.safetensors",
582
+ "model.layers.6.self_attn.v_proj.biases": "model.safetensors",
583
+ "model.layers.6.self_attn.v_proj.scales": "model.safetensors",
584
+ "model.layers.6.self_attn.v_proj.weight": "model.safetensors",
585
+ "model.layers.7.input_layernorm.weight": "model.safetensors",
586
+ "model.layers.7.mlp.down_proj.biases": "model.safetensors",
587
+ "model.layers.7.mlp.down_proj.scales": "model.safetensors",
588
+ "model.layers.7.mlp.down_proj.weight": "model.safetensors",
589
+ "model.layers.7.mlp.gate_proj.biases": "model.safetensors",
590
+ "model.layers.7.mlp.gate_proj.scales": "model.safetensors",
591
+ "model.layers.7.mlp.gate_proj.weight": "model.safetensors",
592
+ "model.layers.7.mlp.up_proj.biases": "model.safetensors",
593
+ "model.layers.7.mlp.up_proj.scales": "model.safetensors",
594
+ "model.layers.7.mlp.up_proj.weight": "model.safetensors",
595
+ "model.layers.7.post_attention_layernorm.weight": "model.safetensors",
596
+ "model.layers.7.self_attn.k_proj.biases": "model.safetensors",
597
+ "model.layers.7.self_attn.k_proj.scales": "model.safetensors",
598
+ "model.layers.7.self_attn.k_proj.weight": "model.safetensors",
599
+ "model.layers.7.self_attn.o_proj.biases": "model.safetensors",
600
+ "model.layers.7.self_attn.o_proj.scales": "model.safetensors",
601
+ "model.layers.7.self_attn.o_proj.weight": "model.safetensors",
602
+ "model.layers.7.self_attn.q_proj.biases": "model.safetensors",
603
+ "model.layers.7.self_attn.q_proj.scales": "model.safetensors",
604
+ "model.layers.7.self_attn.q_proj.weight": "model.safetensors",
605
+ "model.layers.7.self_attn.v_proj.biases": "model.safetensors",
606
+ "model.layers.7.self_attn.v_proj.scales": "model.safetensors",
607
+ "model.layers.7.self_attn.v_proj.weight": "model.safetensors",
608
+ "model.layers.8.input_layernorm.weight": "model.safetensors",
609
+ "model.layers.8.mlp.down_proj.biases": "model.safetensors",
610
+ "model.layers.8.mlp.down_proj.scales": "model.safetensors",
611
+ "model.layers.8.mlp.down_proj.weight": "model.safetensors",
612
+ "model.layers.8.mlp.gate_proj.biases": "model.safetensors",
613
+ "model.layers.8.mlp.gate_proj.scales": "model.safetensors",
614
+ "model.layers.8.mlp.gate_proj.weight": "model.safetensors",
615
+ "model.layers.8.mlp.up_proj.biases": "model.safetensors",
616
+ "model.layers.8.mlp.up_proj.scales": "model.safetensors",
617
+ "model.layers.8.mlp.up_proj.weight": "model.safetensors",
618
+ "model.layers.8.post_attention_layernorm.weight": "model.safetensors",
619
+ "model.layers.8.self_attn.k_proj.biases": "model.safetensors",
620
+ "model.layers.8.self_attn.k_proj.scales": "model.safetensors",
621
+ "model.layers.8.self_attn.k_proj.weight": "model.safetensors",
622
+ "model.layers.8.self_attn.o_proj.biases": "model.safetensors",
623
+ "model.layers.8.self_attn.o_proj.scales": "model.safetensors",
624
+ "model.layers.8.self_attn.o_proj.weight": "model.safetensors",
625
+ "model.layers.8.self_attn.q_proj.biases": "model.safetensors",
626
+ "model.layers.8.self_attn.q_proj.scales": "model.safetensors",
627
+ "model.layers.8.self_attn.q_proj.weight": "model.safetensors",
628
+ "model.layers.8.self_attn.v_proj.biases": "model.safetensors",
629
+ "model.layers.8.self_attn.v_proj.scales": "model.safetensors",
630
+ "model.layers.8.self_attn.v_proj.weight": "model.safetensors",
631
+ "model.layers.9.input_layernorm.weight": "model.safetensors",
632
+ "model.layers.9.mlp.down_proj.biases": "model.safetensors",
633
+ "model.layers.9.mlp.down_proj.scales": "model.safetensors",
634
+ "model.layers.9.mlp.down_proj.weight": "model.safetensors",
635
+ "model.layers.9.mlp.gate_proj.biases": "model.safetensors",
636
+ "model.layers.9.mlp.gate_proj.scales": "model.safetensors",
637
+ "model.layers.9.mlp.gate_proj.weight": "model.safetensors",
638
+ "model.layers.9.mlp.up_proj.biases": "model.safetensors",
639
+ "model.layers.9.mlp.up_proj.scales": "model.safetensors",
640
+ "model.layers.9.mlp.up_proj.weight": "model.safetensors",
641
+ "model.layers.9.post_attention_layernorm.weight": "model.safetensors",
642
+ "model.layers.9.self_attn.k_proj.biases": "model.safetensors",
643
+ "model.layers.9.self_attn.k_proj.scales": "model.safetensors",
644
+ "model.layers.9.self_attn.k_proj.weight": "model.safetensors",
645
+ "model.layers.9.self_attn.o_proj.biases": "model.safetensors",
646
+ "model.layers.9.self_attn.o_proj.scales": "model.safetensors",
647
+ "model.layers.9.self_attn.o_proj.weight": "model.safetensors",
648
+ "model.layers.9.self_attn.q_proj.biases": "model.safetensors",
649
+ "model.layers.9.self_attn.q_proj.scales": "model.safetensors",
650
+ "model.layers.9.self_attn.q_proj.weight": "model.safetensors",
651
+ "model.layers.9.self_attn.v_proj.biases": "model.safetensors",
652
+ "model.layers.9.self_attn.v_proj.scales": "model.safetensors",
653
+ "model.layers.9.self_attn.v_proj.weight": "model.safetensors",
654
+ "model.norm.weight": "model.safetensors"
655
+ }
656
+ }
prompt.txt ADDED
@@ -0,0 +1,97 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # TTS Voice Design Description
2
+
3
+ ## Core Function
4
+
5
+ You generate voice descriptions for TTS systems by mapping user requests to allowed attributes. No templates. No formatting rules. Just natural descriptions using the options below.
6
+
7
+ ## Voice Categories
8
+
9
+ **Realistic Voices**
10
+ Professional, business, educational, support, real-world scenarios (podcast hosts, instructors, customer service).
11
+
12
+ **Creative Voices**
13
+ Fantasy characters, fictional personas, stylized voices (pirates, robots, villains, anime).
14
+
15
+ ---
16
+
17
+ ## Available Attributes
18
+
19
+ ### Age
20
+ - `20s`, `30s`, `40s`
21
+
22
+ ### Gender
23
+ - `male`, `female`
24
+
25
+ ### Accent
26
+ - `american`, `indian`, `middle_eastern`, `asian_american`, `british`
27
+
28
+ ### Pitch
29
+ - `low`, `normal`, `high`
30
+ - **Constraint:** For 40s age, avoid high pitch (use sparingly, max 15%)
31
+
32
+ ### Timbre
33
+
34
+ **For Realistic:**
35
+ `deep`, `warm`, `gravelly`, `smooth`, `raspy`, `nasally`, `throaty`, `harsh`
36
+
37
+ **For Creative:**
38
+ All realistic options PLUS `robotic`, `ethereal`
39
+ - **Constraint:** `robotic`/`ethereal` only with: `ai_machine_voice`, `cyborg`, `alien_scifi`, `mythical_godlike_magical`
40
+
41
+ ### Pacing
42
+ - `very_slow`, `slow`, `conversational`, `brisk`, `fast`, `very_fast`
43
+ - **Character-specific overrides:**
44
+ - `mafia`: slow or conversational only
45
+ - `flirty`: slow or conversational only
46
+ - `alpha`: fast or very_fast only
47
+ - `seductively`: very_slow or slow only
48
+
49
+ ### Emotion
50
+ - `neutral`, `energetic`, `excited`, `sad`, `sarcastic`, `dry`
51
+ - **Default to neutral** for most requests
52
+
53
+ ### Emotion Intensity
54
+ - `low`, `med`, `high`
55
+
56
+ ---
57
+
58
+ ## Realistic-Only Attributes
59
+
60
+ ### Domain
61
+ `social_content`, `podcast`, `commercial`, `education`, `support`, `entertainment`, `corporate`, `viral_content`
62
+
63
+ ### Speaking Role (matches domain)
64
+ - **social_content:** youtube_vlogger, social_media_creator, influencer_voice, streamer_companion
65
+ - **podcast:** podcast_host, interviewer
66
+ - **commercial:** ad_narrator, brand_spokesperson, product_demo_voice, sales_pitch_voice
67
+ - **education:** elearning_instructor, kids_story_voice
68
+ - **support:** customer_support_agent, virtual_receptionist, healthcare_assistant
69
+ - **entertainment:** storyteller, social_media_reaction, meme_voice
70
+ - **corporate:** explainer_video_voice, event_host, corporate_training_narrator
71
+ - **viral_content:** short_form_narrator, meme_voice
72
+
73
+ ### Register
74
+ - `formal`, `neutral`, `casual`
75
+
76
+ ---
77
+
78
+ ## Creative-Only Attributes
79
+
80
+ ### Character
81
+ `animated_cartoon`, `ai_machine_voice`, `alien_scifi`, `seductively`, `flirty`, `anime`, `cyborg`, `pirate`, `dark_villain`, `demon`, `gangster`, `mafia`, `dramatic_narrator`, `mythical_godlike_magical`, `spy`, `vampire`, `alpha`
82
+
83
+ ---
84
+
85
+ ## Output Guidelines
86
+
87
+ When a user requests a voice, describe it naturally using the appropriate attributes from above. Apply constraints where specified. Choose defaults when attributes aren't mentioned.
88
+
89
+ **Example mapping:**
90
+ - "professional podcast host" β†’ realistic male, 30s, american accent, warm timbre, conversational pacing, podcast domain
91
+ - "AI robot voice" β†’ creative, ai_machine_voice character, robotic timbre
92
+ - "young excited instructor" β†’ realistic, 20s, energetic emotion, education domain
93
+
94
+
95
+ Few deterministic and verbose descriptions:
96
+ - Realistic male voice in the 30s age with a american accent. Normal pitch, warm timbre, conversational pacing, neutral tone delivery at med intensity, podcast Domain, podcast_host role, neutral delivery
97
+ - Creative, ai_machine_voice character. Male voice in their 20s with a american accent. Normal pitch, robotic timbre, conversational pacing, neutral tone at med intensity.
special_tokens_map.json ADDED
@@ -0,0 +1,165 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "additional_special_tokens": [
3
+ {
4
+ "content": "<angry>",
5
+ "lstrip": false,
6
+ "normalized": false,
7
+ "rstrip": false,
8
+ "single_word": false
9
+ },
10
+ {
11
+ "content": "<appalled>",
12
+ "lstrip": false,
13
+ "normalized": false,
14
+ "rstrip": false,
15
+ "single_word": false
16
+ },
17
+ {
18
+ "content": "<chuckle>",
19
+ "lstrip": false,
20
+ "normalized": false,
21
+ "rstrip": false,
22
+ "single_word": false
23
+ },
24
+ {
25
+ "content": "<cry>",
26
+ "lstrip": false,
27
+ "normalized": false,
28
+ "rstrip": false,
29
+ "single_word": false
30
+ },
31
+ {
32
+ "content": "<curious>",
33
+ "lstrip": false,
34
+ "normalized": false,
35
+ "rstrip": false,
36
+ "single_word": false
37
+ },
38
+ {
39
+ "content": "<disappointed>",
40
+ "lstrip": false,
41
+ "normalized": false,
42
+ "rstrip": false,
43
+ "single_word": false
44
+ },
45
+ {
46
+ "content": "<excited>",
47
+ "lstrip": false,
48
+ "normalized": false,
49
+ "rstrip": false,
50
+ "single_word": false
51
+ },
52
+ {
53
+ "content": "<exhale>",
54
+ "lstrip": false,
55
+ "normalized": false,
56
+ "rstrip": false,
57
+ "single_word": false
58
+ },
59
+ {
60
+ "content": "<gasp>",
61
+ "lstrip": false,
62
+ "normalized": false,
63
+ "rstrip": false,
64
+ "single_word": false
65
+ },
66
+ {
67
+ "content": "<giggle>",
68
+ "lstrip": false,
69
+ "normalized": false,
70
+ "rstrip": false,
71
+ "single_word": false
72
+ },
73
+ {
74
+ "content": "<gulp>",
75
+ "lstrip": false,
76
+ "normalized": false,
77
+ "rstrip": false,
78
+ "single_word": false
79
+ },
80
+ {
81
+ "content": "<laugh>",
82
+ "lstrip": false,
83
+ "normalized": false,
84
+ "rstrip": false,
85
+ "single_word": false
86
+ },
87
+ {
88
+ "content": "<laugh_harder>",
89
+ "lstrip": false,
90
+ "normalized": false,
91
+ "rstrip": false,
92
+ "single_word": false
93
+ },
94
+ {
95
+ "content": "<mischievous>",
96
+ "lstrip": false,
97
+ "normalized": false,
98
+ "rstrip": false,
99
+ "single_word": false
100
+ },
101
+ {
102
+ "content": "<sarcastic>",
103
+ "lstrip": false,
104
+ "normalized": false,
105
+ "rstrip": false,
106
+ "single_word": false
107
+ },
108
+ {
109
+ "content": "<scream>",
110
+ "lstrip": false,
111
+ "normalized": false,
112
+ "rstrip": false,
113
+ "single_word": false
114
+ },
115
+ {
116
+ "content": "<sigh>",
117
+ "lstrip": false,
118
+ "normalized": false,
119
+ "rstrip": false,
120
+ "single_word": false
121
+ },
122
+ {
123
+ "content": "<sing>",
124
+ "lstrip": false,
125
+ "normalized": false,
126
+ "rstrip": false,
127
+ "single_word": false
128
+ },
129
+ {
130
+ "content": "<snort>",
131
+ "lstrip": false,
132
+ "normalized": false,
133
+ "rstrip": false,
134
+ "single_word": false
135
+ },
136
+ {
137
+ "content": "<whisper>",
138
+ "lstrip": false,
139
+ "normalized": false,
140
+ "rstrip": false,
141
+ "single_word": false
142
+ }
143
+ ],
144
+ "bos_token": {
145
+ "content": "<|begin_of_text|>",
146
+ "lstrip": false,
147
+ "normalized": false,
148
+ "rstrip": false,
149
+ "single_word": false
150
+ },
151
+ "eos_token": {
152
+ "content": "<|eot_id|>",
153
+ "lstrip": false,
154
+ "normalized": false,
155
+ "rstrip": false,
156
+ "single_word": false
157
+ },
158
+ "pad_token": {
159
+ "content": "<custom_token_7>",
160
+ "lstrip": false,
161
+ "normalized": true,
162
+ "rstrip": false,
163
+ "single_word": false
164
+ }
165
+ }
tokenizer.json ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:6c5e5b1d89b7e3738e5a5a4f93c326d8f3292ea83f9c560b8dbb6d66fb851973
3
+ size 22853258
tokenizer/special_tokens_map.json ADDED
@@ -0,0 +1,165 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "additional_special_tokens": [
3
+ {
4
+ "content": "<angry>",
5
+ "lstrip": false,
6
+ "normalized": false,
7
+ "rstrip": false,
8
+ "single_word": false
9
+ },
10
+ {
11
+ "content": "<appalled>",
12
+ "lstrip": false,
13
+ "normalized": false,
14
+ "rstrip": false,
15
+ "single_word": false
16
+ },
17
+ {
18
+ "content": "<chuckle>",
19
+ "lstrip": false,
20
+ "normalized": false,
21
+ "rstrip": false,
22
+ "single_word": false
23
+ },
24
+ {
25
+ "content": "<cry>",
26
+ "lstrip": false,
27
+ "normalized": false,
28
+ "rstrip": false,
29
+ "single_word": false
30
+ },
31
+ {
32
+ "content": "<curious>",
33
+ "lstrip": false,
34
+ "normalized": false,
35
+ "rstrip": false,
36
+ "single_word": false
37
+ },
38
+ {
39
+ "content": "<disappointed>",
40
+ "lstrip": false,
41
+ "normalized": false,
42
+ "rstrip": false,
43
+ "single_word": false
44
+ },
45
+ {
46
+ "content": "<excited>",
47
+ "lstrip": false,
48
+ "normalized": false,
49
+ "rstrip": false,
50
+ "single_word": false
51
+ },
52
+ {
53
+ "content": "<exhale>",
54
+ "lstrip": false,
55
+ "normalized": false,
56
+ "rstrip": false,
57
+ "single_word": false
58
+ },
59
+ {
60
+ "content": "<gasp>",
61
+ "lstrip": false,
62
+ "normalized": false,
63
+ "rstrip": false,
64
+ "single_word": false
65
+ },
66
+ {
67
+ "content": "<giggle>",
68
+ "lstrip": false,
69
+ "normalized": false,
70
+ "rstrip": false,
71
+ "single_word": false
72
+ },
73
+ {
74
+ "content": "<gulp>",
75
+ "lstrip": false,
76
+ "normalized": false,
77
+ "rstrip": false,
78
+ "single_word": false
79
+ },
80
+ {
81
+ "content": "<laugh>",
82
+ "lstrip": false,
83
+ "normalized": false,
84
+ "rstrip": false,
85
+ "single_word": false
86
+ },
87
+ {
88
+ "content": "<laugh_harder>",
89
+ "lstrip": false,
90
+ "normalized": false,
91
+ "rstrip": false,
92
+ "single_word": false
93
+ },
94
+ {
95
+ "content": "<mischievous>",
96
+ "lstrip": false,
97
+ "normalized": false,
98
+ "rstrip": false,
99
+ "single_word": false
100
+ },
101
+ {
102
+ "content": "<sarcastic>",
103
+ "lstrip": false,
104
+ "normalized": false,
105
+ "rstrip": false,
106
+ "single_word": false
107
+ },
108
+ {
109
+ "content": "<scream>",
110
+ "lstrip": false,
111
+ "normalized": false,
112
+ "rstrip": false,
113
+ "single_word": false
114
+ },
115
+ {
116
+ "content": "<sigh>",
117
+ "lstrip": false,
118
+ "normalized": false,
119
+ "rstrip": false,
120
+ "single_word": false
121
+ },
122
+ {
123
+ "content": "<sing>",
124
+ "lstrip": false,
125
+ "normalized": false,
126
+ "rstrip": false,
127
+ "single_word": false
128
+ },
129
+ {
130
+ "content": "<snort>",
131
+ "lstrip": false,
132
+ "normalized": false,
133
+ "rstrip": false,
134
+ "single_word": false
135
+ },
136
+ {
137
+ "content": "<whisper>",
138
+ "lstrip": false,
139
+ "normalized": false,
140
+ "rstrip": false,
141
+ "single_word": false
142
+ }
143
+ ],
144
+ "bos_token": {
145
+ "content": "<|begin_of_text|>",
146
+ "lstrip": false,
147
+ "normalized": false,
148
+ "rstrip": false,
149
+ "single_word": false
150
+ },
151
+ "eos_token": {
152
+ "content": "<|eot_id|>",
153
+ "lstrip": false,
154
+ "normalized": false,
155
+ "rstrip": false,
156
+ "single_word": false
157
+ },
158
+ "pad_token": {
159
+ "content": "<custom_token_7>",
160
+ "lstrip": false,
161
+ "normalized": true,
162
+ "rstrip": false,
163
+ "single_word": false
164
+ }
165
+ }
tokenizer/tokenizer.json ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:6c5e5b1d89b7e3738e5a5a4f93c326d8f3292ea83f9c560b8dbb6d66fb851973
3
+ size 22853258
tokenizer/tokenizer_config.json ADDED
The diff for this file is too large to render. See raw diff
 
tokenizer_config.json ADDED
The diff for this file is too large to render. See raw diff
 
vllm_streaming_inference.py ADDED
@@ -0,0 +1,561 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """
2
+ Maya-1-Voice VLLM Streaming Inference - Standalone Reference Implementation
3
+
4
+ This is a complete, self-contained example for using Maya-1-Voice TTS model with VLLM and SNAC.
5
+ Demonstrates streaming audio generation with sliding window approach for smooth playback.
6
+
7
+ Requirements:
8
+ pip install vllm transformers torch snac numpy
9
+
10
+ Usage:
11
+ python vllm_streaming_inference.py
12
+
13
+ Author: Maya-1-Voice Team
14
+ License: MIT
15
+ """
16
+
17
+ import torch
18
+ import numpy as np
19
+ import asyncio
20
+ from typing import List, Optional, AsyncGenerator
21
+ from transformers import AutoTokenizer
22
+ from vllm import AsyncLLMEngine, AsyncEngineArgs, SamplingParams
23
+ from snac import SNAC
24
+
25
+
26
+ # ============================================================================
27
+ # CONSTANTS
28
+ # ============================================================================
29
+
30
+ # Special control tokens
31
+ CODE_START_TOKEN_ID = 128257 # Start of Speech (SOS)
32
+ CODE_END_TOKEN_ID = 128258 # End of Speech (EOS) - stop token for audio
33
+ CODE_TOKEN_OFFSET = 128266 # Start of SNAC codes
34
+
35
+ # SNAC token range (7 tokens per frame, 4096 codes per level)
36
+ SNAC_MIN_ID = 128266
37
+ SNAC_MAX_ID = 156937 # 128266 + (7 * 4096) - 1
38
+
39
+ # SNAC configuration
40
+ SNAC_MODEL_NAME = "hubertsiuzdak/snac_24khz"
41
+ SNAC_SAMPLE_RATE = 24000
42
+ SNAC_TOKENS_PER_FRAME = 7
43
+
44
+ # Generation parameters
45
+ DEFAULT_TEMPERATURE = 0.4
46
+ DEFAULT_TOP_P = 0.9
47
+ DEFAULT_MAX_TOKENS = 2000
48
+ DEFAULT_MIN_TOKENS = 28 # At least 4 SNAC frames
49
+ DEFAULT_REPETITION_PENALTY = 1.1
50
+
51
+
52
+ # ============================================================================
53
+ # SNAC DECODER
54
+ # ============================================================================
55
+
56
+ class SNACDecoder:
57
+ """
58
+ Decodes SNAC tokens (7-token frames) to audio waveforms.
59
+
60
+ The unpacking logic converts flat 7-token frames back to hierarchical
61
+ 3-level SNAC codes (matching the training preprocessing exactly).
62
+ """
63
+
64
+ def __init__(self, device: str = "cuda"):
65
+ """Initialize SNAC decoder with 24kHz model."""
66
+ self.device = device
67
+ print(f"🎡 Loading SNAC 24kHz model to {device}...")
68
+ self.snac_model = SNAC.from_pretrained(SNAC_MODEL_NAME).eval().to(device)
69
+ print(f"βœ… SNAC decoder initialized")
70
+
71
+ def unpack_snac_from_7(self, vocab_ids: List[int]) -> List[List[int]]:
72
+ """
73
+ Unpack 7-token SNAC frames to 3 hierarchical levels.
74
+
75
+ This is the EXACT INVERSE of training preprocessing.
76
+
77
+ Frame structure (7 tokens per frame):
78
+ [slot0, slot1, slot2, slot3, slot4, slot5, slot6]
79
+
80
+ Unpacking to [L1, L2, L3]:
81
+ - slot0 β†’ L1[i] (coarse: 1x rate)
82
+ - slot1 β†’ L2[2*i] (medium: 2x rate, even)
83
+ - slot2 β†’ L3[4*i+0] (fine: 4x rate)
84
+ - slot3 β†’ L3[4*i+1]
85
+ - slot4 β†’ L2[2*i+1] (medium: odd)
86
+ - slot5 β†’ L3[4*i+2]
87
+ - slot6 β†’ L3[4*i+3]
88
+
89
+ Args:
90
+ vocab_ids: List of SNAC token IDs (128266-156937), length divisible by 7
91
+
92
+ Returns:
93
+ [L1, L2, L3] where L1=n, L2=2n, L3=4n elements
94
+ """
95
+ # Remove EOS token if present
96
+ if vocab_ids and vocab_ids[-1] == CODE_END_TOKEN_ID:
97
+ vocab_ids = vocab_ids[:-1]
98
+
99
+ # Ensure complete frames
100
+ frames = len(vocab_ids) // SNAC_TOKENS_PER_FRAME
101
+ vocab_ids = vocab_ids[:frames * SNAC_TOKENS_PER_FRAME]
102
+
103
+ if frames == 0:
104
+ return [[], [], []]
105
+
106
+ l1, l2, l3 = [], [], []
107
+
108
+ for i in range(frames):
109
+ slots = vocab_ids[i*7:(i+1)*7]
110
+
111
+ # Subtract offset and mod 4096 to get original SNAC codes
112
+ l1.append((slots[0] - CODE_TOKEN_OFFSET) % 4096)
113
+ l2.extend([
114
+ (slots[1] - CODE_TOKEN_OFFSET) % 4096, # Even
115
+ (slots[4] - CODE_TOKEN_OFFSET) % 4096, # Odd
116
+ ])
117
+ l3.extend([
118
+ (slots[2] - CODE_TOKEN_OFFSET) % 4096,
119
+ (slots[3] - CODE_TOKEN_OFFSET) % 4096,
120
+ (slots[5] - CODE_TOKEN_OFFSET) % 4096,
121
+ (slots[6] - CODE_TOKEN_OFFSET) % 4096,
122
+ ])
123
+
124
+ return [l1, l2, l3]
125
+
126
+ @torch.inference_mode()
127
+ def decode(
128
+ self,
129
+ snac_tokens: List[int],
130
+ use_sliding_window: bool = False
131
+ ) -> Optional[np.ndarray]:
132
+ """
133
+ Decode SNAC tokens to audio waveform.
134
+
135
+ Args:
136
+ snac_tokens: List of SNAC token IDs (7*n tokens)
137
+ use_sliding_window: If True, return only middle 2048 samples
138
+ (for smooth streaming without pops/clicks)
139
+
140
+ Returns:
141
+ Audio waveform as float32 numpy array, 24kHz mono
142
+ """
143
+ if len(snac_tokens) < SNAC_TOKENS_PER_FRAME:
144
+ return None
145
+
146
+ # Unpack to 3 hierarchical levels
147
+ levels = self.unpack_snac_from_7(snac_tokens)
148
+
149
+ if not levels[0]:
150
+ return None
151
+
152
+ # Convert to tensors
153
+ codes = [
154
+ torch.tensor(level, dtype=torch.long, device=self.device).unsqueeze(0)
155
+ for level in levels
156
+ ]
157
+
158
+ # Decode through SNAC quantizer + decoder
159
+ z_q = self.snac_model.quantizer.from_codes(codes)
160
+ audio = self.snac_model.decoder(z_q)
161
+
162
+ # Extract audio: [batch, 1, samples] β†’ [samples]
163
+ audio = audio[0, 0].cpu().numpy()
164
+
165
+ # Sliding window mode: keep middle 2048 samples only
166
+ # This eliminates popping/cracking in streaming by overlapping windows
167
+ if use_sliding_window and len(audio) >= 4096:
168
+ audio = audio[2048:4096]
169
+
170
+ return audio
171
+
172
+ def decode_to_bytes(
173
+ self,
174
+ snac_tokens: List[int],
175
+ use_sliding_window: bool = False
176
+ ) -> Optional[bytes]:
177
+ """
178
+ Decode SNAC tokens to audio bytes (int16 PCM).
179
+
180
+ Args:
181
+ snac_tokens: List of SNAC token IDs
182
+ use_sliding_window: Use sliding window for smooth streaming
183
+
184
+ Returns:
185
+ Audio as bytes (int16 PCM, 24kHz mono)
186
+ """
187
+ audio = self.decode(snac_tokens, use_sliding_window=use_sliding_window)
188
+
189
+ if audio is None:
190
+ return None
191
+
192
+ # Convert float32 to int16 PCM
193
+ audio_int16 = (audio * 32767).astype(np.int16)
194
+ return audio_int16.tobytes()
195
+
196
+
197
+ # ============================================================================
198
+ # CUSTOM LOGITS PROCESSOR
199
+ # ============================================================================
200
+
201
+ class OnlyAudioAfterSOS:
202
+ """
203
+ Restricts vocabulary to SNAC codes + EOS after SOS token.
204
+
205
+ This prevents the model from generating text tokens during audio phase,
206
+ which would cause "hallucination" where the model repeats description text
207
+ instead of generating proper audio codes.
208
+ """
209
+
210
+ def __init__(self):
211
+ self._seen_sos = False
212
+
213
+ def __call__(
214
+ self,
215
+ prompt_token_ids: List[int],
216
+ generated_token_ids: List[int],
217
+ logits: torch.Tensor,
218
+ ) -> torch.Tensor:
219
+ """
220
+ Apply constraint: after SOS, only allow SNAC codes + EOS.
221
+
222
+ Args:
223
+ prompt_token_ids: Original prompt token IDs
224
+ generated_token_ids: Tokens generated so far
225
+ logits: Logits for next token [vocab_size]
226
+
227
+ Returns:
228
+ Modified logits with masked tokens
229
+ """
230
+ # Check if SOS has been generated
231
+ if not self._seen_sos:
232
+ all_token_ids = prompt_token_ids + generated_token_ids
233
+ if CODE_START_TOKEN_ID in all_token_ids:
234
+ self._seen_sos = True
235
+ else:
236
+ return logits # No constraint yet
237
+
238
+ # Apply constraint: mask all tokens except SNAC codes + EOS
239
+ mask = torch.full_like(logits, float('-inf'))
240
+ mask[SNAC_MIN_ID:SNAC_MAX_ID + 1] = 0 # Allow SNAC codes
241
+ mask[CODE_END_TOKEN_ID] = 0 # Allow EOS
242
+
243
+ return logits + mask
244
+
245
+ def reset(self):
246
+ """Reset state for reuse across generations."""
247
+ self._seen_sos = False
248
+
249
+
250
+ # ============================================================================
251
+ # MAYA-1-VOICE MODEL
252
+ # ============================================================================
253
+
254
+ class Maya1VoiceModel:
255
+ """
256
+ Maya-1-Voice TTS Model with VLLM inference engine.
257
+
258
+ Handles model loading, tokenizer initialization, and VLLM engine setup.
259
+ """
260
+
261
+ def __init__(
262
+ self,
263
+ model_path: str,
264
+ dtype: str = "bfloat16",
265
+ max_model_len: int = 8192,
266
+ gpu_memory_utilization: float = 0.85,
267
+ ):
268
+ """
269
+ Initialize Maya-1-Voice model with VLLM.
270
+
271
+ Args:
272
+ model_path: Path to model checkpoint (local or HuggingFace)
273
+ dtype: Model precision (bfloat16 recommended)
274
+ max_model_len: Maximum sequence length
275
+ gpu_memory_utilization: GPU memory fraction to use (0.0-1.0)
276
+ """
277
+ self.model_path = model_path
278
+
279
+ print(f"πŸš€ Initializing Maya-1-Voice Model")
280
+ print(f"πŸ“ Model: {model_path}")
281
+ print(f"πŸ”’ Dtype: {dtype}")
282
+
283
+ # Load tokenizer (must be from checkpoint with emotion tags)
284
+ print(f"πŸ“ Loading tokenizer...")
285
+ self.tokenizer = AutoTokenizer.from_pretrained(
286
+ model_path,
287
+ trust_remote_code=True,
288
+ )
289
+ print(f"βœ… Tokenizer loaded: {len(self.tokenizer)} tokens")
290
+
291
+ # Initialize VLLM async engine
292
+ print(f"πŸ”§ Initializing VLLM engine...")
293
+ engine_args = AsyncEngineArgs(
294
+ model=model_path,
295
+ tokenizer=model_path,
296
+ dtype=dtype,
297
+ max_model_len=max_model_len,
298
+ gpu_memory_utilization=gpu_memory_utilization,
299
+ trust_remote_code=True,
300
+ )
301
+
302
+ self.engine = AsyncLLMEngine.from_engine_args(engine_args)
303
+ print(f"βœ… VLLM engine ready")
304
+
305
+ def build_prompt(self, description: str, text: str) -> str:
306
+ """
307
+ Build prompt in Maya-1-Voice format using chat template.
308
+
309
+ Format: Chat template with <description="..."> text as content
310
+
311
+ The model expects:
312
+ 1. Description of voice/character
313
+ 2. Text to synthesize (optionally with <emotion> tags)
314
+
315
+ Args:
316
+ description: Voice description
317
+ Example: "Realistic male voice in the 30s age with american accent.
318
+ Normal pitch, warm timbre, conversational pacing."
319
+ text: Text to synthesize
320
+ Example: "Hello world! <excited> This is amazing!"
321
+
322
+ Returns:
323
+ Formatted prompt string using chat template
324
+ """
325
+ content = f'<description="{description}"> {text}'
326
+ messages = [{"role": "user", "content": content}]
327
+ return self.tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
328
+
329
+
330
+ # ============================================================================
331
+ # STREAMING PIPELINE
332
+ # ============================================================================
333
+
334
+ class Maya1VoiceStreamingPipeline:
335
+ """
336
+ Streaming TTS pipeline using sliding window approach.
337
+
338
+ This generates smooth audio by:
339
+ 1. Streaming tokens from VLLM as they're generated
340
+ 2. Every 7 tokens, decoding the last 28 tokens (4 frames) - sliding window
341
+ 3. Keeping only middle 2048 samples from each decode
342
+ 4. Creating natural overlap between chunks for artifact-free playback
343
+ """
344
+
345
+ def __init__(self, model: Maya1VoiceModel, snac_decoder: SNACDecoder):
346
+ """Initialize streaming pipeline."""
347
+ self.model = model
348
+ self.snac_decoder = snac_decoder
349
+ print(f"🌊 Maya-1-Voice Streaming Pipeline initialized")
350
+
351
+ async def generate_speech_stream(
352
+ self,
353
+ description: str,
354
+ text: str,
355
+ temperature: float = DEFAULT_TEMPERATURE,
356
+ top_p: float = DEFAULT_TOP_P,
357
+ max_tokens: int = DEFAULT_MAX_TOKENS,
358
+ repetition_penalty: float = DEFAULT_REPETITION_PENALTY,
359
+ ) -> AsyncGenerator[bytes, None]:
360
+ """
361
+ Generate speech audio with streaming.
362
+
363
+ Args:
364
+ description: Voice/character description
365
+ text: Text to synthesize (with optional <emotion> tags)
366
+ temperature: Sampling temperature (lower = more stable)
367
+ top_p: Nucleus sampling
368
+ max_tokens: Max SNAC tokens to generate
369
+ repetition_penalty: Prevent repetition loops
370
+
371
+ Yields:
372
+ Audio chunks as bytes (int16 PCM, 24kHz mono)
373
+ """
374
+ print(f"\n🌊 Starting streaming generation")
375
+ print(f"πŸ“ Description: {description[:80]}...")
376
+ print(f"πŸ’¬ Text: {text}")
377
+
378
+ # Build prompt
379
+ prompt = self.model.build_prompt(description, text)
380
+
381
+ # Configure sampling (removed custom logits processor for V1 compatibility)
382
+ sampling_params = SamplingParams(
383
+ temperature=temperature,
384
+ top_p=top_p,
385
+ max_tokens=max_tokens,
386
+ min_tokens=DEFAULT_MIN_TOKENS,
387
+ repetition_penalty=repetition_penalty,
388
+ stop_token_ids=[CODE_END_TOKEN_ID], # Stop on audio EOS
389
+ )
390
+
391
+ print(f"🎲 Sampling: temp={temperature}, top_p={top_p}, max_tokens={max_tokens}")
392
+
393
+ # Token buffer for sliding window
394
+ token_buffer = []
395
+ total_tokens = 0
396
+ total_chunks = 0
397
+
398
+ # Generate with VLLM
399
+ import uuid
400
+ import time
401
+ request_id = f"maya1voice-{uuid.uuid4().hex[:8]}-{int(time.time() * 1000000)}"
402
+
403
+ results_generator = self.model.engine.generate(
404
+ prompt=prompt,
405
+ sampling_params=sampling_params,
406
+ request_id=request_id,
407
+ )
408
+
409
+ # Stream tokens with sliding window decoding
410
+ async for request_output in results_generator:
411
+ generated_ids = request_output.outputs[0].token_ids
412
+
413
+ # Process only new tokens
414
+ new_tokens = generated_ids[total_tokens:]
415
+ total_tokens = len(generated_ids)
416
+
417
+ # Filter and buffer SNAC tokens only
418
+ for token_id in new_tokens:
419
+ if SNAC_MIN_ID <= token_id <= SNAC_MAX_ID:
420
+ token_buffer.append(token_id)
421
+
422
+ # Sliding window: process every 7 tokens when buffer > 27
423
+ # Take last 28 tokens (4 frames) for smooth overlap
424
+ if len(token_buffer) % 7 == 0 and len(token_buffer) > 27:
425
+ window_tokens = token_buffer[-28:]
426
+
427
+ # Decode with sliding window (returns middle 2048 samples)
428
+ audio_bytes = self.snac_decoder.decode_to_bytes(
429
+ window_tokens,
430
+ use_sliding_window=True
431
+ )
432
+
433
+ if audio_bytes:
434
+ total_chunks += 1
435
+ if total_chunks == 1:
436
+ print(f"🎡 First chunk decoded ({len(audio_bytes)} bytes)")
437
+ yield audio_bytes
438
+
439
+ print(f"βœ… Streaming complete: {total_tokens} tokens β†’ {total_chunks} chunks")
440
+
441
+
442
+ # ============================================================================
443
+ # MAIN EXAMPLE
444
+ # ============================================================================
445
+
446
+ async def main():
447
+ """
448
+ Example usage of Maya-1-Voice streaming inference.
449
+
450
+ This demonstrates:
451
+ 1. Model initialization
452
+ 2. SNAC decoder setup
453
+ 3. Streaming generation
454
+ 4. Audio chunk handling
455
+ """
456
+
457
+ # Configuration
458
+ MODEL_PATH = "/home/ubuntu/veena_temp/maya-1-voice" # Local model path
459
+ DEVICE = "cuda" if torch.cuda.is_available() else "cpu"
460
+
461
+ print("=" * 80)
462
+ print("Maya-1-Voice VLLM Streaming Inference Example")
463
+ print("=" * 80)
464
+
465
+ # Initialize model
466
+ model = Maya1VoiceModel(
467
+ model_path=MODEL_PATH,
468
+ dtype="bfloat16",
469
+ max_model_len=8192,
470
+ gpu_memory_utilization=0.8, # Reduced for available GPU memory (12GB free)
471
+ )
472
+
473
+ # Initialize SNAC decoder
474
+ snac_decoder = SNACDecoder(device=DEVICE)
475
+
476
+ # Create pipeline
477
+ pipeline = Maya1VoiceStreamingPipeline(model, snac_decoder)
478
+
479
+ # Example 1: Professional voice
480
+ description = (
481
+ "Realistic male voice in the 30s age with american accent. "
482
+ "Normal pitch, warm timbre, conversational pacing, neutral tone delivery at med intensity."
483
+ )
484
+ text = "Hello! This is a test of the Maya-1-Voice text-to-speech system."
485
+
486
+ print(f"\n{'='*80}")
487
+ print("Example 1: Professional Voice")
488
+ print(f"{'='*80}")
489
+
490
+ audio_chunks = []
491
+ async for chunk in pipeline.generate_speech_stream(
492
+ description=description,
493
+ text=text,
494
+ temperature=0.4,
495
+ max_tokens=500,
496
+ ):
497
+ audio_chunks.append(chunk)
498
+ print(f"πŸ“¦ Received chunk {len(audio_chunks)}: {len(chunk)} bytes")
499
+
500
+ # Combine chunks
501
+ full_audio = b''.join(audio_chunks)
502
+ print(f"\nβœ… Total audio: {len(full_audio)} bytes ({len(full_audio)//2} samples, {len(full_audio)/2/24000:.2f}s)")
503
+
504
+ # Save audio (optional)
505
+ try:
506
+ import wave
507
+ output_file = "output_example1.wav"
508
+ with wave.open(output_file, 'wb') as wav:
509
+ wav.setnchannels(1) # Mono
510
+ wav.setsampwidth(2) # 16-bit
511
+ wav.setframerate(24000) # 24kHz
512
+ wav.writeframes(full_audio)
513
+ print(f"πŸ’Ύ Saved to {output_file}")
514
+ except ImportError:
515
+ print(f"⚠️ Install 'wave' module to save audio files")
516
+
517
+ # Example 2: Character voice with emotions
518
+ print(f"\n{'='*80}")
519
+ print("Example 2: Character Voice with Emotions")
520
+ print(f"{'='*80}")
521
+
522
+ description = (
523
+ "Creative, dark_villain character. Male voice in their 40s with british accent. "
524
+ "Low pitch, gravelly timbre, slow pacing, angry tone at high intensity."
525
+ )
526
+ text = "The darkness isn't coming... <angry> it's already here!"
527
+
528
+ audio_chunks = []
529
+ async for chunk in pipeline.generate_speech_stream(
530
+ description=description,
531
+ text=text,
532
+ temperature=0.5,
533
+ max_tokens=800,
534
+ ):
535
+ audio_chunks.append(chunk)
536
+ print(f"πŸ“¦ Received chunk {len(audio_chunks)}: {len(chunk)} bytes")
537
+
538
+ full_audio = b''.join(audio_chunks)
539
+ print(f"\nβœ… Total audio: {len(full_audio)} bytes ({len(full_audio)//2} samples, {len(full_audio)/2/24000:.2f}s)")
540
+
541
+ # Save audio
542
+ try:
543
+ import wave
544
+ output_file = "output_example2.wav"
545
+ with wave.open(output_file, 'wb') as wav:
546
+ wav.setnchannels(1)
547
+ wav.setsampwidth(2)
548
+ wav.setframerate(24000)
549
+ wav.writeframes(full_audio)
550
+ print(f"πŸ’Ύ Saved to {output_file}")
551
+ except ImportError:
552
+ pass
553
+
554
+ print(f"\n{'='*80}")
555
+ print("πŸŽ‰ Examples complete!")
556
+ print(f"{'='*80}")
557
+
558
+
559
+ if __name__ == "__main__":
560
+ # Run async main
561
+ asyncio.run(main())