import re from langdetect import detect # Bersihkan teks dari filler dan simbol def clean_text(text): text = text.lower() text = re.sub(r"\b(uh|um|eee|hmm|ah|eh|hmm)\b", "", text) # hapus filler umum text = re.sub(r"[^a-zA-Z\s]", "", text) # hapus simbol text = re.sub(r"\s+", " ", text).strip() # rapikan spasi return text # Cek apakah teks cukup panjang def is_valid_length(text, min_words=3): return len(text.split()) >= min_words # Cek apakah teks dalam Bahasa Indonesia def is_indonesian(text): try: return detect(text) == "id" except: return False # Fungsi utama validasi def validate_transcription(text): if not text or text.strip() == "": return False, "Maaf, saya tidak bisa mendengar dengan jelas. Bisa diulang lagi?" cleaned = clean_text(text) if not is_valid_length(cleaned): return False, "Terima kasih. Boleh ceritakan sedikit lebih panjang agar saya bisa memahami dengan lebih baik?" if not is_indonesian(cleaned): return False, "Maaf, saya hanya bisa memahami Bahasa Indonesia untuk saat ini." return True, cleaned