from transformers import Wav2Vec2ForCTC, Wav2Vec2CTCTokenizer, Wav2Vec2FeatureExtractor, Wav2Vec2Processor | |
import json | |
# Path to your local model directory and vocab file | |
local_model_path = './wav2vec2-large-mal' # Directory with model checkpoints | |
vocab_path = './vocab.json' # Path to your vocab.json file | |
# Hugging Face model ID (replace with your username) | |
model_id = "aoxo/wav2vec2-large-mal" | |
# Load vocab | |
with open(vocab_path, 'r') as f: | |
vocab_dict = json.load(f) | |
# Create custom tokenizer | |
tokenizer = Wav2Vec2CTCTokenizer( | |
vocab_path, | |
unk_token="[UNK]", | |
pad_token="[PAD]", | |
word_delimiter_token="|" | |
) | |
# Create feature extractor | |
feature_extractor = Wav2Vec2FeatureExtractor( | |
feature_size=1, | |
sampling_rate=16000, | |
padding_value=0.0, | |
do_normalize=True, | |
return_attention_mask=False | |
) | |
# Create processor | |
processor = Wav2Vec2Processor( | |
feature_extractor=feature_extractor, | |
tokenizer=tokenizer | |
) | |
# Load the model from the checkpoint directory | |
model = Wav2Vec2ForCTC.from_pretrained(local_model_path) | |
# Push to Hugging Face Hub | |
model.push_to_hub(model_id) | |
processor.push_to_hub(model_id) | |
tokenizer.push_to_hub(model_id) | |
print(f"Model, processor, and tokenizer successfully pushed to {model_id}") | |