/ Модель

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

Параметры
403 млн
Лицензия
Apache 2.0
Архитектура
wav2vec2 · dense
Базовая модель
wav2vec2-large-xlsr-53
Опубликована
2 мар 2022

wav2vec2-large-xlsr-kazakh

Распознавание речиАудио → текст7 профессий

Дообученная Wav2Vec2-модель преобразует аудиозаписи казахской речи в текст.

165 тыс.скачиваний за 30 дней21лайквеса обновлены20 дек 2023

Бенчмарки

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

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

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

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

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

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

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

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

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

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

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

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

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

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

aismlv/wav2vec2-large-xlsr-kazakh — модель распознавания казахской речи, созданная дообучением facebook/wav2vec2-large-xlsr-53 на обучающей части Kazakh Speech Corpus v1.1. Она построена на архитектуре Wav2Vec2 с CTC-выходом и содержит 402,7 млн параметров.

Модель предназначена для преобразования аудиозаписей на казахском языке в текст. Для работы входную речь следует подавать с частотой дискретизации 16 кГц; распознавание возможно без отдельной языковой модели. В README указан результат оценки 19,65% на тестовом наборе Kazakh Speech Corpus v1.1, но метрика не уточнена.

Модель распространяется по лицензии Apache-2.0. Она специализирована на казахской речи; качество на других языках и аудио с иными характеристиками в предоставленных материалах не описано.

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

  • транскрибация казахской речи
  • распознавание казахской речи в аудиозаписях
  • создание текстовых расшифровок казахских записей
  • автоматическая расшифровка казахских речевых данных

Ограничения

Входное аудио рекомендуется подавать с частотой дискретизации 16 кГц; модель специализирована на казахском языке. В README приведён результат 19,65% без указания метрики, поэтому его интерпретация ограничена.

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

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

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

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

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

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

Открыть на Hugging Face

Wav2Vec2-Large-XLSR-53-Kazakh

Fine-tuned facebook/wav2vec2-large-xlsr-53 for Kazakh ASR using the Kazakh Speech Corpus v1.1

When using this model, make sure that your speech input is sampled at 16kHz.

Usage

The model can be used directly (without a language model) as follows:

import torch
import torchaudio
from datasets import load_dataset
from transformers import Wav2Vec2ForCTC, Wav2Vec2Processor

from utils import get_test_dataset

test_dataset = get_test_dataset("ISSAI_KSC_335RS_v1.1")

processor = Wav2Vec2Processor.from_pretrained("wav2vec2-large-xlsr-kazakh")
model = Wav2Vec2ForCTC.from_pretrained("wav2vec2-large-xlsr-kazakh")


# Preprocessing the datasets.
# We need to read the audio files as arrays
def speech_file_to_array_fn(batch):
    speech_array, sampling_rate = torchaudio.load(batch["path"])
    batch["speech"] = torchaudio.transforms.Resample(sampling_rate, 16_000)(speech_array).squeeze().numpy()
    return batch

test_dataset = test_dataset.map(speech_file_to_array_fn)
inputs = processor(test_dataset["speech"][:2], 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_ids = torch.argmax(logits, dim=-1)

print("Prediction:", processor.batch_decode(predicted_ids))
print("Reference:", test_dataset["sentence"][:2])

Evaluation

The model can be evaluated as follows on the test set of Kazakh Speech Corpus v1.1. To evaluate, download the archive, untar and pass the path to data to get_test_dataset as below:

import torch
import torchaudio
from datasets import load_dataset, load_metric
from transformers import Wav2Vec2ForCTC, Wav2Vec2Processor
import re

from utils import get_test_dataset

test_dataset = get_test_dataset("ISSAI_KSC_335RS_v1.1")
wer = load_metric("wer")

processor = Wav2Vec2Processor.from_pretrained("adilism/wav2vec2-large-xlsr-kazakh")
model = Wav2Vec2ForCTC.from_pretrained("adilism/wav2vec2-large-xlsr-kazakh")
model.to("cuda")


# Preprocessing the datasets.
# We need to read the audio files as arrays
def speech_file_to_array_fn(batch):
    batch["sentence"] = re.sub(chars_to_ignore_regex, '', batch["sentence"]).lower()
    speech_array, sampling_rate = torchaudio.load(batch["path"])
    batch["speech"] = torchaudio.transforms.Resample(sampling_rate, 16_000)(speech_array).squeeze().numpy()
    return batch

test_dataset = test_dataset.map(speech_file_to_array_fn)

def evaluate(batch):
    inputs = processor(batch["text"], sampling_rate=16_000, return_tensors="pt", padding=True)

    with torch.no_grad():
        logits = model(inputs.input_values.to("cuda"), attention_mask=inputs.attention_mask.to("cuda")).logits

    pred_ids = torch.argmax(logits, dim=-1)
    batch["pred_strings"] = processor.batch_decode(pred_ids)
    return batch

result = test_dataset.map(evaluate, batched=True, batch_size=8)

print("WER: {:2f}".format(100 * wer.compute(predictions=result["pred_strings"], references=result["sentence"])))

Test Result: 19.65%

Training

The Kazakh Speech Corpus v1.1 train dataset was used for training.

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

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

GPU в ailist

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

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

Подбираем GPU…

Класс архитектуры
Wav2Vec2ForCTC
Ревизия весов
b277ef8

0 моделей