Wav2Vec2-Ru-Child

Модель автоматического распознавания речи (ASR) для русского языка, дообученная на записях детского чтения.

Model Details

Architecture

  • Base model: wav2vec2-large
  • Architecture: Wav2Vec2ForCTC
  • Hidden size: 1024
  • Layers: 24 transformer layers
  • Attention heads: 16
  • Parameters: ~317M
  • Vocabulary: 37 токенов (33 буквы русского алфавита + 4 служебных)
  • CTC loss: mean reduction

Intended Use

Модель предназначена для:

  • Распознавания русской детской речи
  • Forced alignment (выравнивание текста по аудио на уровне букв)
  • Анализа произношения — выявление ошибок в детском чтении
  • Классификации качества произношения отдельных звуков (например, звука "Р")

How to Use

Speech Recognition

import torch
import librosa
from transformers import Wav2Vec2Processor, Wav2Vec2ForCTC

processor = Wav2Vec2Processor.from_pretrained("dysata/Wav2Vec2-Ru-Child")
model = Wav2Vec2ForCTC.from_pretrained("dysata/Wav2Vec2-Ru-Child")

audio, sr = librosa.load("audio.wav", sr=16000)

processed = processor([audio], sampling_rate=16000,
                       return_tensors="pt", padding="longest")

with torch.no_grad():
    logits = model(processed.input_values,
                   attention_mask=processed.attention_mask).logits

predicted_ids = torch.argmax(logits, dim=-1)
transcription = processor.decode(predicted_ids[0])
print(transcription)

Forced Alignment

Модель может использоваться для побуквенного выравнивания эталонного текста по аудио через CTC forced alignment (trellis + backtrack + merge_repeats). Это позволяет определить временные границы каждой буквы в записи.

Hidden States для классификации

with torch.no_grad():
    outputs = model(processed.input_values,
                    attention_mask=processed.attention_mask,
                    output_hidden_states=True, return_dict=True)
    last_hidden_state = outputs.hidden_states[-1]  # [batch, frames, 1024]

Вектора последнего скрытого слоя (1024-мерные) могут быть использованы как признаки для классификации качества произношения отдельных звуков.

Training

Модель дообучена на записях детского чтения на русском языке. Аудиозаписи преобразованы в формат WAV 16 кГц и вручную оттранскрибированы.

Technical Specifications

Parameter Value
Sample rate 16 kHz
Feature extractor 7-layer CNN
Transformer layers 24
Hidden size 1024
Vocab size 37
Precision float32
Format Safetensors

Vocabulary

Алфавит модели: <pad>, <s>, </s>, <unk>, | (разделитель слов), а-я (33 буквы русского алфавита).

Limitations

  • Модель обучена на детской речи и может показывать худшие результаты на взрослой речи
  • Только русский язык
  • Оптимальное качество на записях в формате WAV 16 кГц

Citation

@misc{wav2vec2-ru-child,
  author = {Павел Рудич},
  title = {Wav2Vec2-Ru-Child: Russian Children's Speech Recognition Model},
  year = {2025},
  publisher = {Hugging Face},
  url = {https://huggingface.co/dysata/Wav2Vec2-Ru-Child}
}

Funding

Фонд содействия инновациям (fasie).

Downloads last month
388
Safetensors
Model size
0.3B params
Tensor type
F32
·
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Dataset used to train dysata/Wav2Vec2-Ru-Child