🛠️

Content Admin Lite

Tải template Excel mẫu, upload file .xlsx để validate + convert, rồi tải JSON về commit.

🌱 Thông tin phát hành

Website phục vụ tự học cho học sinh tiểu học lớp 3–5, phát hành phiên bản 1.0 ngày 14/02/2026 cho bạn Đỗ Nhật Minh (Lớp SN3A, Trường Tiểu học Ngọc Linh) tự luyện tập.

❓ Liên hệ góp ý, nâng cao chất lượng Website?

Share liên hệ để hoàn thiện, bổ sung chất lượng các bài học:

📧 Email: bach.eps@gmail.com

📱 SĐT: 0969.5969.89 (Bố Nhật Minh)

🔊 English Audio CLI (Azure Speech)

Convert audio cho quiz_grammar.json + quiz_vocabulary.json theo mode incremental bằng manifest hash (engine: Azure Speech).

PHASE 5/6 Lite

1) Quick start (làm theo đúng thứ tự)

set AZURE_SPEECH_KEY=<your_key>set AZURE_SPEECH_REGION=<your_region> (CMD)

$env:AZURE_SPEECH_KEY="<your_key>"$env:AZURE_SPEECH_REGION="<your_region>" (PowerShell)

npm run audio:voices — xem voice preset nhanh

npm run audio:gen:dry — chạy thử, không ghi file

npm run audio:gen -- --voice=en-US-GuyNeural --rate=-8% --fill-rate=-20% --retry=4 --retry-delay-ms=2000 --sleep-ms=300 — generate thật toàn bộ pending

Nếu dữ liệu rất lớn, dùng batch: thêm --limit=20. Mỗi lần chạy sẽ lấy 20 câu pending tiếp theo (không lặp 20 câu đầu).

2) Ý nghĩa tham số dễ nhớ

  • --voice=en-US-GuyNeural: giọng Mỹ nam
  • --rate=-8%: chậm hơn 8% cho câu thường
  • --fill-rate=-20%: chậm hơn 20% cho câu fill_blank
  • --limit=20: chạy theo lô 20 câu pending/lần
  • --retry, --retry-delay-ms, --sleep-ms: giảm lỗi 403/rate-limit

3) Nếu gặp lỗi 403

  • Đổi voice: en-US-ChristopherNeural hoặc en-US-EricNeural
  • Giảm tải: thêm --limit=20 (batch theo pending)
  • Chờ 1–3 phút rồi chạy lại
  • Dùng retry/backoff: --retry=4 --retry-delay-ms=2000 --sleep-ms=300
  • Khi log báo Pending generate: 0 là đã xong toàn bộ.

4) Output + incremental policy

  • Không cần tự tạo thư mục audio (script tự tạo).
  • Audio file: public/audio/english/grammar/<id>.mp3public/audio/english/vocabulary/<id>.mp3
  • Manifest: content/english/audio_manifest.json
  • ID mới hoặc hash đổi → generate; hash không đổi + file tồn tại → skip
  • Prompt có blank dạng ____ hoặc bất kỳ chuỗi _{2,} đều được đọc bằng pause (không đọc "underscore"); riêng fill_blank đọc chậm hơn.
⬇️ Tải template Excel mẫuGồm 8 sheet: 2 English Quiz (Grammar, Vocabulary) + 4 Math Quiz + 2 Vietnamese MVP (Quiz + Learn)

🔍 Tùy chọn kiểm tra chất lượng:

Mặc định: tích hết. Bỏ tích rule không cần để bỏ qua cảnh báo.

Không ghi file lên server. Kết quả dùng để tải JSON về máy.