Spaces:
Sleeping
Sleeping
File size: 2,466 Bytes
ed1ec0d 6b98317 3955363 ed1ec0d 3955363 ed1ec0d 6b98317 ed1ec0d 6b98317 ed1ec0d 6b98317 ed1ec0d 6b98317 8f81deb ed1ec0d 3955363 6b98317 ed1ec0d 6b98317 ed1ec0d 3955363 ed1ec0d 6b98317 ed1ec0d 6b98317 3955363 6b98317 3955363 ed1ec0d 3955363 ed1ec0d 3955363 6b98317 ed1ec0d 6b98317 | 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 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 | import streamlit as st
import pandas as pd
import numpy as np
from sklearn.feature_extraction.text import CountVectorizer
from sklearn.naive_bayes import MultinomialNB
from deep_translator import GoogleTranslator
from gtts import gTTS
import os
# Sayfa Ayarları (Mobil uyumlu)
st.set_page_config(page_title="ML Dil Asistanı", layout="centered")
@st.cache_resource
def train_ml_model():
# 1. Veri Yükleme
data = pd.read_csv("LangDetect.csv")
# 2. ML Hazırlık
cv = CountVectorizer()
X = cv.fit_transform(data["Text"])
y = data["language"]
# 3. Model Eğitimi (Naive Bayes)
model = MultinomialNB()
model.fit(X, y)
return model, cv
# Modeli ve Vectorizer'ı bir kez eğitip belleğe alıyoruz
model, cv = train_ml_model()
st.title("🎓 ML Tabanlı Dil Tespit & Çeviri")
st.markdown("Bu uygulama, Naive Bias kullanarak dil tespit eder")
# Kullanıcı Girişi
user_input = st.text_area("Analiz edilecek metni girin:", height=150, placeholder="Örn: Merhaba, Helloo. ")
if user_input:
# 1. Aşama: Manuel Eğitilen ML Modeli ile Dil Tespiti
with st.spinner('ML Modeli dili tahmin ediyor...'):
input_vector = cv.transform([user_input]).toarray()
prediction = model.predict(input_vector)[0]
st.info(f"**ML Model Tahmini:** {prediction}")
# 2. Aşama: Çeviri Hedefi Seçimi
target_option = st.selectbox(
"Hangi dile çevrilsin?",
["Türkçe", "İngilizce", "Almanca"]
)
lang_map = {"Türkçe": "tr", "İngilizce": "en", "Almanca": "de"}
target_lang = lang_map[target_option]
if st.button("Çevir ve Seslendir"):
with st.spinner('İşleniyor...'):
try:
# Çeviri işlemi (Python 3.13 uyumlu modern yöntem)
translated_text = GoogleTranslator(source='auto', target=target_lang).translate(user_input)
st.success(f"**{target_option} Çeviri:** {translated_text}")
# 3. Aşama: Seslendirme
tts = gTTS(text=translated_text, lang=target_lang)
filename = "output.mp3"
tts.save(filename)
with open(filename, "rb") as f:
st.audio(f.read(), format="audio/mp3")
os.remove(filename) # Geçici dosyayı temizle
except Exception as e:
st.error(f"Bir hata oluşti: {str(e)}") |