Add 5gram lang model
Browse files- .gitattributes +1 -0
- add_kenlm.py +34 -0
- alphabet.json +1 -0
- eval.py +7 -2
- language_model/5gram.bin +3 -0
- language_model/attrs.json +1 -0
- language_model/unigrams.txt +3 -0
- preprocessor_config.json +1 -0
- special_tokens_map.json +1 -1
- tokenizer_config.json +1 -1
.gitattributes
CHANGED
@@ -26,3 +26,4 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
|
|
26 |
*.zstandard filter=lfs diff=lfs merge=lfs -text
|
27 |
*tfevents* filter=lfs diff=lfs merge=lfs -text
|
28 |
wandb/run-20220201_153024-1w85vsuu/run-1w85vsuu.wandb filter=lfs diff=lfs merge=lfs -text
|
|
|
|
26 |
*.zstandard filter=lfs diff=lfs merge=lfs -text
|
27 |
*tfevents* filter=lfs diff=lfs merge=lfs -text
|
28 |
wandb/run-20220201_153024-1w85vsuu/run-1w85vsuu.wandb filter=lfs diff=lfs merge=lfs -text
|
29 |
+
language_model/unigrams.txt filter=lfs diff=lfs merge=lfs -text
|
add_kenlm.py
ADDED
@@ -0,0 +1,34 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import argparse
|
2 |
+
from transformers import AutoProcessor
|
3 |
+
from transformers import Wav2Vec2ProcessorWithLM
|
4 |
+
from pyctcdecode import build_ctcdecoder
|
5 |
+
|
6 |
+
|
7 |
+
def main(args):
|
8 |
+
processor = AutoProcessor.from_pretrained(args.model_name_or_path)
|
9 |
+
vocab_dict = processor.tokenizer.get_vocab()
|
10 |
+
sorted_vocab_dict = {
|
11 |
+
k.lower(): v for k, v in sorted(vocab_dict.items(), key=lambda item: item[1])
|
12 |
+
}
|
13 |
+
decoder = build_ctcdecoder(
|
14 |
+
labels=list(sorted_vocab_dict.keys()),
|
15 |
+
kenlm_model_path=args.kenlm_model_path,
|
16 |
+
)
|
17 |
+
processor_with_lm = Wav2Vec2ProcessorWithLM(
|
18 |
+
feature_extractor=processor.feature_extractor,
|
19 |
+
tokenizer=processor.tokenizer,
|
20 |
+
decoder=decoder,
|
21 |
+
)
|
22 |
+
processor_with_lm.save_pretrained(args.model_name_or_path)
|
23 |
+
print(f"Run: ~/bin/build_binary language_model/*.arpa language_model/5gram.bin -T $(pwd) && rm language_model/*.arpa")
|
24 |
+
|
25 |
+
def parse_args():
|
26 |
+
parser = argparse.ArgumentParser()
|
27 |
+
parser.add_argument('--model_name_or_path', default="./", help='Model name or path. Defaults to ./')
|
28 |
+
parser.add_argument('--kenlm_model_path', required=True, help='Path to KenLM arpa file.')
|
29 |
+
args = parser.parse_args()
|
30 |
+
return args
|
31 |
+
|
32 |
+
if __name__ == "__main__":
|
33 |
+
args = parse_args()
|
34 |
+
main(args)
|
alphabet.json
ADDED
@@ -0,0 +1 @@
|
|
|
|
|
1 |
+
{"labels": [" ", "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "\u00e5", "\u00e6", "\u00f8", "\u2047", "", "<s>", "</s>"], "is_bpe": false}
|
eval.py
CHANGED
@@ -6,7 +6,7 @@ from typing import Dict
|
|
6 |
import torch
|
7 |
from datasets import Audio, Dataset, load_dataset, load_metric
|
8 |
|
9 |
-
from transformers import AutoFeatureExtractor, pipeline
|
10 |
|
11 |
|
12 |
def log_results(result: Dataset, args: Dict[str, str]):
|
@@ -96,7 +96,12 @@ def main(args):
|
|
96 |
# load eval pipeline
|
97 |
if args.device is None:
|
98 |
args.device = 0 if torch.cuda.is_available() else -1
|
99 |
-
asr = pipeline("automatic-speech-recognition",
|
|
|
|
|
|
|
|
|
|
|
100 |
|
101 |
# map function to decode audio
|
102 |
def map_to_pred(batch):
|
|
|
6 |
import torch
|
7 |
from datasets import Audio, Dataset, load_dataset, load_metric
|
8 |
|
9 |
+
from transformers import AutoFeatureExtractor, AutoModel, AutoTokenizer, pipeline
|
10 |
|
11 |
|
12 |
def log_results(result: Dataset, args: Dict[str, str]):
|
|
|
96 |
# load eval pipeline
|
97 |
if args.device is None:
|
98 |
args.device = 0 if torch.cuda.is_available() else -1
|
99 |
+
asr = pipeline("automatic-speech-recognition",
|
100 |
+
model=AutoModel.from_pretrained(args.model_id),
|
101 |
+
tokenizer=AutoTokenizer.from_pretrained(args.model_id),
|
102 |
+
feature_extractor=feature_extractor,
|
103 |
+
device=args.device
|
104 |
+
)
|
105 |
|
106 |
# map function to decode audio
|
107 |
def map_to_pred(batch):
|
language_model/5gram.bin
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:7b41c24c63f2f0585bea83666369593f3b3e6d047f327a90f36ebca2c35ef0ff
|
3 |
+
size 4243671427
|
language_model/attrs.json
ADDED
@@ -0,0 +1 @@
|
|
|
|
|
1 |
+
{"alpha": 0.5, "beta": 1.5, "unk_score_offset": -10.0, "score_boundary": true}
|
language_model/unigrams.txt
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:ac3e71ca49838ca355df6fdcb8d89344a5a9bf9e1a76587cdf5df1367c19b9a9
|
3 |
+
size 16759269
|
preprocessor_config.json
CHANGED
@@ -4,6 +4,7 @@
|
|
4 |
"feature_size": 1,
|
5 |
"padding_side": "right",
|
6 |
"padding_value": 0,
|
|
|
7 |
"return_attention_mask": true,
|
8 |
"sampling_rate": 16000
|
9 |
}
|
|
|
4 |
"feature_size": 1,
|
5 |
"padding_side": "right",
|
6 |
"padding_value": 0,
|
7 |
+
"processor_class": "Wav2Vec2ProcessorWithLM",
|
8 |
"return_attention_mask": true,
|
9 |
"sampling_rate": 16000
|
10 |
}
|
special_tokens_map.json
CHANGED
@@ -1 +1 @@
|
|
1 |
-
{"bos_token": "<s>", "eos_token": "</s>", "unk_token": "[UNK]", "pad_token": "[PAD]", "additional_special_tokens": [{"content": "<s>", "single_word": false, "lstrip": false, "rstrip": false, "normalized": true}, {"content": "</s>", "single_word": false, "lstrip": false, "rstrip": false, "normalized": true}, {"content": "<s>", "single_word": false, "lstrip": false, "rstrip": false, "normalized": true}, {"content": "</s>", "single_word": false, "lstrip": false, "rstrip": false, "normalized": true}]}
|
|
|
1 |
+
{"bos_token": "<s>", "eos_token": "</s>", "unk_token": "[UNK]", "pad_token": "[PAD]", "additional_special_tokens": [{"content": "<s>", "single_word": false, "lstrip": false, "rstrip": false, "normalized": true}, {"content": "</s>", "single_word": false, "lstrip": false, "rstrip": false, "normalized": true}, {"content": "<s>", "single_word": false, "lstrip": false, "rstrip": false, "normalized": true}, {"content": "</s>", "single_word": false, "lstrip": false, "rstrip": false, "normalized": true}, {"content": "<s>", "single_word": false, "lstrip": false, "rstrip": false, "normalized": true}, {"content": "</s>", "single_word": false, "lstrip": false, "rstrip": false, "normalized": true}]}
|
tokenizer_config.json
CHANGED
@@ -1 +1 @@
|
|
1 |
-
{"unk_token": "[UNK]", "bos_token": "<s>", "eos_token": "</s>", "pad_token": "[PAD]", "do_lower_case": false, "word_delimiter_token": "|", "special_tokens_map_file": null, "tokenizer_file": null, "name_or_path": "./", "tokenizer_class": "Wav2Vec2CTCTokenizer"}
|
|
|
1 |
+
{"unk_token": "[UNK]", "bos_token": "<s>", "eos_token": "</s>", "pad_token": "[PAD]", "do_lower_case": false, "word_delimiter_token": "|", "special_tokens_map_file": null, "tokenizer_file": null, "name_or_path": "./", "tokenizer_class": "Wav2Vec2CTCTokenizer", "processor_class": "Wav2Vec2ProcessorWithLM"}
|