Views
No views yet
1import os
2import warnings
3
4import librosa
5import nltk
6import numpy as np
7
8import torch
9from datasets import load_dataset
10from transformers import Wav2Vec2ForCTC, Wav2Vec2ProcessorWithLM
11
12MODEL_ID = "bond005/wav2vec2-large-ru-golos-with-lm"
13DATASET_ID = "bond005/sberdevices_golos_10h_crowd"
14SAMPLES = 30
15
16nltk.download('punkt')
17num_processes = max(1, os.cpu_count())
18
19test_dataset = load_dataset(DATASET_ID, split=f"test[:{SAMPLES}]")
20processor = Wav2Vec2ProcessorWithLM.from_pretrained(MODEL_ID)
21model = Wav2Vec2ForCTC.from_pretrained(MODEL_ID)
22
23# Preprocessing the datasets.
24# We need to read the audio files as arrays
25def speech_file_to_array_fn(batch):
26 speech_array = batch["audio"]["array"]
27 batch["speech"] = np.asarray(speech_array, dtype=np.float32)
28 return batch
29
30removed_columns = set(test_dataset.column_names)
31removed_columns -= {'transcription', 'speech'}
32removed_columns = sorted(list(removed_columns))
33with warnings.catch_warnings():
34 warnings.simplefilter("ignore")
35 test_dataset = test_dataset.map(
36 speech_file_to_array_fn,
37 num_proc=num_processes,
38 remove_columns=removed_columns
39 )
40
41inputs = processor(test_dataset["speech"], sampling_rate=16_000,
42 return_tensors="pt", padding=True)
43with torch.no_grad():
44 logits = model(inputs.input_values,
45 attention_mask=inputs.attention_mask).logits
46predicted_sentences = processor.batch_decode(
47 logits=logits.numpy(),
48 num_processes=num_processes
49).text
50
51with warnings.catch_warnings():
52 warnings.simplefilter("ignore")
53 for i, predicted_sentence in enumerate(predicted_sentences):
54 print("-" * 100)
55 print("Reference:", test_dataset[i]["transcription"])
56 print("Prediction:", predicted_sentence)1----------------------------------------------------------------------------------------------------
2Reference: шестьдесят тысяч тенге сколько будет стоить
3Prediction: шестьдесят тысяч тенге сколько будет стоить
4----------------------------------------------------------------------------------------------------
5Reference: покажи мне на смотрешке телеканал синергия тв
6Prediction: покажи мне на смотрешке телеканал синергия тв
7----------------------------------------------------------------------------------------------------
8Reference: заказать яблоки зеленые
9Prediction: заказать яблоки зеленые
10----------------------------------------------------------------------------------------------------
11Reference: алиса закажи килограммовый торт графские развалины
12Prediction: алиса закажи килограммовый торт графские развалины
13----------------------------------------------------------------------------------------------------
14Reference: ищи телеканал про бизнес на тиви
15Prediction: ищи телеканал про бизнес на тиви
16----------------------------------------------------------------------------------------------------
17Reference: михаила мурадяна
18Prediction: михаила мурадяна
19----------------------------------------------------------------------------------------------------
20Reference: любовницы две тысячи тринадцать пятнадцатый сезон
21Prediction: любовница две тысячи тринадцать пятнадцатый сезон
22----------------------------------------------------------------------------------------------------
23Reference: найди боевики
24Prediction: найди боевики
25----------------------------------------------------------------------------------------------------
26Reference: гетто сезон три
27Prediction: гета сезон три
28----------------------------------------------------------------------------------------------------
29Reference: хочу посмотреть ростов папа на телевизоре
30Prediction: хочу посмотреть ростоу папа на телевизоре
31----------------------------------------------------------------------------------------------------
32Reference: сбер какое твое самое ненавистное занятие
33Prediction: сбер какое твое самое ненавистное занятие
34----------------------------------------------------------------------------------------------------
35Reference: афина чем платят у китайцев
36Prediction: афина чем платят у китайцев
37----------------------------------------------------------------------------------------------------
38Reference: джой как работает досрочное погашение кредита
39Prediction: джой как работает досрочное погашение кредита
40----------------------------------------------------------------------------------------------------
41Reference: у тебя найдется люк кейдж
42Prediction: у тебя найдется люк кейдж
43----------------------------------------------------------------------------------------------------
44Reference: у тебя будет лучшая часть пинк
45Prediction: у тебя будет лучшая часть пинк
46----------------------------------------------------------------------------------------------------
47Reference: пожалуйста пополните мне счет
48Prediction: пожалуйста пополните мне счет
49----------------------------------------------------------------------------------------------------
50Reference: анне павловне шабуровой
51Prediction: анне павловне шабуровой
52----------------------------------------------------------------------------------------------------
53Reference: врубай на смотрешке муз тв
54Prediction: врубай на смотрешке муз тиви
55----------------------------------------------------------------------------------------------------
56Reference: найди на смотрешке лдпр тв
57Prediction: найди на смотрешке лдпр тв
58----------------------------------------------------------------------------------------------------
59Reference: сбер мне нужен педикюр забей мне место
60Prediction: сбер мне нужен педикюр за обеление место
61----------------------------------------------------------------------------------------------------
62Reference: галины афанасьевны
63Prediction: галины афанасьевны
64----------------------------------------------------------------------------------------------------
65Reference: сколько стоимость обмена китайского юаня на российский рубль
66Prediction: сколько стоимость обмена китайского юаня на российский рубль
67----------------------------------------------------------------------------------------------------
68Reference: обмани меня сезон восемь часть тринадцать
69Prediction: обмани меня сезон восемь часть тринадцать
70----------------------------------------------------------------------------------------------------
71Reference: включи канал футбол эйч ди
72Prediction: включи канал футбол эйч ди
73----------------------------------------------------------------------------------------------------
74Reference: поп звезда не переставай не останавливайся найти
75Prediction: поп звезда переставая не останавливайся найти
76----------------------------------------------------------------------------------------------------
77Reference: салют самый популярный фильм люка бессона
78Prediction: салют самый популярный фильм люка бессона
79----------------------------------------------------------------------------------------------------
80Reference: татьяна зиганшина
81Prediction: татьяна зигантшина
82----------------------------------------------------------------------------------------------------
83Reference: джой когда перестало существовать хеттское царство
84Prediction: джой когда перестало существовать хеттское царство
85----------------------------------------------------------------------------------------------------
86Reference: олег яковлев
87Prediction: олег яковлев
88----------------------------------------------------------------------------------------------------
89Reference: посоветуй мне шестая часть как избежать наказания за убийство
90Prediction: посоветуй мне шестая часть как избежать наказания за убийство1@misc{bondarenko2022wav2vec2-large-ru-golos,
2 title={XLSR Wav2Vec2 Russian with 2-gram Language Model by Ivan Bondarenko},
3 author={Bondarenko, Ivan},
4 publisher={Hugging Face},
5 journal={Hugging Face Hub},
6 howpublished={\url{https://huggingface.co/bond005/wav2vec2-large-ru-golos-with-lm}},
7 year={2022}
8}