TamerTokgoz commited on
Commit
3955363
·
verified ·
1 Parent(s): 645c6c4

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +30 -25
app.py CHANGED
@@ -1,35 +1,36 @@
1
  import streamlit as st
2
  from transformers import pipeline
3
- from googletrans import Translator
4
  from gtts import gTTS
5
  import base64
 
6
 
7
- # Sayfa Ayarları (Mobil uyumlu)
8
  st.set_page_config(page_title="AI Dil Asistanı", layout="centered")
9
 
10
  @st.cache_resource
11
  def load_models():
12
- # Dil tespiti için özel eğitilmiş model
 
13
  lang_detector = pipeline("text-classification", model="papluca/xlm-roberta-base-language-detection")
14
  return lang_detector
15
 
16
  detector = load_models()
17
- translator = Translator()
18
 
19
- st.title("🤖 Yapay Zeka Dil Asistanı")
20
- st.markdown("Herhangi bir dilde metin girin, sistemi otomatik tanısın ve çevirsin.")
21
 
22
- # Metin Girişi
23
- user_input = st.text_area("Metni buraya yazın:", height=150)
24
 
25
  if user_input:
26
- # 1. Aşama: Dil Tespiti (Hazır Model ile)
27
- detection = detector(user_input)[0]
28
- detected_lang_code = detection['label']
29
-
30
- st.info(f"**Tespit Edilen Dil Kodu:** {detected_lang_code.upper()} (Güven Skoru: %{round(detection['score']*100, 2)})")
31
 
32
- # 2. Aşama: Çeviri Seçimi
33
  target_option = st.selectbox(
34
  "Hangi dile çevrilsin?",
35
  ["Türkçe", "İngilizce", "Almanca"]
@@ -39,19 +40,23 @@ if user_input:
39
  target_lang = lang_map[target_option]
40
 
41
  if st.button("Çevir ve Seslendir"):
42
- with st.spinner('İşleniyor...'):
43
  try:
44
- # Çeviri işlemi
45
- translation = translator.translate(user_input, dest=target_lang)
46
- st.success(f"**{target_option} Çeviri:** {translation.text}")
47
-
48
- # 3. Aşama: Seslendirme
49
- tts = gTTS(text=translation.text, lang=target_lang)
50
- tts.save("voicemail.mp3")
 
51
 
52
- # Ses dosyasını oynat
53
- with open("voicemail.mp3", "rb") as f:
54
  st.audio(f.read(), format="audio/mp3")
 
 
 
55
 
56
  except Exception as e:
57
- st.error("Bir hata oluştu, lütfen tekrar deneyin.")
 
1
  import streamlit as st
2
  from transformers import pipeline
3
+ from deep_translator import GoogleTranslator
4
  from gtts import gTTS
5
  import base64
6
+ import os
7
 
8
+ # Sayfa Ayarları (Sidebar kullanılmadı, mobil uyumlu tasarım)
9
  st.set_page_config(page_title="AI Dil Asistanı", layout="centered")
10
 
11
  @st.cache_resource
12
  def load_models():
13
+ # Hugging Face üzerinden dil tespiti yapan yüksek doğruluklu model
14
+ # CSV gerektirmez, bağlamsal analiz yapar
15
  lang_detector = pipeline("text-classification", model="papluca/xlm-roberta-base-language-detection")
16
  return lang_detector
17
 
18
  detector = load_models()
 
19
 
20
+ st.title("🌐 AI Dil Tespit & Çeviri")
21
+ st.markdown("Herhangi bir dilde metin girin; sistem dili otomatik tanıyacak, çevirecek ve seslendirecektir.")
22
 
23
+ # Kullanıcı Girişi
24
+ user_input = st.text_area("Metni buraya yazın:", height=150, placeholder="Örn: Merhaba, bu projeyi Hugging Face için geliştiriyorum.")
25
 
26
  if user_input:
27
+ # 1. Aşama: Dil Tespiti
28
+ with st.spinner('Dil analiz ediliyor...'):
29
+ detection = detector(user_input)[0]
30
+ detected_lang_code = detection['label']
31
+ st.info(f"**Tespit Edilen Dil:** {detected_lang_code.upper()} (Güven Skoru: %{round(detection['score']*100, 2)})")
32
 
33
+ # 2. Aşama: Çeviri Hedefi Seçimi
34
  target_option = st.selectbox(
35
  "Hangi dile çevrilsin?",
36
  ["Türkçe", "İngilizce", "Almanca"]
 
40
  target_lang = lang_map[target_option]
41
 
42
  if st.button("Çevir ve Seslendir"):
43
+ with st.spinner('Çeviri ve ses oluşturuluyor...'):
44
  try:
45
+ # Çeviri işlemi (deep-translator ile Python 3.13 uyumlu)
46
+ translated_text = GoogleTranslator(source='auto', target=target_lang).translate(user_input)
47
+ st.success(f"**{target_option} Çeviri:** {translated_text}")
48
+
49
+ # 3. Aşama: Seslendirme (gTTS)
50
+ tts = gTTS(text=translated_text, lang=target_lang)
51
+ filename = "output.mp3"
52
+ tts.save(filename)
53
 
54
+ # Ses dosyasını Streamlit arayüzünde oynat
55
+ with open(filename, "rb") as f:
56
  st.audio(f.read(), format="audio/mp3")
57
+
58
+ # Geçici dosyayı temizle
59
+ os.remove(filename)
60
 
61
  except Exception as e:
62
+ st.error(f"Bir hata oluştu: {str(e)}")