sut0 commited on
Commit
aa6ab84
·
verified ·
1 Parent(s): a708c87

Upload README.md with huggingface_hub

Browse files
Files changed (1) hide show
  1. README.md +245 -6
README.md CHANGED
@@ -1,12 +1,251 @@
1
  ---
2
- title: Itelmen Asr Fold1
3
- emoji: 🌍
4
- colorFrom: red
5
- colorTo: red
6
  sdk: gradio
7
- sdk_version: 6.2.0
8
  app_file: app.py
9
  pinned: false
 
10
  ---
11
 
12
- Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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