hf-transformers-bot HF Staff commited on
Commit
96c49a1
·
verified ·
1 Parent(s): 8ef7b90

Update tiny models for VibeVoiceForConditionalGeneration

Browse files
.gitattributes CHANGED
@@ -33,3 +33,4 @@ 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.json filter=lfs diff=lfs merge=lfs -text
chat_template.jinja ADDED
@@ -0,0 +1,51 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {%- set system_prompt = system_prompt | default(" Transform the text provided by various speakers into speech output, utilizing the distinct voice of each respective speaker.
2
+ ") -%}
3
+ {{ system_prompt -}}
4
+ {%- set audio_bos_token = audio_bos_token | default("<|vision_start|>") %}
5
+ {%- set audio_eos_token = audio_eos_token | default("<|vision_end|>") %}
6
+ {%- set audio_token = audio_token | default("<|vision_pad|>") %}
7
+ {%- set eos_token = eos_token | default("<|endoftext|>") %}
8
+ {#- Training regime (`add_generation_prompt=False`): the last audio of the conversation is the target speech and is
9
+ placed after "Speech output:", followed by the audio EOS and text EOS tokens; any preceding audio is used as a
10
+ voice prompt. Generation regime (`add_generation_prompt=True`): all audios are voice prompts. #}
11
+ {%- set ns = namespace(num_audio=0, num_seen=0, speakers_with_audio="") %}
12
+ {%- for message in messages %}
13
+ {%- set ns.num_audio = ns.num_audio + (message['content'] | selectattr('type', 'equalto', 'audio') | list | length) %}
14
+ {%- endfor %}
15
+ {%- set has_target_audio = not add_generation_prompt and ns.num_audio > 0 %}
16
+ {%- set num_voice_prompts = ns.num_audio - 1 if has_target_audio else ns.num_audio %}
17
+ {%- for message in messages %}
18
+ {%- set role = message['role'] %}
19
+ {%- set audio_count = message['content'] | selectattr('type', 'equalto', 'audio') | list | length %}
20
+ {%- if audio_count > 0 and ns.num_seen < num_voice_prompts and role not in ns.speakers_with_audio %}
21
+ {%- set ns.speakers_with_audio = ns.speakers_with_audio + role + "," %}
22
+ {%- endif %}
23
+ {%- set ns.num_seen = ns.num_seen + audio_count %}
24
+ {%- endfor %}
25
+
26
+ {%- if ns.speakers_with_audio %}
27
+ {{ " Voice input:
28
+ " }}
29
+ {%- for speaker in ns.speakers_with_audio.rstrip(',').split(',') %}
30
+ {%- if speaker %}
31
+ Speaker {{ speaker }}:{{ audio_bos_token }}{{ audio_token }}{{ audio_eos_token }}{{ "
32
+ " }}
33
+ {%- endif %}
34
+ {%- endfor %}
35
+ {%- endif %}
36
+ Text input:{{ "
37
+ " }}
38
+
39
+ {%- for message in messages %}
40
+ {%- set role = message['role'] %}
41
+ {%- set text_items = message['content'] | selectattr('type', 'equalto', 'text') | list %}
42
+ {%- for item in text_items %}
43
+ Speaker {{ role }}: {{ item['text'] }}{{ "
44
+ " }}
45
+ {%- endfor %}
46
+ {%- endfor %}
47
+ Speech output:{{ "
48
+ " }}{{ audio_bos_token }}
49
+ {%- if not add_generation_prompt %}
50
+ {%- if has_target_audio %}{{ audio_token }}{{ audio_eos_token }}{% endif %}{{ eos_token }}
51
+ {%- endif %}
config.json ADDED
@@ -0,0 +1,100 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "architectures": [
3
+ "VibeVoiceForConditionalGeneration"
4
+ ],
5
+ "audio_bos_token_id": 3,
6
+ "audio_config": {
7
+ "channels": 1,
8
+ "depths": [
9
+ 1,
10
+ 1
11
+ ],
12
+ "downsampling_ratios": [
13
+ 2
14
+ ],
15
+ "ffn_expansion": 4,
16
+ "hidden_act": "gelu",
17
+ "hidden_size": 16,
18
+ "initializer_range": 0.01,
19
+ "kernel_size": 3,
20
+ "layer_scale_init_value": 1e-06,
21
+ "model_type": "vibevoice_acoustic_tokenizer",
22
+ "num_filters": 4,
23
+ "rms_norm_eps": 1e-05,
24
+ "vae_std": 0.625
25
+ },
26
+ "audio_eos_token_id": 4,
27
+ "audio_token_id": 5,
28
+ "diffusion_head_config": {
29
+ "diffusion_max_period": 10000,
30
+ "frequency_embedding_size": 8,
31
+ "hidden_act": "silu",
32
+ "hidden_size": 32,
33
+ "intermediate_size": 16,
34
+ "latent_size": 16,
35
+ "mlp_bias": false,
36
+ "model_type": "",
37
+ "num_hidden_layers": 2,
38
+ "rms_norm_eps": 1e-05
39
+ },
40
+ "diffusion_loss_weight": 0.5,
41
+ "dtype": "float32",
42
+ "eos_token_id": 151643,
43
+ "model_type": "vibevoice",
44
+ "pad_token_id": 151643,
45
+ "semantic_model_config": {
46
+ "channels": 1,
47
+ "depths": [
48
+ 1,
49
+ 1
50
+ ],
51
+ "downsampling_ratios": [
52
+ 2
53
+ ],
54
+ "ffn_expansion": 4,
55
+ "hidden_act": "gelu",
56
+ "hidden_size": 32,
57
+ "initializer_range": 0.01,
58
+ "kernel_size": 3,
59
+ "layer_scale_init_value": 1e-06,
60
+ "model_type": "vibevoice_acoustic_tokenizer_encoder",
61
+ "num_filters": 4,
62
+ "rms_norm_eps": 1e-05,
63
+ "vae_std": 0.625
64
+ },
65
+ "text_config": {
66
+ "attention_dropout": 0.0,
67
+ "bos_token_id": null,
68
+ "eos_token_id": 151643,
69
+ "hidden_act": "silu",
70
+ "hidden_size": 32,
71
+ "initializer_range": 0.02,
72
+ "intermediate_size": 36,
73
+ "layer_types": [
74
+ "full_attention",
75
+ "full_attention"
76
+ ],
77
+ "max_position_embeddings": 200,
78
+ "max_window_layers": 28,
79
+ "model_type": "qwen2",
80
+ "num_attention_heads": 4,
81
+ "num_hidden_layers": 2,
82
+ "num_key_value_heads": 4,
83
+ "pad_token_id": 151643,
84
+ "rms_norm_eps": 1e-06,
85
+ "rope_parameters": {
86
+ "rope_theta": 10000.0,
87
+ "rope_type": "default"
88
+ },
89
+ "sliding_window": null,
90
+ "tie_word_embeddings": false,
91
+ "use_cache": true,
92
+ "use_labels": true,
93
+ "use_mrope": false,
94
+ "use_sliding_window": false,
95
+ "vocab_size": 151665
96
+ },
97
+ "tie_word_embeddings": false,
98
+ "transformers_version": "5.19.0.dev0",
99
+ "vocab_size": 151665
100
+ }
generation_config.json ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "_from_model_config": true,
3
+ "eos_token_id": 151643,
4
+ "output_attentions": false,
5
+ "output_hidden_states": false,
6
+ "pad_token_id": 151643,
7
+ "transformers_version": "5.19.0.dev0",
8
+ "use_cache": true
9
+ }
model.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:3828af79c0196e3704d22240cc0ca9de7126426f12ee07bcfaab6d1b2d865247
3
+ size 38995604
preprocessor_config.json ADDED
@@ -0,0 +1,12 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "eps": 1e-06,
3
+ "feature_extractor_type": "VibeVoiceAcousticTokenizerFeatureExtractor",
4
+ "feature_size": 1,
5
+ "normalize_audio": true,
6
+ "pad_to_multiple_of": 3200,
7
+ "padding_side": "right",
8
+ "padding_value": 0.0,
9
+ "return_attention_mask": true,
10
+ "sampling_rate": 24000,
11
+ "target_dB_FS": -25
12
+ }
tokenizer.json ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:3fd169731d2cbde95e10bf356d66d5997fd885dd8dbb6fb4684da3f23b2585d8
3
+ size 11421892
tokenizer_config.json ADDED
@@ -0,0 +1,34 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "add_prefix_space": false,
3
+ "backend": "tokenizers",
4
+ "bos_token": null,
5
+ "clean_up_tokenization_spaces": false,
6
+ "eos_token": "<|endoftext|>",
7
+ "errors": "replace",
8
+ "extra_special_tokens": [
9
+ "<|im_start|>",
10
+ "<|im_end|>",
11
+ "<|object_ref_start|>",
12
+ "<|object_ref_end|>",
13
+ "<|box_start|>",
14
+ "<|box_end|>",
15
+ "<|quad_start|>",
16
+ "<|quad_end|>",
17
+ "<|vision_start|>",
18
+ "<|vision_end|>",
19
+ "<|vision_pad|>",
20
+ "<|image_pad|>",
21
+ "<|video_pad|>"
22
+ ],
23
+ "is_local": true,
24
+ "local_files_only": false,
25
+ "model_max_length": 131072,
26
+ "pad_token": "<|endoftext|>",
27
+ "padding": true,
28
+ "padding_side": "left",
29
+ "processor_class": "VibeVoiceProcessor",
30
+ "return_tensors": "pt",
31
+ "split_special_tokens": false,
32
+ "tokenizer_class": "Qwen2Tokenizer",
33
+ "unk_token": null
34
+ }