Spaces:
Running
Running
Upload README.md with huggingface_hub
Browse files
README.md
CHANGED
|
@@ -1,12 +1,251 @@
|
|
| 1 |
---
|
| 2 |
-
title: Itelmen
|
| 3 |
-
emoji:
|
| 4 |
-
colorFrom:
|
| 5 |
-
colorTo:
|
| 6 |
sdk: gradio
|
| 7 |
-
sdk_version:
|
| 8 |
app_file: app.py
|
| 9 |
pinned: false
|
|
|
|
| 10 |
---
|
| 11 |
|
| 12 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
---
|
| 2 |
+
title: Itelmen ASR Fold 1
|
| 3 |
+
emoji: 🎙️
|
| 4 |
+
colorFrom: green
|
| 5 |
+
colorTo: blue
|
| 6 |
sdk: gradio
|
| 7 |
+
sdk_version: 4.0.0
|
| 8 |
app_file: app.py
|
| 9 |
pinned: false
|
| 10 |
+
license: mit
|
| 11 |
---
|
| 12 |
|
| 13 |
+
# 🎙️ イテリメン語 自動音声認識システム (Fold 1 - 最良モデル)
|
| 14 |
+
|
| 15 |
+
イテリメン語(絶滅危惧言語)の音声を文字起こしするAIシステムです。
|
| 16 |
+
|
| 17 |
+
## 🏆 性能指標(Fold 1 最良モデル)
|
| 18 |
+
|
| 19 |
+
| メトリクス | スコア | 評価 |
|
| 20 |
+
|----------|--------|------|
|
| 21 |
+
| **CER (文字誤り率)** | **5.23%** | 🟢 優秀 |
|
| 22 |
+
| **Epoch** | 54 | Early stopped |
|
| 23 |
+
| **訓練データ** | 240サンプル | Fold 1 training set |
|
| 24 |
+
| **評価方法** | K-fold CV (Fold 1/3) | 話者独立 |
|
| 25 |
+
|
| 26 |
+
## 📈 改善の歴史
|
| 27 |
+
|
| 28 |
+
| モデル | CER | 改善幅 | ステータス |
|
| 29 |
+
|--------|-----|--------|-----------|
|
| 30 |
+
| **Fold 1(本モデル)** | **5.23%** | **-23.31pt** | ✅ **最良** |
|
| 31 |
+
| Fold 0 | 9.40% | -19.14pt | ✅ 完了 |
|
| 32 |
+
| パイロット版 (Phase 6) | 28.54% | baseline | ⚠️ 旧版 |
|
| 33 |
+
| ゼロショット | 53.06% | - | 📊 参考 |
|
| 34 |
+
|
| 35 |
+
**総改善**: パイロット版から **81.7%相対改善** (28.54% → 5.23%)
|
| 36 |
+
|
| 37 |
+
## ✨ 新機能
|
| 38 |
+
|
| 39 |
+
### 文字レベル差分表示(ハイライト機能)
|
| 40 |
+
|
| 41 |
+
正解テキストと転写結果の差異を可視化:
|
| 42 |
+
|
| 43 |
+
- 🟢 **緑色**: 正しく認識された文字
|
| 44 |
+
- 🔴 **赤色(波線)**: 誤って認識された文字(置換)
|
| 45 |
+
- 🔵 **青色(下線)**: 余計に挿入された文字
|
| 46 |
+
- 🟠 **橙色(取り消し線)**: 欠損した文字
|
| 47 |
+
|
| 48 |
+
この機能により、モデルの誤り傾向を直感的に把握できます。
|
| 49 |
+
|
| 50 |
+
## 🔬 技術詳細
|
| 51 |
+
|
| 52 |
+
### モデルアーキテクチャ
|
| 53 |
+
- **ベースモデル**: facebook/mms-1b-all (Massively Multilingual Speech)
|
| 54 |
+
- **パラメータ数**: 1.4B (14億パラメータ)
|
| 55 |
+
- **アーキテクチャ**: Wav2Vec2 + CTC (Connectionist Temporal Classification)
|
| 56 |
+
- **入力**: 16kHz モノラル音声
|
| 57 |
+
- **出力**: IPA(国際音声記号)テキスト
|
| 58 |
+
|
| 59 |
+
### トレーニング詳細(Fold 1)
|
| 60 |
+
- **訓練サンプル**: 240 (Fold 1 training set)
|
| 61 |
+
- **検証サンプル**: 120 (Fold 1 validation set)
|
| 62 |
+
- **データ拡張**: Speed perturbation (0.9x, 1.1x)
|
| 63 |
+
- **Epochs**: 57 (early stopped at 54)
|
| 64 |
+
- **Learning rate**: 3e-5
|
| 65 |
+
- **Batch size**: 16 (effective, with gradient accumulation)
|
| 66 |
+
- **Optimizer**: AdamW
|
| 67 |
+
- **Hardware**: NVIDIA T600 (4GB VRAM)
|
| 68 |
+
- **Training time**: ~3 days
|
| 69 |
+
|
| 70 |
+
### 評価
|
| 71 |
+
- **評価方法**: 3-fold speaker-independent cross-validation
|
| 72 |
+
- **デコーディング**: Greedy decoding
|
| 73 |
+
- **メトリクス**: CER, WER (jiwer)
|
| 74 |
+
|
| 75 |
+
## 📖 イテリメン語について
|
| 76 |
+
|
| 77 |
+
### 言語情報
|
| 78 |
+
- **名称**: イテリメン語 (Itelmen / Итэнмэн)
|
| 79 |
+
- **ISO 639-3**: itl
|
| 80 |
+
- **地域**: ロシア・カムチャツカ半島
|
| 81 |
+
- **言語系統**: チュクチ・カムチャツカ語族
|
| 82 |
+
- **話者数**: 約100人以下(2010年国勢調査)
|
| 83 |
+
- **UNESCO分類**: 極めて深刻な危機 (Critically Endangered)
|
| 84 |
+
|
| 85 |
+
### 言語的特徴
|
| 86 |
+
- **音韻**: 子音クラスター、口蓋化、咽頭化
|
| 87 |
+
- **形態**: 抱合語、複雑な動詞活用
|
| 88 |
+
- **文字**: キリル文字、IPA
|
| 89 |
+
- **語順**: SOV(主語-目的語-動詞)
|
| 90 |
+
|
| 91 |
+
### 保存活動
|
| 92 |
+
このプロジェクトは、絶滅危惧言語の保存と記録を支援することを目的としています。
|
| 93 |
+
音声認識技術により、言語資料のデジタル化と検索を容易にし、言語復興活動を支援します。
|
| 94 |
+
|
| 95 |
+
## 🚀 使い方
|
| 96 |
+
|
| 97 |
+
### Webインターフェース
|
| 98 |
+
|
| 99 |
+
1. **音声をアップロード**
|
| 100 |
+
- ファイルをアップロード、または
|
| 101 |
+
- マイクで録音
|
| 102 |
+
|
| 103 |
+
2. **正解テキストを入力(オプション)**
|
| 104 |
+
- CER/WERを計算したい場合は入力
|
| 105 |
+
- 差分表示機能を使用
|
| 106 |
+
|
| 107 |
+
3. **文字起こし実行**
|
| 108 |
+
- ボタンをクリックして処理開始
|
| 109 |
+
|
| 110 |
+
4. **結果を確認**
|
| 111 |
+
- 文字起こしテキスト
|
| 112 |
+
- メトリクス(正解テキストを入力した場合)
|
| 113 |
+
- 文字レベル差分表示(ハイライト)
|
| 114 |
+
|
| 115 |
+
### Python APIで使用
|
| 116 |
+
|
| 117 |
+
```python
|
| 118 |
+
from transformers import Wav2Vec2ForCTC, Wav2Vec2Processor
|
| 119 |
+
import torchaudio
|
| 120 |
+
|
| 121 |
+
# モデルをロード
|
| 122 |
+
model_name = "sut0/mms-1b-itelmen-fold1"
|
| 123 |
+
processor = Wav2Vec2Processor.from_pretrained(model_name)
|
| 124 |
+
model = Wav2Vec2ForCTC.from_pretrained(model_name)
|
| 125 |
+
|
| 126 |
+
# 音声をロード
|
| 127 |
+
audio, sr = torchaudio.load("path/to/audio.wav")
|
| 128 |
+
if sr != 16000:
|
| 129 |
+
resampler = torchaudio.transforms.Resample(sr, 16000)
|
| 130 |
+
audio = resampler(audio)
|
| 131 |
+
|
| 132 |
+
# 転写
|
| 133 |
+
inputs = processor(audio.squeeze(), sampling_rate=16000, return_tensors="pt", padding=True)
|
| 134 |
+
with torch.no_grad():
|
| 135 |
+
logits = model(inputs.input_values).logits
|
| 136 |
+
|
| 137 |
+
predicted_ids = torch.argmax(logits, dim=-1)
|
| 138 |
+
transcription = processor.batch_decode(predicted_ids)[0]
|
| 139 |
+
print(transcription)
|
| 140 |
+
```
|
| 141 |
+
|
| 142 |
+
### 入力形式
|
| 143 |
+
- **対応フォーマット**: WAV, MP3, FLAC, OGG
|
| 144 |
+
- **推奨サンプルレート**: 16kHz
|
| 145 |
+
- **推奨長さ**: 1-30秒
|
| 146 |
+
|
| 147 |
+
### 出力形式
|
| 148 |
+
- **テキスト**: IPA(国際音声記号)
|
| 149 |
+
- **例**: `tinuʔn nineʔn nineʔn`
|
| 150 |
+
|
| 151 |
+
## 📊 詳細な性能分析
|
| 152 |
+
|
| 153 |
+
### Fold別性能比較
|
| 154 |
+
|
| 155 |
+
| Fold | 訓練サンプル | 検証サンプル | Best Epoch | Best CER | ステータス |
|
| 156 |
+
|------|-------------|-------------|-----------|----------|-----------|
|
| 157 |
+
| Fold 0 | 240 | 120 | 56 | 9.40% | ✅ 完了 |
|
| 158 |
+
| **Fold 1** | **240** | **120** | **54** | **5.23%** | ✅ **完了(最良)** |
|
| 159 |
+
| Fold 2 | 240 | 120 | TBD | TBD | ⏳ 実行中 |
|
| 160 |
+
|
| 161 |
+
### エラー分析
|
| 162 |
+
|
| 163 |
+
主なエラー原因(Fold 1分析):
|
| 164 |
+
1. **空白認識**: 単語境界の誤認識
|
| 165 |
+
2. **母音混同**: 類似音素の誤認識(e ↔ n ↔ a)
|
| 166 |
+
3. **IPA特殊文字**: ʔ, ʲ, ɬ等の認識困難
|
| 167 |
+
4. **子音混同**: χ ↔ x ↔ k
|
| 168 |
+
|
| 169 |
+
## 🛠️ 開発履歴
|
| 170 |
+
|
| 171 |
+
### Phase 7-4: Full-scale Experiments (2025-12)
|
| 172 |
+
- ✅ Experiment 5, Trial 1/49
|
| 173 |
+
- ✅ 3-fold cross-validation
|
| 174 |
+
- ✅ Fold 0 completed (CER 9.40%)
|
| 175 |
+
- ✅ **Fold 1 completed (CER 5.23%)** ← 本モデル
|
| 176 |
+
- ⏳ Fold 2 in progress
|
| 177 |
+
- 🔄 48 trials remaining
|
| 178 |
+
|
| 179 |
+
### 今後の計画
|
| 180 |
+
- 🔄 Fold 2, Fold 3 完了
|
| 181 |
+
- 🔄 3-fold平均モデルのリリース
|
| 182 |
+
- 🔄 残り48 trialsの実行
|
| 183 |
+
- 🔄 Whisper, XLS-Rとの比較実験
|
| 184 |
+
|
| 185 |
+
## 📚 参考文献
|
| 186 |
+
|
| 187 |
+
### 音声認識
|
| 188 |
+
- [Facebook MMS: Scaling Speech Technology to 1000+ Languages](https://ai.meta.com/blog/multilingual-model-speech-recognition/)
|
| 189 |
+
- [Wav2Vec2: A Framework for Self-Supervised Learning of Speech Representations](https://arxiv.org/abs/2006.11477)
|
| 190 |
+
- [SpecAugment: A Simple Data Augmentation Method for ASR](https://arxiv.org/abs/1904.08779)
|
| 191 |
+
|
| 192 |
+
### イテリメン語
|
| 193 |
+
- [ELAR - Endangered Languages Archive](https://elar.soas.ac.uk/)
|
| 194 |
+
- [Glottolog - Itelmen](https://glottolog.org/resource/languoid/id/itel1242)
|
| 195 |
+
- [UNESCO Atlas of the World's Languages in Danger](http://www.unesco.org/languages-atlas/)
|
| 196 |
+
|
| 197 |
+
## 🤝 貢献
|
| 198 |
+
|
| 199 |
+
このプロジェクトはオープンソースです。改善提案やバグ報告を歓迎します。
|
| 200 |
+
|
| 201 |
+
### できること
|
| 202 |
+
- 音声データの提供
|
| 203 |
+
- モデルの改善提案
|
| 204 |
+
- バグ報告
|
| 205 |
+
- ドキュメントの改善
|
| 206 |
+
|
| 207 |
+
## 📄 ライセンス
|
| 208 |
+
|
| 209 |
+
MIT License
|
| 210 |
+
|
| 211 |
+
モデルはfacebook/mms-1b-allをファインチューニングしたものです。
|
| 212 |
+
ベースモデルのライセンスに従ってください。
|
| 213 |
+
|
| 214 |
+
## 📧 お問い合わせ
|
| 215 |
+
|
| 216 |
+
質問やフィードバックは、Hugging Face Discussionsでお願いします。
|
| 217 |
+
|
| 218 |
+
---
|
| 219 |
+
|
| 220 |
+
**プロジェクト**: イテリメン語ASRシステム Phase 7
|
| 221 |
+
**作成**: 2025年12月
|
| 222 |
+
**モデルバージョン**: Fold 1 (Experiment 5, Trial 1/49)
|
| 223 |
+
**CER**: 5.23% (K-fold CV Fold 1)
|
| 224 |
+
**最終更新**: 2025-12-24
|
| 225 |
+
**ステータス**: Fold 1 完了 ✅ | Fold 2 実行中 ⏳
|
| 226 |
+
|
| 227 |
+
---
|
| 228 |
+
|
| 229 |
+
## 🎓 引用
|
| 230 |
+
|
| 231 |
+
このシステムを研究で使用する場合は、以下のように引用してください:
|
| 232 |
+
|
| 233 |
+
```bibtex
|
| 234 |
+
@misc{itelmen-asr-fold1-2025,
|
| 235 |
+
title={Itelmen Language Automatic Speech Recognition System (Fold 1)},
|
| 236 |
+
author={sut0},
|
| 237 |
+
year={2025},
|
| 238 |
+
publisher={Hugging Face},
|
| 239 |
+
howpublished={\url{https://huggingface.co/spaces/sut0/itelmen-asr-fold1}},
|
| 240 |
+
note={CER: 5.23\%, 3-fold cross-validation Fold 1}
|
| 241 |
+
}
|
| 242 |
+
```
|
| 243 |
+
|
| 244 |
+
---
|
| 245 |
+
|
| 246 |
+
**🤖 Generated with [Claude Code](https://claude.com/claude-code)**
|
| 247 |
+
|
| 248 |
+
**作成者**: Claude Sonnet 4.5
|
| 249 |
+
**デプロイ先**: Hugging Face Spaces
|
| 250 |
+
**モデルリポジトリ**: https://huggingface.co/sut0/mms-1b-itelmen-fold1
|
| 251 |
+
**Space URL**: https://huggingface.co/spaces/sut0/itelmen-asr-fold1
|