/ Модель

Характеристики

Контекст
512 токенов
Параметры
124 млн
Лицензия
Apache 2.0
Архитектура
t5 · dense
Опубликована
6 апр 2023

ruT5-ASR

Генерация текстаТекст → текст7 профессий

Русскоязычная модель на базе ruT5-base, которая исправляет ошибки в готовых транскрипциях автоматического распознавания речи.

280скачиваний за 30 дней6лайковвеса обновлены16 мар 2024

Бенчмарки

Как модель справилась с задачами пользователей ailist и что о ней публикуют открытые лидерборды

Тесты пользователейпока нет

Никто ещё не опубликовал тест этой модели. Соберите бенчмарк из своих задач — результат появится здесь.

  1. Добавьте модель в бенчмарк

    Вместе с другими моделями категории «Текст» — сравнение идёт внутри одной категории.

  2. Опишите свои задачи

    Напишите запросы, при необходимости приложите файлы и эталонные ответы.

  3. Запустите и опубликуйте

    Модели ответят на каждую задачу, судья оценит ответы. Опубликованный результат появится на этой странице.

Публичные оценки

Из открытых лидербордов. Сравнивайте результаты одного теста при одинаковых условиях — отсутствие оценки не значит, что модель хуже.

В подключённых источниках результатов для этой модели пока нет.

Что умеет модель

Описание составлено по карточке модели и метаданным Hugging Face

ruT5-ASR — русскоязычная модель коррекции распознанной речи, обученная bond005 на основе ruT5-base. Она исправляет ошибки в тексте, полученном системами автоматического распознавания речи, в частности Wav2Vec2-Large-Ru-Golos, и может работать как отдельная модель преобразования последовательностей: на вход получает черновую транскрипцию и возвращает исправленный текст.

Модель построена на архитектуре T5, содержит 123,8 млн параметров и имеет контекст до 512 токенов. Она обучалась на обучающей части набора SberDevices Golos; оценивалась на тестовых частях Golos, русской части Common Voice 6.0 и Russian Librispeech. В приведённом сравнении эффект коррекции различается по наборам данных: на SOVA RuDevices ошибка снизилась, а на Voxforge Ru и Russian Librispeech выросла.

Модель предназначена для работы с русскими транскрипциями и не распознаёт аудио напрямую. Распространяется в формате PyTorch по лицензии Apache-2.0.

Сценарии применения

  • исправление ошибок в транскриптах распознавания речи
  • постобработка расшифровок Wav2Vec2-Large-Ru-Golos
  • нормализация русских транскрипций перед публикацией
  • коррекция разговорной речи в расшифровках аудио

Ограничения

Модель исправляет текстовые транскрипции, но не принимает аудио и не выполняет распознавание речи самостоятельно. В приведённой оценке улучшение зависит от набора данных: на Voxforge Ru и Russian Librispeech показатель WER стал хуже.

Для каких профессий подходит7

Разделы каталога профессий, в задачах которых используется эта модель

Все профессии

Также подходит для

Карточка модели

README от автора на Hugging Face, как он его опубликовал

Открыть на Hugging Face

ruT5-ASR

Model was trained by bond005 to correct errors in the ASR output (in particular, output of Wav2Vec2-Large-Ru-Golos). The model is based on ruT5-base.

Usage

To correct ASR outputs the model can be used as a standalone sequence-to-sequence model as follows:

from transformers import T5ForConditionalGeneration, T5Tokenizer
import torch


def rescore(text: str, tokenizer: T5Tokenizer,
            model: T5ForConditionalGeneration) -> str:
    if len(text) == 0:  # if an input text is empty, then we return an empty text too
        return ''
    ru_letters = set('аоуыэяеёюибвгдйжзклмнпрстфхцчшщьъ')
    punct = set('.,:/\\?!()[]{};"\'-')
    x = tokenizer(text, return_tensors='pt', padding=True).to(model.device)
    max_size = int(x.input_ids.shape[1] * 1.5 + 10)
    min_size = 3
    if x.input_ids.shape[1] <= min_size:
        return text  # we don't rescore a very short text
    out = model.generate(**x, do_sample=False, num_beams=5,
                         max_length=max_size, min_length=min_size)
    res = tokenizer.decode(out[0], skip_special_tokens=True).lower().strip()
    res = ' '.join(res.split())
    postprocessed = ''
    for cur in res:
        if cur.isspace() or (cur in punct):
            postprocessed += ' '
        elif cur in ru_letters:
            postprocessed += cur
    return (' '.join(postprocessed.strip().split())).replace('ё', 'е')


# load model and tokenizer
tokenizer_for_rescoring = T5Tokenizer.from_pretrained('bond005/ruT5-ASR')
model_for_rescoring = T5ForConditionalGeneration.from_pretrained('bond005/ruT5-ASR')
if torch.cuda.is_available():
    model_for_rescoring = model_for_rescoring.cuda()

input_examples = [
    'уласны в москве интерне только в большом году что лепровели',
    'мороз и солнце день чудесный',
    'нейро сети эта харошо',
    'да'
]

for src in input_examples:
    rescored = rescore(src, tokenizer_for_rescoring, model_for_rescoring)
    print(f'{src} -> {rescored}')
уласны в москве интерне только в большом году что лепровели -> у нас в москве интернет только в прошлом году что ли провели
мороз и солнце день чудесный -> мороз и солнце день чудесный
нейро сети эта харошо -> нейросети это хорошо
да -> да

Evaluation

This model was evaluated on the test subsets of SberDevices Golos, Common Voice 6.0 (Russian part), and Russian Librispeech, but it was trained on the training subset of SberDevices Golos only. You can see the evaluation script on other datasets, including Russian Librispeech and SOVA RuDevices, on my Kaggle web-page https://www.kaggle.com/code/bond005/wav2vec2-t5-ru-eval

Comparison with "pure" Wav2Vec2-Large-Ru-Golos (WER, %):

dataset namepure ASRASR with rescoring
Voxforge Ru27.0840.48
Russian LibriSpeech21.8723.77
Sova RuDevices25.4120.13
Golos Crowd10.149.42
Golos Farfield20.3517.99
CommonVoice Ru18.5511.60

Как запустить

На своей GPU в ailist. Цена — по текущим предложениям провайдеров

GPU в ailist

Универсальный рантайм

Можно запустить

Подбираем GPU…

Класс архитектуры
T5ForConditionalGeneration
Ревизия весов
09d44b1

0 моделей