bond005 commited on
Commit
a585870
1 Parent(s): 483a942

Update README.md

Browse files
Files changed (1) hide show
  1. README.md +258 -0
README.md CHANGED
@@ -1,3 +1,261 @@
1
  ---
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2
  license: apache-2.0
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3
  ---
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  ---
2
+ language: ru
3
+ datasets:
4
+ - SberDevices/Golos
5
+ - common_voice
6
+ - sova_rudevices
7
+ metrics:
8
+ - wer
9
+ - cer
10
+ tags:
11
+ - audio
12
+ - automatic-speech-recognition
13
+ - speech
14
+ - common_voice
15
+ - SberDevices/Golos
16
  license: apache-2.0
17
+ model-index:
18
+ - name: Wav2Vec2-mBART-50 for speech-to-text in Russian by Ivan Bondarenko
19
+ results:
20
+ - task:
21
+ name: Speech Recognition
22
+ type: automatic-speech-recognition
23
+ dataset:
24
+ name: Sberdevices Golos (crowd)
25
+ type: SberDevices/Golos
26
+ args: ru
27
+ metrics:
28
+ - name: Test WER
29
+ type: wer
30
+ value: 14.553
31
+ - name: Test CER
32
+ type: cer
33
+ value: 5.327
34
+ - task:
35
+ name: Speech Recognition
36
+ type: automatic-speech-recognition
37
+ dataset:
38
+ name: Sberdevices Golos (farfield)
39
+ type: SberDevices/Golos
40
+ args: ru
41
+ metrics:
42
+ - name: Test WER
43
+ type: wer
44
+ value: 21.403
45
+ - name: Test CER
46
+ type: cer
47
+ value: 9.756
48
+ - task:
49
+ name: Automatic Speech Recognition
50
+ type: automatic-speech-recognition
51
+ dataset:
52
+ name: Common Voice ru
53
+ type: common_voice
54
+ args: ru
55
+ metrics:
56
+ - name: Test WER
57
+ type: wer
58
+ value: 15.891
59
+ - name: Test CER
60
+ type: cer
61
+ value: 6.136
62
+ - task:
63
+ name: Speech Recognition
64
+ type: automatic-speech-recognition
65
+ dataset:
66
+ name: Sova RuDevices
67
+ type: sova_rudevices
68
+ args: ru
69
+ metrics:
70
+ - name: Test WER
71
+ type: wer
72
+ value: 25.771
73
+ - name: Test CER
74
+ type: cer
75
+ value: 12.037
76
  ---
