chaotbot-suara-nola / validation.py
nolahardika's picture
Update validation.py
42dc04a verified
Raw
History Blame Contribute Delete
1.17 kB
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