Files
Wav2Vec2-Ru-Child/README.md
ModelHub XC 88c6578198 初始化项目,由ModelHub XC社区提供模型
Model: dysata/Wav2Vec2-Ru-Child
Source: Original Platform
2026-05-08 11:13:06 +08:00

131 lines
4.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
language:
- ru
license: mit
library_name: transformers
pipeline_tag: automatic-speech-recognition
tags:
- wav2vec2
- speech
- russian
- children
- ctc
- forced-alignment
- pronunciation
- phonetics
datasets:
- dysata/rwords
model-index:
- name: Wav2Vec2-Ru-Child
results: []
---
# 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
```python
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 для классификации
```python
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
```bibtex
@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).