Spaces:
Sleeping
Sleeping
| 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") | |
| 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)}") |