ruT5-ASR-large / README.md
bond005's picture
Update README.md
d134c33 verified
---
language: ru
license: apache-2.0
tags:
- PyTorch
- Transformers
widget:
- text: краеугольным камнем любышь алгоритных машиного обучения является преждес его обобщающая способности тогда мы обучаем некоторую модель у нас есть обучающая выборка унаситькюмся ошибки и наша задачи сводится вообщем такомптиминационной задачи мы минимизируем в функцию ошибки по параметрам нашей модели на обучающие выбрать но на самом деле хотим там и не этого мы не обучающую ошибку хотим минимизировать
- text: это ашибкараспознаваня
---
# ruT5-ASR-large
Model was trained by [bond005](https://scholar.google.ru/citations?user=3AJKH38AAAAJ) to correct errors, restore punctuation and capitalization in the ASR output (in particular, output of [Wav2Vec2-Large-Ru-Golos](https://huggingface.co/bond005/wav2vec2-large-ru-golos)). The model is based on [ruT5-large](https://huggingface.co/ai-forever/ruT5-large).
## Usage
To correct ASR outputs the model can be used as a standalone sequence-to-sequence model as follows:
```python
from transformers import T5ForConditionalGeneration
from transformers import GenerationConfig
from transformers import T5Tokenizer
import torch
def restore_text(text: str, tokenizer: T5Tokenizer, config: GenerationConfig,
model: T5ForConditionalGeneration) -> str:
if len(text) == 0: # if an input text is empty, then we return an empty text too
return ''
x = tokenizer(text, return_tensors='pt', padding=True).to(model.device)
max_size = int(x.input_ids.shape[1] * 2.0 + 10)
min_size = 3
if x.input_ids.shape[1] <= min_size:
return text
out = model.generate(**x, generation_config=config, max_length=max_size)
res = tokenizer.decode(out[0], skip_special_tokens=True).strip()
return ' '.join(res.split())
# load model and tokenizer
tokenizer_for_restoring = T5Tokenizer.from_pretrained('bond005/ruT5-ASR-large')
model_for_restoring = T5ForConditionalGeneration.from_pretrained('bond005/ruT5-ASR-large')
config_for_restoring = GenerationConfig.from_pretrained('bond005/ruT5-ASR-large')
if torch.cuda.is_available():
model_for_restoring = model_for_restoring.cuda()
input_examples = [
'краеугольным камнем любышь алгоритных машиного обучения является преждес его ' \
'обобщающая способности тогда мы обучаем некоторую модель у нас есть обучающая ' \
'выборка унаситькюмся ошибки и наша задачи сводится вообщем такомптиминационной ' \
'задачи мы минимизируем в функцию ошибки по параметрам нашей модели на обучающие ' \
'выбрать но на самом деле хотим там и не этого ' \
'мы не обучающую ошибку хотим минимизировать', # 0
'максимально ухучать идеальную систему в воде туда какие то элементы или условия ' \
'чтобы итоговое результат должен быть такой мы должны в двадцать два раза ' \
'замедлить нашу разработку' # 1
]
for idx, val in enumerate(input_examples):
restored = restore_text(val, tokenizer_for_restoring,
config_for_restoring, model_for_restoring)
print('==========')
print(f'Example {idx + 1}')
print('==========')
print('')
print('ASR output before restoring:')
print('')
print(val)
print('')
print('After restoring:')
print('')
print(restored)
print('')
```
```text
==========
Example 1
==========
ASR output before restoring:
краеугольным камнем любышь алгоритных машиного обучения является преждес его обобщающая способности тогда мы обучаем некоторую модель у нас есть обучающая выборка унаситькюмся ошибки и наша задачи сводится вообщем такомптиминационной задачи мы минимизируем в функцию ошибки по параметрам нашей модели на обучающие выбрать но на самом деле хотим там и не этого мы не обучающую ошибку хотим минимизировать
After restoring:
Краеугольным камнем любого алгоритма машинного обучения является прежде всего его общая способность. Тогда мы обучаем некоторую модель, у нас есть обучающая выборка, у нас есть критическая ошибка, и наша задача сводится в общем к компенсационной задаче. Мы минимизируем функцию ошибки по параметрам нашей модели на обучающую выборку, но на самом деле хотим там и не этого. Мы не обучающую ошибку хотим минимизировать.
==========
Example 2
==========
ASR output before restoring:
максимально ухучать идеальную систему в воде туда какие то элементы или условия чтобы итоговое результат должен быть такой мы должны в двадцать два раза замедлить нашу разработку
After restoring:
Максимально ухудшать идеальную систему, вводить туда какие-то элементы или условия. Чтобы итоговый результат должен быть такой, мы должны в 22 раза замедлить нашу разработку.
```