File size: 3,737 Bytes
ef08a8e
78c30f0
4aa23ee
 
 
ef08a8e
78c30f0
ef08a8e
 
 
 
 
4aa23ee
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
---
title: Vocal Articulation Assessment v2
emoji: 🎀
colorFrom: purple
colorTo: pink
sdk: gradio
sdk_version: 5.0.0
app_file: app.py
pinned: false
license: mit
---

# 🎀 Sistem Penilaian Vokal Indonesia

Sistem penilaian artikulasi vokal bahasa Indonesia menggunakan deep learning dan audio signal processing.

## 🌟 Fitur

### Multi-Metric Assessment

1. **Clarity Score (40%)**: Kejelasan pengucapan berdasarkan model confidence
2. **Energy Score (25%)**: Kualitas volume dan energi suara
3. **Duration Score (15%)**: Kesesuaian durasi pengucapan
4. **Pitch Score (20%)**: Stabilitas pitch/nada suara

### Vokal yang Didukung

- **A** - Vokal terbuka depan
- **I** - Vokal tertutup depan
- **U** - Vokal tertutup belakang
- **E** - Vokal tengah depan
- **O** - Vokal tengah belakang

## πŸš€ Cara Menggunakan

### Di HuggingFace Spaces

1. Upload atau record audio Anda
2. Pilih target vokal (A, I, U, E, O)
3. (Optional) Set expected duration
4. Klik "Nilai Pengucapan"
5. Lihat hasil penilaian dengan grade dan feedback

### Local Development

```bash
# Install dependencies
pip install -r requirements.txt

# Run Gradio App
python app.py

# Or run FastAPI server
python api.py
```

## πŸ“Š Sistem Penilaian

| Grade | Score Range | Keterangan                                         |
| ----- | ----------- | -------------------------------------------------- |
| A     | 90-100      | Sempurna - pengucapan sangat jelas dan akurat      |
| B     | 80-89       | Bagus - pengucapan cukup jelas dengan minor errors |
| C     | 70-79       | Cukup - ada beberapa kesalahan                     |
| D     | 60-69       | Kurang - banyak kesalahan                          |
| E     | <60         | Perlu latihan lebih banyak                         |

## πŸ”§ Teknologi

- **Model**: HuBERT/Wav2Vec2 fine-tuned untuk klasifikasi vokal Indonesia
- **Backend**: FastAPI
- **Frontend**: Gradio
- **Audio Processing**: librosa, torchaudio
- **Deployment**: HuggingFace Spaces with ZeroGPU

## πŸ“ Struktur Project

```
.
β”œβ”€β”€ app.py                 # Gradio interface (HF Spaces)
β”œβ”€β”€ api.py                 # FastAPI server
β”œβ”€β”€ scoring_system.py      # Core scoring logic
β”œβ”€β”€ latihan_dasar.py       # Advanced articulation system
β”œβ”€β”€ model_vokal/           # Model checkpoint
β”‚   β”œβ”€β”€ config.json
β”‚   β”œβ”€β”€ model.safetensors
β”‚   └── preprocessor_config.json
β”œβ”€β”€ requirements.txt       # Dependencies
└── README.md             # Documentation
```

## 🎯 Roadmap

### Level 1: Pengenalan Vokal βœ…

- A, I, U, E, O (Current)

### Level 2-5: Expansi (Coming Soon)

- Level 2: Konsonan Dasar (BA, PA, DA, TA, dll)
- Level 3: Kombinasi Suku Kata (BA-BE-BI-BO-BU, dll)
- Level 4: Kata Sulit (PSIKOLOGI, STRATEGI, dll)
- Level 5: Kalimat Kompleks

## πŸ“ API Documentation

### FastAPI Endpoints

```bash
# Health check
GET /health

# Get supported labels
GET /labels

# Score single audio
POST /score
- audio: file (required)
- target_label: string (optional)
- expected_duration: float (optional)

# Batch scoring
POST /batch_score
- audios: files (required)
- target_labels: string (optional, comma-separated)
```

### Example cURL

```bash
curl -X POST "http://localhost:8000/score" \
  -F "[email protected]" \
  -F "target_label=a" \
  -F "expected_duration=0.8"
```

## 🀝 Contributing

Contributions are welcome! Terutama untuk:

- Menambah dataset vokal
- Implementasi Level 2-5
- Optimasi model
- UI/UX improvements

## πŸ“„ License

MIT License

## πŸ‘₯ Author

Dibuat untuk Latihan Dasar Artikulasi Vokal Indonesia

## πŸ™ Acknowledgments

- Model base: HuBERT/Wav2Vec2
- Audio processing: librosa
- Framework: FastAPI & Gradio
- Deployment: HuggingFace Spaces