Views
No views yet
pip install -U transformers torchaudio1import torch
2import torchaudio
3from transformers import Wav2Vec2Processor, WavLMForCTC
4
5repo_id = "huper29/huper_recognizer"
6processor = Wav2Vec2Processor.from_pretrained(repo_id)
7model = WavLMForCTC.from_pretrained(repo_id)
8model.eval()
9
10waveform, sr = torchaudio.load("sample.wav")
11if waveform.shape[0] > 1:
12 waveform = waveform.mean(dim=0, keepdim=True)
13if sr != 16000:
14 waveform = torchaudio.transforms.Resample(sr, 16000)(waveform)
15
16inputs = processor(waveform.squeeze().numpy(), sampling_rate=16000, return_tensors="pt")
17with torch.no_grad():
18 logits = model(**inputs).logits
19
20pred_ids = torch.argmax(logits, dim=-1)[0].tolist()
21blank_id = processor.tokenizer.pad_token_id
22
23phone_tokens = []
24prev = None
25for token_id in pred_ids:
26 if token_id != blank_id and token_id != prev:
27 token = model.config.id2label.get(token_id, processor.tokenizer.convert_ids_to_tokens(token_id))
28 if token not in {"<PAD>", "<UNK>", "<BOS>", "<EOS>", "|"}:
29 phone_tokens.append(token)
30 prev = token_id
31
32print(" ".join(phone_tokens))