77
+ # Wav2Vec2-mBART-50-Ru
78
+
79
+ Wav2Vec2-mBART-50-Ru is a speech-sequence-to-text-sequence model, which can convert an input audio with Russian speech into a text with punctuation, capitalization and so on.
80
+
81
+ Wav2Vec2-mBART-50-Ru is the [SpeechEncoderDecoderModel](https://huggingface.co/docs/transformers/model_doc/speech-encoder-decoder), which was initialized with [Wav2Vec2-Large-Ru-Golos](https://huggingface.co/bond005/wav2vec2-large-ru-golos) as the encoder and [mBART-large-50](https://huggingface.co/facebook/mbart-large-50) as the decoder. After its initialization the model was fine-tuned using the training parts of several annotated speech corpora:
82
+
83
+ - [the 10 hours crowd subset of SberDevices Golos](https://huggingface.co/datasets/bond005/sberdevices_golos_10h_crowd)
84
+ - [the 100 hours farfield subset of SberDevices Golos](https://huggingface.co/datasets/bond005/sberdevices_golos_100h_farfield)
85
+ - [the Russian subset of Common Voice 6.0](https://huggingface.co/datasets/common_voice)
86
+ - [Sova RuDevices](https://huggingface.co/datasets/bond005/sova_rudevices)
87
+
88
+ CommonVoice 6.0 contains "rich" text annotations with punctuation and capitalization, but other speech corpora includes plain texts only. Therefore, text annotations of these corpora were riched automatically using the [Silero text enhancement model](https://github.com/snakers4/silero-models#text-enhancement).
89
+
90
+ ## Usage
91
+
92
+ When using this model, make sure that your speech input is sampled at 16kHz.
93
+
94
+ You can use this model by writing your own inference script:
95
+
96
+ ```python
97
+ import os
98
+ import warnings
99
+
100
+ import torch
101
+ from datasets import load_dataset
102
+ from datasets.features import Audio
103
+ from transformers import SpeechEncoderDecoderModel, Wav2Vec2Processor
104
+
105
+ LANG_ID = "ru"
106
+ MODEL_ID = "bond005/wav2vec2-mbart50-ru"
107
+ SAMPLES = 32
108
+
109
+ num_processes = max(1, os.cpu_count())
110
+
111
+ processor = Wav2Vec2Processor.from_pretrained(MODEL_ID)
112
+ model = SpeechEncoderDecoderModel.from_pretrained(MODEL_ID)
113
+
114
+ test_dataset = load_dataset("common_voice", LANG_ID, split=f"test[:{SAMPLES}]")
115
+
116
+ if test_dataset.features['audio'].sampling_rate != 16_000:
117
+ test_dataset = test_dataset.cast_column(
118
+ 'audio',
119
+ Audio(sampling_rate=16_000)
120
+ )
121
+
122
+ audio_data = [test_dataset[i]['audio']['array'] for i in range(SAMPLES)]
123
+
124
+ processed = processor(audio_data, sampling_rate=16_000,
125
+ return_tensors="pt", padding='longest')
126
+
127
+ with torch.no_grad():
128
+ predicted_ids = model.generate(**processed)
129
+
130
+ predicted_sentences = processor.batch_decode(
131
+ predicted_ids,
132
+ num_processes=num_processes,
133
+ skip_special_tokens=True
134
+ )
135
+
136
+ with warnings.catch_warnings():
137
+ warnings.simplefilter("ignore")
138
+ for i, predicted_sentence in enumerate(predicted_sentences):
139
+ print("-" * 100)
140
+ print("Reference: ", test_dataset[i]["sentence"])
141
+ print("Prediction:", predicted_sentence)
142
+ ```
143
+
144
+ ```text
145
+ ----------------------------------------------------------------------------------------------------
146
+ Reference: Я беру маленький кусочек бумажки.
147
+ Prediction: Я беру маленькие кусочки бумажки.
148
+ ----------------------------------------------------------------------------------------------------
149
+ Reference: О потерях пока не сообщается.
150
+ Prediction: А потеря их пока не сообщается.
151
+ ----------------------------------------------------------------------------------------------------
152
+ Reference: Ваша воля.
153
+ Prediction: Ваша воля.
154
+ ----------------------------------------------------------------------------------------------------
155
+ Reference: Мы высоко ценим ее роль в этом отношении.
156
+ Prediction: Мы высоко ценим ее роль в этом отношении.
157
+ ----------------------------------------------------------------------------------------------------
158
+ Reference: Вот это вызывало у нас жуткое отторжение.
159
+ Prediction: Вот это вызвало у нас жуткое отвержение.
160
+ ----------------------------------------------------------------------------------------------------
161
+ Reference: Он положил ей букет на книгу.
162
+ Prediction: Он положил ее букет на книгу.
163
+ ----------------------------------------------------------------------------------------------------
164
+ Reference: Ну и положу, – обиделась Женя.
165
+ Prediction: – Ну и положи. – обиделась Женя.
166
+ ----------------------------------------------------------------------------------------------------
167
+ Reference: Благодарю представителя Австралии за ее заявление.
168
+ Prediction: Благодарю представителя Австралии за ее заявление.
169
+ ----------------------------------------------------------------------------------------------------
170
+ Reference: Для меня это не было неожиданностью.
171
+ Prediction: Для меня это не было неожиданностью.
172
+ ----------------------------------------------------------------------------------------------------
173
+ Reference: Поздняя ночь.
174
+ Prediction: Поздняя ночь.
175
+ ----------------------------------------------------------------------------------------------------
176
+ Reference: Тем не менее нужно вновь вычленить некоторые элементы наших политических установок.
177
+ Prediction: Тем не менее нужны новые обычаи принятия, которые элементарны для наших политических установок.
178
+ ----------------------------------------------------------------------------------------------------
179
+ Reference: Мы не можем позволить себе упустить эту возможность.
180
+ Prediction: Мы не можем позволить себе упустить эту возможность.
181
+ ----------------------------------------------------------------------------------------------------
182
+ Reference: В предстоящие месяцы Суд примет решение по ордеру на арест министра обороны Хусейна.
183
+ Prediction: В предстоящие месяцы Суд примет решение по форме нарасти на арест министра Папуа-Новой Гвинеи.
184
+ ----------------------------------------------------------------------------------------------------
185
+ Reference: Валерия живет в старом панельном доме советских времён.
186
+ Prediction: Валерия живет в старом анальном доме советских временах.
187
+ ----------------------------------------------------------------------------------------------------
188
+ Reference: Я вернусь скоро.
189
+ Prediction: Я вернусь скоро...
190
+ ----------------------------------------------------------------------------------------------------
191
+ Reference: Слово предоставляется Его Превосходительству принцу Зайду.
192
+ Prediction: Слово предоставляется Его Превосходительству Пан Ги Муну.
193
+ ----------------------------------------------------------------------------------------------------
194
+ Reference: Ну конечно, тебе бы этого хотелось.
195
+ Prediction: Ну, конечно, тебе бы этого хотелось.
196
+ ----------------------------------------------------------------------------------------------------
197
+ Reference: Общественные объединения равны перед законом.
198
+ Prediction: Общественные объединения равны перед законом.
199
+ ----------------------------------------------------------------------------------------------------
200
+ Reference: Ну, что же, нету этики, эстетики.
201
+ Prediction: Ну что же, ятаятаятаятаятаятаятаятаятаята?
202
+ ----------------------------------------------------------------------------------------------------
203
+ Reference: Сразу же она легла в постель.
204
+ Prediction: Сразу же она двигла постель.
205
+ ----------------------------------------------------------------------------------------------------
206
+ Reference: Сейчас я сделаю заявление в своем национальном качестве.
207
+ Prediction: Сейчас я сделаю заявление в своем национальном качестве.
208
+ ----------------------------------------------------------------------------------------------------
209
+ Reference: Что там сейчас происходит в Твиттере?
210
+ Prediction: Что там сейчас происходит в Твиттере?
211
+ ----------------------------------------------------------------------------------------------------
212
+ Reference: Ну хорошо, что револьвер был заряжен холостыми.
213
+ Prediction: Ну хорошо, что Ревьев был заряжен холостами.
214
+ ----------------------------------------------------------------------------------------------------
215
+ Reference: А потом дальше может проходить работа такая.
216
+ Prediction: А потом дальше может проходить работа такая.
217
+ ----------------------------------------------------------------------------------------------------
218
+ Reference: Из Microsoft написали что на текущий момент у них нет открытых вакансий.
219
+ Prediction: Из моих красотов написали, что на текущий момент у них нет открытых вакансий.
220
+ ----------------------------------------------------------------------------------------------------
221
+ Reference: Мы добились многого, но сейчас не время терять набранную динамику.
222
+ Prediction: Мы добились многого, но сейчас не время терять набранную динамику.
223
+ ----------------------------------------------------------------------------------------------------
224
+ Reference: Мы внимательно проанализировали документ и содержащиеся в нем выводы и рекомендации.
225
+ Prediction: Мы внимательно проанализировали документ, содержащийся в нем выводы рекомендаций.
226
+ ----------------------------------------------------------------------------------------------------
227
+ Reference: А сейчас слово имеет представитель Соединенных Штатов Америки.
228
+ Prediction: А сейчас слово имеет представитель Соединенных Штатов Америки.
229
+ ----------------------------------------------------------------------------------------------------
230
+ Reference: Обстоятельства изменились, и мы должны учитывать это.
231
+ Prediction: Обстоятельно изменились, и мы должны учитывать это.
232
+ ----------------------------------------------------------------------------------------------------
233
+ Reference: На этом принципе основывается и наша позиция по Фолклендским островам.
234
+ Prediction: На этом принципе основывается и наша позиция по Фолклендским островам.
235
+ ----------------------------------------------------------------------------------------------------
236
+ Reference: А у тебя бутылка торчит из кармана.
237
+ Prediction: А у тебя бутылка торчит из кармана.
238
+ ----------------------------------------------------------------------------------------------------
239
+ Reference: На прошлой неделе вновь обострилась ситуация в Газе.
240
+ Prediction: На прошлой неделе вновь обострилась ситуация в Газе.
241
+ ```
242
+
243
+
244
+ The Google Colab version of [this script](https://colab.research.google.com/drive/1VlTrsc9d9wyzLPAWagpXLzoDLn2PRvZA?usp=sharing) is available too.
245
+
246
+ ## Evaluation
247
+ This model was evaluated on the test subsets of [SberDevices Golos](https://huggingface.co/datasets/SberDevices/Golos), [Common Voice 6.0](https://huggingface.co/datasets/common_voice) (Russian part), and [Sova RuDevices](https://huggingface.co/datasets/bond005/sova_rudevices).
248
+
249
+ ## Citation
250
+ If you want to cite this model you can use this:
251
+
252
+ ```bibtex
253
+ @misc{bondarenko2022wav2vec2-large-ru-golos,
254
+ title={Wav2Vec2-mBART-50 for speech-to-text in Russian by Ivan Bondarenko},
255
+ author={Bondarenko, Ivan},
256
+ publisher={Hugging Face},
257
+ journal={Hugging Face Hub},
258
+ howpublished={\url{https://huggingface.co/bond005/wav2vec2-mbart50-ru}},
259
+ year={2023}
260
+ }
261
+ ```