accentbridge / verify_project.py
hodde's picture
Upload 9 files
54f637b verified
Raw History Blame Contribute Delete
2.14 kB
import os
import numpy as np
from accent_engine import phonetic_similarity, normalize_audio_safe
from slide_parser import extract_priority_keywords, extract_acronyms
def run_checks():
print("🔍 กำลังตรวจสอบความสมบูรณ์ของโปรเจกต์ทั้ง 9 ไฟล์...")
required = [
".gitignore", "requirements.txt", "slide_parser.py", "accent_engine.py",
"train_and_eval.py", "app.py", "make_demo_slides.py", "verify_project.py", "README.md"
]
missing = [f for f in required if not os.path.exists(f)]
assert not missing, f"❌ ขาดไฟล์: {missing}"
sim_homophone = phonetic_similarity("write", "right")
sim_l2_shift = phonetic_similarity("slight", "slide")
sim_unrelated = phonetic_similarity("fine", "file")
assert sim_homophone >= 0.95, "❌ พจนานุกรมเสียง CMU พ้องเสียงผิดพลาด"
assert sim_l2_shift >= 0.82 and sim_unrelated < 0.78, "❌ เกณฑ์แยกแยะเสียงสำเนียงเอเชียผิดพลาด"
print(f"✅ พจนานุกรมเสียงผ่าน! write↔right={sim_homophone:.2f} | slight↔slide={sim_l2_shift:.2f} | fine↔file={sim_unrelated:.2f}")
kws = extract_priority_keywords("Check API and WER on the right slide")
acs = extract_acronyms("Check API and WER on the right slide")
assert "api" in acs and "wer" in acs and "slide" in kws, "❌ ตัวสกัดคำศัพท์และตัวย่อผิดพลาด"
print("✅ ตัวสกัดสไลด์และตัวย่อผ่าน!")
dummy_audio = np.random.uniform(-0.1, 0.1, 16000).astype(np.float32)
dummy_audio[5] = 40.0
assert np.max(np.abs(normalize_audio_safe(dummy_audio, 16000))) <= 1.0
print("✅ ระบบป้องกันเสียงกระแทกไมค์ผ่าน!")
print("🎉 ทุกไฟล์พร้อม Commit ขึ้น GitHub 100% ค่ะ!")
if __name__ == "__main__":
run_checks()