Views
No views yet
1import torch
2from transformers import pipeline
3
4# Load the model. Using GPU if available
5model_name = 'viktor-enzell/wav2vec2-large-voxrex-swedish-4gram'
6device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')
7pipe = pipeline(model=model_name).to(device)
8
9# Run inference on an audio file
10output = pipe('path/to/audio.mp3')['text']1from transformers import Wav2Vec2ForCTC, Wav2Vec2ProcessorWithLM
2from datasets import load_dataset
3import torch
4import torchaudio.functional as F
5
6# Import model and processor. Using GPU if available
7model_name = 'viktor-enzell/wav2vec2-large-voxrex-swedish-4gram'
8device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')
9model = Wav2Vec2ForCTC.from_pretrained(model_name).to(device);
10processor = Wav2Vec2ProcessorWithLM.from_pretrained(model_name)
11
12# Import and process speech data
13common_voice = load_dataset('common_voice', 'sv-SE', split='test[:1%]')
14
15def speech_file_to_array(sample):
16 # Convert speech file to array and downsample to 16 kHz
17 sampling_rate = sample['audio']['sampling_rate']
18 sample['speech'] = F.resample(torch.tensor(sample['audio']['array']), sampling_rate, 16_000)
19 return sample
20
21common_voice = common_voice.map(speech_file_to_array)
22
23# Run inference
24inputs = processor(common_voice['speech'], sampling_rate=16_000, return_tensors='pt', padding=True).to(device)
25
26with torch.no_grad():
27 logits = model(**inputs).logits
28
29transcripts = processor.batch_decode(logits.cpu().numpy()).text