Model Overview
Model Features
Model Capabilities
Use Cases
🚀 Wav2Vec2-Large-Ru-Golos-With-LM
The Wav2Vec2-Large-Ru-Golos-With-LM model is a powerful tool for automatic speech recognition in Russian. It builds on a pre - trained model and fine - tunes it with specific datasets, combined with a language model for better performance.
✨ Features
- Based on Pre - trained Model: Built upon facebook/wav2vec2-large-xlsr-53, leveraging its pre - trained knowledge.
- Fine - tuned on Russian Data: Fine - tuned using Sberdevices Golos with various audio augmentations like pitch shift, sound acceleration/deceleration, and reverberation.
- Language Model: A 2 - gram language model is constructed from a Russian text corpus sourced from multiple open sources, including a subset of Taiga, Russian Wikipedia, and Russian Wikinews.
📦 Installation
No specific installation steps are provided in the original document.
💻 Usage Examples
Basic Usage
When using this model, make sure that your speech input is sampled at 16kHz.
You can use this model by writing your own inference script:
import os
import warnings
import librosa
import nltk
import numpy as np
import torch
from datasets import load_dataset
from transformers import Wav2Vec2ForCTC, Wav2Vec2ProcessorWithLM
MODEL_ID = "bond005/wav2vec2-large-ru-golos-with-lm"
DATASET_ID = "bond005/sberdevices_golos_10h_crowd"
SAMPLES = 30
nltk.download('punkt')
num_processes = max(1, os.cpu_count())
test_dataset = load_dataset(DATASET_ID, split=f"test[:{SAMPLES}]")
processor = Wav2Vec2ProcessorWithLM.from_pretrained(MODEL_ID)
model = Wav2Vec2ForCTC.from_pretrained(MODEL_ID)
# Preprocessing the datasets.
# We need to read the audio files as arrays
def speech_file_to_array_fn(batch):
speech_array = batch["audio"]["array"]
batch["speech"] = np.asarray(speech_array, dtype=np.float32)
return batch
removed_columns = set(test_dataset.column_names)
removed_columns -= {'transcription', 'speech'}
removed_columns = sorted(list(removed_columns))
with warnings.catch_warnings():
warnings.simplefilter("ignore")
test_dataset = test_dataset.map(
speech_file_to_array_fn,
num_proc=num_processes,
remove_columns=removed_columns
)
inputs = processor(test_dataset["speech"], sampling_rate=16_000,
return_tensors="pt", padding=True)
with torch.no_grad():
logits = model(inputs.input_values,
attention_mask=inputs.attention_mask).logits
predicted_sentences = processor.batch_decode(
logits=logits.numpy(),
num_processes=num_processes
).text
with warnings.catch_warnings():
warnings.simplefilter("ignore")
for i, predicted_sentence in enumerate(predicted_sentences):
print("-" * 100)
print("Reference:", test_dataset[i]["transcription"])
print("Prediction:", predicted_sentence)
Here are some sample outputs:
----------------------------------------------------------------------------------------------------
Reference: шестьдесят тысяч тенге сколько будет стоить
Prediction: шестьдесят тысяч тенге сколько будет стоить
----------------------------------------------------------------------------------------------------
Reference: покажи мне на смотрешке телеканал синергия тв
Prediction: покажи мне на смотрешке телеканал синергия тв
----------------------------------------------------------------------------------------------------
Reference: заказать яблоки зеленые
Prediction: заказать яблоки зеленые
----------------------------------------------------------------------------------------------------
Reference: алиса закажи килограммовый торт графские развалины
Prediction: алиса закажи килограммовый торт графские развалины
----------------------------------------------------------------------------------------------------
Reference: ищи телеканал про бизнес на тиви
Prediction: ищи телеканал про бизнес на тиви
----------------------------------------------------------------------------------------------------
Reference: михаила мурадяна
Prediction: михаила мурадяна
----------------------------------------------------------------------------------------------------
Reference: любовницы две тысячи тринадцать пятнадцатый сезон
Prediction: любовница две тысячи тринадцать пятнадцатый сезон
----------------------------------------------------------------------------------------------------
Reference: найди боевики
Prediction: найди боевики
----------------------------------------------------------------------------------------------------
Reference: гетто сезон три
Prediction: гета сезон три
----------------------------------------------------------------------------------------------------
Reference: хочу посмотреть ростов папа на телевизоре
Prediction: хочу посмотреть ростоу папа на телевизоре
----------------------------------------------------------------------------------------------------
Reference: сбер какое твое самое ненавистное занятие
Prediction: сбер какое твое самое ненавистное занятие
----------------------------------------------------------------------------------------------------
Reference: афина чем платят у китайцев
Prediction: афина чем платят у китайцев
----------------------------------------------------------------------------------------------------
Reference: джой как работает досрочное погашение кредита
Prediction: джой как работает досрочное погашение кредита
----------------------------------------------------------------------------------------------------
Reference: у тебя найдется люк кейдж
Prediction: у тебя найдется люк кейдж
----------------------------------------------------------------------------------------------------
Reference: у тебя будет лучшая часть пинк
Prediction: у тебя будет лучшая часть пинк
----------------------------------------------------------------------------------------------------
Reference: пожалуйста пополните мне счет
Prediction: пожалуйста пополните мне счет
----------------------------------------------------------------------------------------------------
Reference: анне павловне шабуровой
Prediction: анне павловне шабуровой
----------------------------------------------------------------------------------------------------
Reference: врубай на смотрешке муз тв
Prediction: врубай на смотрешке муз тиви
----------------------------------------------------------------------------------------------------
Reference: найди на смотрешке лдпр тв
Prediction: найди на смотрешке лдпр тв
----------------------------------------------------------------------------------------------------
Reference: сбер мне нужен педикюр забей мне место
Prediction: сбер мне нужен педикюр за обеление место
----------------------------------------------------------------------------------------------------
Reference: галины афанасьевны
Prediction: галины афанасьевны
----------------------------------------------------------------------------------------------------
Reference: сколько стоимость обмена китайского юаня на российский рубль
Prediction: сколько стоимость обмена китайского юаня на российский рубль
----------------------------------------------------------------------------------------------------
Reference: обмани меня сезон восемь часть тринадцать
Prediction: обмани меня сезон восемь часть тринадцать
----------------------------------------------------------------------------------------------------
Reference: включи канал футбол эйч ди
Prediction: включи канал футбол эйч ди
----------------------------------------------------------------------------------------------------
Reference: поп звезда не переставай не останавливайся найти
Prediction: поп звезда переставая не останавливайся найти
----------------------------------------------------------------------------------------------------
Reference: салют самый популярный фильм люка бессона
Prediction: салют самый популярный фильм люка бессона
----------------------------------------------------------------------------------------------------
Reference: татьяна зиганшина
Prediction: татьяна зигантшина
----------------------------------------------------------------------------------------------------
Reference: джой когда перестало существовать хеттское царство
Prediction: джой когда перестало существовать хеттское царство
----------------------------------------------------------------------------------------------------
Reference: олег яковлев
Prediction: олег яковлев
----------------------------------------------------------------------------------------------------
Reference: посоветуй мне шестая часть как избежать наказания за убийство
Prediction: посоветуй мне шестая часть как избежать наказания за убийство
The Google Colab version of this script is also available.
📚 Documentation
Evaluation
This model was evaluated on the test subsets of SberDevices Golos, Common Voice 6.0 (Russian part), and Russian Librispeech. However, it was trained only on the training subset of SberDevices Golos. You can find the evaluation script for other datasets, including Russian Librispeech and SOVA RuDevices, on my Kaggle web - page https://www.kaggle.com/code/bond005/wav2vec2-ru-lm-eval.
Model Information
Property | Details |
---|---|
Model Type | The Wav2Vec2 model is based on facebook/wav2vec2-large-xlsr-53, fine - tuned in Russian. |
Training Data | Trained on the training subset of Sberdevices Golos |
Datasets | SberDevices/Golos, common_voice, bond005/rulibrispeech, bond005/sova_rudevices, dangrebenkin/voxforge-ru-dataset |
Metrics | wer, cer |
Tags | audio, automatic - speech - recognition, speech, common_voice, SberDevices/Golos, bond005/rulibrispeech, bond005/sova_rudevices, dangrebenkin/voxforge-ru-dataset |
License | apache - 2.0 |
Results
Task | Dataset | Test WER | Test CER |
---|---|---|---|
Speech Recognition | Sberdevices Golos (crowd) | 6.883 | 1.637 |
Speech Recognition | Sberdevices Golos (farfield) | 15.044 | 5.128 |
Automatic Speech Recognition | Common Voice ru | 12.115 | 2.980 |
Automatic Speech Recognition | Russian Librispeech | 15.736 | 3.573 |
Automatic Speech Recognition | Sova RuDevices | 20.652 | 7.287 |
Automatic Speech Recognition | Voxforge Ru | 19.079 | 5.864 |
📄 License
This model is released under the apache - 2.0 license.
📚 Citation
If you want to cite this model, you can use the following BibTeX entry:
@misc{bondarenko2022wav2vec2-large-ru-golos,
title={XLSR Wav2Vec2 Russian with 2-gram Language Model by Ivan Bondarenko},
author={Bondarenko, Ivan},
publisher={Hugging Face},
journal={Hugging Face Hub},
howpublished={\url{https://huggingface.co/bond005/wav2vec2-large-ru-golos-with-lm}},
year={2022}
}

