Views
No views yet
utter-project/mHuBERT-147 and trained with a BiLSTM CTC head.97.2M parameters total (94.4M backbone + 2.85M CTC head)utter-project/mHuBERT-147PER = 0.0896PER = 0.1987istomin9192/mHuBERT-147-ipa-head,
with one extra CTC blank symbol at the last output index.1import json
2import librosa
3import torch
4from transformers import AutoFeatureExtractor, AutoModel
5
6repo_id = "istomin9192/mHuBERT-147-ipa-ctc-ft"
7
8feature_extractor = AutoFeatureExtractor.from_pretrained(repo_id, trust_remote_code=True)
9model = AutoModel.from_pretrained(repo_id, trust_remote_code=True)
10model.eval()
11
12with open("ipa_map.json", "r", encoding="utf-8") as f:
13 id2phone = {int(k): v for k, v in json.load(f)["id2phone"].items()}
14
15wav, sr = librosa.load(wav_file, sr=16000, mono=True)
16inputs = feature_extractor(wav, sampling_rate=16000, return_tensors="pt")
17
18with torch.no_grad():
19 logits = model(**inputs).logits[0]
20
21pred_ids = logits.argmax(dim=-1).tolist()
22blank_id = model.config.architecture["blank_id"]
23phones = []
24prev = blank_id
25for pid in pred_ids:
26 if pid != blank_id and pid != prev:
27 phones.append(id2phone[pid])
28 prev = pid
29
30print(phones)