mutisya commited on
Commit
cae784d
verified
1 Parent(s): 8fdbf53

Upload folder using huggingface_hub

Browse files
README.md ADDED
@@ -0,0 +1,85 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ language: kik
3
+ tags:
4
+ - automatic-speech-recognition
5
+ - w2v-bert-2.0
6
+ - kikuyu
7
+ - low-resource
8
+ - adapter
9
+ - peft
10
+ license: apache-2.0
11
+ base_model: facebook/w2v-bert-2.0
12
+ datasets:
13
+ - mutisya/Kikuyu_asr_v24_23_1-filtered
14
+ metrics:
15
+ - wer
16
+ model-index:
17
+ - name: w2v-bert-hybrid-v3-kikuyu-asr
18
+ results:
19
+ - task:
20
+ type: automatic-speech-recognition
21
+ name: Speech Recognition
22
+ dataset:
23
+ name: Kikuyu ASR
24
+ type: mutisya/Kikuyu_asr_v24_23_1-filtered
25
+ metrics:
26
+ - type: wer
27
+ value: 20.30
28
+ name: WER
29
+ ---
30
+
31
+ # W2V-BERT 2.0 Hybrid V3 Kikuyu ASR
32
+
33
+ This model is a fine-tuned version of [facebook/w2v-bert-2.0](https://huggingface.co/facebook/w2v-bert-2.0) for Kikuyu (G末k农y农) automatic speech recognition.
34
+
35
+ ## Model Description
36
+
37
+ This model uses a **Hybrid V3 architecture** that combines:
38
+ - **24 MMS-style bottleneck adapters** (64-dim) in each transformer layer
39
+ - **Single-layer transformer decoder** with pre+post normalization
40
+ - **Gated residual connections** for stable training
41
+
42
+ ### Architecture Details
43
+
44
+ - **Base Model**: facebook/w2v-bert-2.0 (580M parameters)
45
+ - **Trainable Parameters**: 11,660,835 (1.97% of total)
46
+ - **Adapter Dimension**: 64
47
+ - **Decoder Hidden Size**: 1024 (matches W2V-BERT)
48
+ - **Decoder FFN Size**: 2048
49
+
50
+ ## Training Details
51
+
52
+ - **Training Samples**: 5,000
53
+ - **Epochs**: 20
54
+ - **Learning Rate**: 0.0003
55
+ - **Batch Size**: 4 (effective: 16 with gradient accumulation)
56
+ - **Warmup Steps**: 500
57
+ - **Optimizer**: AdamW with cosine LR schedule
58
+
59
+ ## Performance
60
+
61
+ | Metric | Value |
62
+ |--------|-------|
63
+ | **Word Error Rate (WER)** | **20.30%** |
64
+ | Eval Loss | 0.2371 |
65
+ | Train Loss | 0.3413 |
66
+
67
+ ## Usage
68
+
69
+
70
+
71
+ ## Limitations
72
+
73
+ - Trained specifically for Kikuyu language
74
+ - Best performance on clean, clear audio
75
+ - May struggle with heavy background noise or very fast speech
76
+
77
+ ## Citation
78
+
79
+ If you use this model, please cite:
80
+
81
+
82
+
83
+ ## License
84
+
85
+ Apache 2.0
added_tokens.json ADDED
@@ -0,0 +1,4 @@
 
 
 
 
 
1
+ {
2
+ "</s>": 34,
3
+ "<s>": 33
4
+ }
config.json ADDED
@@ -0,0 +1,81 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "activation_dropout": 0.0,
3
+ "adapter_act": "relu",
4
+ "adapter_kernel_size": 3,
5
+ "adapter_stride": 2,
6
+ "add_adapter": false,
7
+ "apply_spec_augment": false,
8
+ "architectures": [
9
+ "Wav2Vec2BertForCTCHybridV3"
10
+ ],
11
+ "attention_dropout": 0.0,
12
+ "bos_token_id": 33,
13
+ "classifier_proj_size": 768,
14
+ "codevector_dim": 768,
15
+ "conformer_conv_dropout": 0.1,
16
+ "contrastive_logits_temperature": 0.1,
17
+ "conv_depthwise_kernel_size": 31,
18
+ "ctc_loss_reduction": "mean",
19
+ "ctc_zero_infinity": true,
20
+ "diversity_loss_weight": 0.1,
21
+ "dtype": "float32",
22
+ "eos_token_id": 34,
23
+ "feat_proj_dropout": 0.0,
24
+ "feat_quantizer_dropout": 0.0,
25
+ "feature_projection_input_dim": 160,
26
+ "final_dropout": 0.1,
27
+ "hidden_act": "swish",
28
+ "hidden_dropout": 0.0,
29
+ "hidden_size": 1024,
30
+ "initializer_range": 0.02,
31
+ "intermediate_size": 4096,
32
+ "layer_norm_eps": 1e-05,
33
+ "layerdrop": 0.1,
34
+ "left_max_position_embeddings": 64,
35
+ "mask_feature_length": 10,
36
+ "mask_feature_min_masks": 0,
37
+ "mask_feature_prob": 0.0,
38
+ "mask_time_length": 10,
39
+ "mask_time_min_masks": 2,
40
+ "mask_time_prob": 0.05,
41
+ "max_source_positions": 5000,
42
+ "model_type": "wav2vec2-bert",
43
+ "num_adapter_layers": 1,
44
+ "num_attention_heads": 16,
45
+ "num_codevector_groups": 2,
46
+ "num_codevectors_per_group": 320,
47
+ "num_hidden_layers": 24,
48
+ "num_negatives": 100,
49
+ "output_hidden_size": 1024,
50
+ "pad_token_id": 32,
51
+ "position_embeddings_type": "relative_key",
52
+ "proj_codevector_dim": 768,
53
+ "right_max_position_embeddings": 8,
54
+ "rotary_embedding_base": 10000,
55
+ "tdnn_dilation": [
56
+ 1,
57
+ 2,
58
+ 3,
59
+ 1,
60
+ 1
61
+ ],
62
+ "tdnn_dim": [
63
+ 512,
64
+ 512,
65
+ 512,
66
+ 512,
67
+ 1500
68
+ ],
69
+ "tdnn_kernel": [
70
+ 5,
71
+ 3,
72
+ 3,
73
+ 1,
74
+ 1
75
+ ],
76
+ "transformers_version": "4.57.1",
77
+ "use_intermediate_ffn_before_adapter": false,
78
+ "use_weighted_layer_sum": false,
79
+ "vocab_size": 33,
80
+ "xvector_output_dim": 512
81
+ }
model.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:8a7452bb482f2ceecd48116e2f1d2d0a07bd09d3b8add8d6119f5e6325c309da
3
+ size 2368733780
preprocessor_config.json ADDED
@@ -0,0 +1,11 @@
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "feature_extractor_type": "SeamlessM4TFeatureExtractor",
3
+ "feature_size": 80,
4
+ "num_mel_bins": 80,
5
+ "padding_side": "right",
6
+ "padding_value": 0.0,
7
+ "processor_class": "Wav2Vec2BertProcessor",
8
+ "return_attention_mask": true,
9
+ "sampling_rate": 16000,
10
+ "stride": 2
11
+ }
runs/events.out.tfevents.1764214770.Denali.173540.0 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:63d91b1f71c978fad90540e2dccd41e39ed7c030ddb76698be9636c0227dab10
3
+ size 25148
runs/events.out.tfevents.1764216368.Denali.173540.1 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:c763e9745308dec08aff1766c80906e1c9e3031150095774e1b4b7faab4ebcfa
3
+ size 406
runs/events.out.tfevents.1764223754.Denali.201540.0 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:5cf8df81702cefe6ebefeef57c5c88646fb54b4ab9c2d659041a7e05e248a606
3
+ size 99148
runs/events.out.tfevents.1764244637.Denali.201540.1 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:8c886d396d61d5f3a8c6f3f2d39f171e810f36fa9f310cdf98a7cb182da8c0b7
3
+ size 406
special_tokens_map.json ADDED
@@ -0,0 +1,30 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "bos_token": {
3
+ "content": "<s>",
4
+ "lstrip": false,
5
+ "normalized": false,
6
+ "rstrip": false,
7
+ "single_word": false
8
+ },
9
+ "eos_token": {
10
+ "content": "</s>",
11
+ "lstrip": false,
12
+ "normalized": false,
13
+ "rstrip": false,
14
+ "single_word": false
15
+ },
16
+ "pad_token": {
17
+ "content": "[PAD]",
18
+ "lstrip": true,
19
+ "normalized": false,
20
+ "rstrip": true,
21
+ "single_word": false
22
+ },
23
+ "unk_token": {
24
+ "content": "[UNK]",
25
+ "lstrip": true,
26
+ "normalized": false,
27
+ "rstrip": true,
28
+ "single_word": false
29
+ }
30
+ }
tokenizer_config.json ADDED
@@ -0,0 +1,49 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "added_tokens_decoder": {
3
+ "31": {
4
+ "content": "[UNK]",
5
+ "lstrip": true,
6
+ "normalized": false,
7
+ "rstrip": true,
8
+ "single_word": false,
9
+ "special": false
10
+ },
11
+ "32": {
12
+ "content": "[PAD]",
13
+ "lstrip": true,
14
+ "normalized": false,
15
+ "rstrip": true,
16
+ "single_word": false,
17
+ "special": false
18
+ },
19
+ "33": {
20
+ "content": "<s>",
21
+ "lstrip": false,
22
+ "normalized": false,
23
+ "rstrip": false,
24
+ "single_word": false,
25
+ "special": true
26
+ },
27
+ "34": {
28
+ "content": "</s>",
29
+ "lstrip": false,
30
+ "normalized": false,
31
+ "rstrip": false,
32
+ "single_word": false,
33
+ "special": true
34
+ }
35
+ },
36
+ "bos_token": "<s>",
37
+ "clean_up_tokenization_spaces": false,
38
+ "do_lower_case": false,
39
+ "eos_token": "</s>",
40
+ "extra_special_tokens": {},
41
+ "model_max_length": 1000000000000000019884624838656,
42
+ "pad_token": "[PAD]",
43
+ "processor_class": "Wav2Vec2BertProcessor",
44
+ "replace_word_delimiter_char": " ",
45
+ "target_lang": null,
46
+ "tokenizer_class": "Wav2Vec2CTCTokenizer",
47
+ "unk_token": "[UNK]",
48
+ "word_delimiter_token": "|"
49
+ }
vocab.json ADDED
@@ -0,0 +1,35 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "'": 1,
3
+ "-": 2,
4
+ "[PAD]": 32,
5
+ "[UNK]": 31,
6
+ "a": 3,
7
+ "b": 4,
8
+ "c": 5,
9
+ "d": 6,
10
+ "e": 7,
11
+ "f": 8,
12
+ "g": 9,
13
+ "h": 10,
14
+ "i": 11,
15
+ "j": 12,
16
+ "k": 13,
17
+ "l": 14,
18
+ "m": 15,
19
+ "n": 16,
20
+ "o": 17,
21
+ "p": 18,
22
+ "q": 19,
23
+ "r": 20,
24
+ "s": 21,
25
+ "t": 22,
26
+ "u": 23,
27
+ "v": 24,
28
+ "w": 25,
29
+ "x": 26,
30
+ "y": 27,
31
+ "z": 28,
32
+ "|": 0,
33
+ "末": 29,
34
+ "农": 30
35
+ }