File size: 1,167 Bytes
47405c0
 
 
42dc04a
47405c0
 
42dc04a
 
 
47405c0
 
42dc04a
47405c0
 
 
42dc04a
47405c0
 
 
 
 
 
42dc04a
47405c0
 
 
42dc04a
 
 
 
47405c0
42dc04a
 
47405c0
42dc04a
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
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