🎙️ Chấm phát âm — Acoustic Likelihood (wav2vec 2.0 + CTC)

Forced-alignment audio ↔ text chuẩn qua wav2vec2 → trung bình log-probability từng frame ứng với từng từ. Điểm = exp(avg_log_prob) × 100 — càng cao càng khớp phân phối âm học bản xứ. Nghe mẫu qua TTS server → ghi âm → sửa lời → chấm lại → hỏi Nemotron 3 Ultra.

⚙️ Cấu hình

Công thức chấm điểm

1. wav2vec2-base-960h → logits [T frames × Vocab]log_softmax.
2. Viterbi forced alignment CTC (blank + stay/+1/+2) ép audio khớp text chuẩn.
3. Mỗi từ: avg_ll = mean(log p(frame|char))điểm = eavg_ll×100.
4. Overall = trung bình các từ. Kèm CTC loss tham khảo (càng thấp càng khớp).

1️⃣ Câu mẫu (text chuẩn)

Nghe thử cả 4 giọng (cùng 1 câu, speed 0.9 — file mẫu có sẵn, không cần TTS server):

2️⃣ Ghi âm giọng bạn

00:00
Ghi âm xong bấm đây — whisper chỉ ghi raw, chưa chấm.

Mic → encode WAV 16kHz mono ngay trên trình duyệt. Whisper (:8001) trả bản raw → bạn sửa ở bước 3 → mới bấm chấm. Tối đa ~30s.

3️⃣ Lời bạn nói (bản raw whisper → bạn sửa tay) → chấm điểm wav2vec2

Chưa có bản raw — ghi âm rồi bấm “Whisper: nhận dạng”, hoặc tự gõ.
Đổi text rồi bấm chấm lại — không cần ghi âm lại.

4️⃣ Lời khuyên AI — Nemotron 3 Ultra

Nâng cao: temperature / max tokens

Đổi mặc định vĩnh viễn bằng ADVICE_TEMPERATURE / ADVICE_MAX_TOKENS / NEMOTRON_MODEL / ADVICE_SYSTEM_PROMPT trong .env (xem .env.example).

Dùng điểm wav2vec2 + transcript đã sửa.
Chưa có — bấm chấm điểm trước, rồi xin lời khuyên.