canksdi commited on
Commit
0d2b323
·
verified ·
1 Parent(s): 39d7dde

Upload 3 files

Browse files
Files changed (3) hide show
  1. README.md +6 -6
  2. app.py +23 -16
  3. requirements.txt +1 -1
README.md CHANGED
@@ -11,27 +11,27 @@ pinned: false
11
 
12
  # MoodF - Duygusal Destek Asistanı
13
 
14
- Bu uygulama, kullanıcıların duygusal durumlarını analiz edip destekleyici yanıtlar veren ve bunları gerçek insan sesine yakın bir kalitede seslendiren gelişmiş bir yapay zeka asistanıdır.
15
 
16
  ## Özellikler
17
 
18
  - 🧠 **Duygu analizi** - Kullanıcının yazısındaki duygu durumunu tespit eder
19
  - 💬 **Gerçek zamanlı metin üretimi** - Türkçe dil modeli kullanarak özgün destekleyici mesajlar üretir
20
- - 🔊 **İnsan benzeri ses** - Meta AI tarafından geliştirilen VITS teknolojisi ile doğal insan sesine çok yakın kalitede seslendirme
21
 
22
  ## Nasıl Kullanılır
23
 
24
  1. Duygularınızı veya düşüncelerinizi metin kutusuna yazın
25
  2. "Gönder" düğmesine tıklayın
26
- 3. MoodF size özgün bir destekleyici yanıt verecek ve bunu gerçeğe çok yakın bir sesle seslendirecektir
27
 
28
  ## Teknik Detaylar
29
 
30
- Bu proje iki farklı yapay zeka modelini ve Meta'nın ses teknolojisini bir araya getirir:
31
 
32
  - **Duygu Analizi**: DistilBERT modeli
33
  - **Metin Üretme**: ytu-ce-cosmos/turkish-gpt2 - Yıldız Teknik Üniversitesi tarafından Türkçe dili için özel olarak eğitilmiş metin üretme modeli
34
- - **Seslendirme**: XTTS v2 (Coqui TTS) - Meta AI teknolojisiyle geliştirilmiş, insan sesine çok yakın kalitede çokdilli seslendirme yapan gelişmiş model
35
 
36
  ## API Kullanımı
37
 
@@ -65,5 +65,5 @@ numpy<2.0.0
65
  protobuf==3.20.3
66
  tqdm
67
  sentencepiece
68
- TTS
69
  ```
 
11
 
12
  # MoodF - Duygusal Destek Asistanı
13
 
14
+ Bu uygulama, kullanıcıların duygusal durumlarını analiz edip destekleyici yanıtlar veren ve bunları doğal insan sesine yakın bir kalitede seslendiren gelişmiş bir yapay zeka asistanıdır.
15
 
16
  ## Özellikler
17
 
18
  - 🧠 **Duygu analizi** - Kullanıcının yazısındaki duygu durumunu tespit eder
19
  - 💬 **Gerçek zamanlı metin üretimi** - Türkçe dil modeli kullanarak özgün destekleyici mesajlar üretir
20
+ - 🔊 **Doğal ses kalitesi** - Microsoft Edge TTS teknolojisi ile insan sesine çok yakın kalitede Türkçe seslendirme
21
 
22
  ## Nasıl Kullanılır
23
 
24
  1. Duygularınızı veya düşüncelerinizi metin kutusuna yazın
25
  2. "Gönder" düğmesine tıklayın
26
+ 3. MoodF size özgün bir destekleyici yanıt verecek ve bunu doğal bir sesle seslendirecektir
27
 
28
  ## Teknik Detaylar
29
 
30
+ Bu proje iki farklı yapay zeka modelini ve Microsoft'un ses teknolojisini bir araya getirir:
31
 
32
  - **Duygu Analizi**: DistilBERT modeli
33
  - **Metin Üretme**: ytu-ce-cosmos/turkish-gpt2 - Yıldız Teknik Üniversitesi tarafından Türkçe dili için özel olarak eğitilmiş metin üretme modeli
34
+ - **Seslendirme**: Microsoft Edge TTS - Türkçe dahil birçok dilde doğal ve akıcı sesler üreten, Microsoft'un Neural TTS teknolojisi
35
 
36
  ## API Kullanımı
37
 
 
65
  protobuf==3.20.3
66
  tqdm
67
  sentencepiece
68
+ edge-tts
69
  ```
app.py CHANGED
@@ -3,7 +3,8 @@ from transformers import pipeline, AutoModelForCausalLM, AutoTokenizer
3
  import torch
4
  import os
5
  import time
6
- from TTS.api import TTS
 
7
 
8
  # Daha az bellek kullanımı için
9
  torch.set_grad_enabled(False)
@@ -21,11 +22,8 @@ tokenizer = AutoTokenizer.from_pretrained("ytu-ce-cosmos/turkish-gpt2")
21
  text_model = AutoModelForCausalLM.from_pretrained("ytu-ce-cosmos/turkish-gpt2")
22
  print("Metin modeli yüklendi.")
23
 
24
- # TTS modeli yükleniyor
25
- print("TTS modeli yükleniyor...")
26
- # Facebook/Meta'nın yüksek kaliteli kadın sesi modelini kullanacağız
27
- tts = TTS("tts_models/multilingual/multi-dataset/xtts_v2")
28
- print("TTS modeli yüklendi.")
29
 
30
  def generate_turkish_text(prompt, max_length=100):
31
  """Türkçe metin üretme fonksiyonu"""
@@ -44,22 +42,31 @@ def generate_turkish_text(prompt, max_length=100):
44
  generated_text = generated_text[len(prompt):].strip()
45
  return generated_text
46
 
47
- def create_speech(text):
48
- """Facebook/Meta'nın VITS modeli ile doğal insan sesi üret"""
49
  try:
50
- audio_path = "response.wav"
51
- # Türkçe metin için yüksek kaliteli doğal ses sentezi
52
- # speaker_wav seçeneği yoksa basit halini kullanıyoruz
53
- tts.tts_to_file(text=text, file_path=audio_path, language="tr")
54
  return audio_path
55
  except Exception as e:
56
  print(f"Ses oluşturma hatası: {str(e)}")
57
- # Hata durumunda log al
58
- print(f"Detaylı hata: {e}")
 
 
 
 
 
 
 
 
 
 
59
  # Boş ses dosyası oluştur
60
- with open("empty.wav", "wb") as f:
61
  f.write(b"")
62
- return "empty.wav"
63
 
64
  def process_input(text):
65
  try:
 
3
  import torch
4
  import os
5
  import time
6
+ import asyncio
7
+ import edge_tts
8
 
9
  # Daha az bellek kullanımı için
10
  torch.set_grad_enabled(False)
 
22
  text_model = AutoModelForCausalLM.from_pretrained("ytu-ce-cosmos/turkish-gpt2")
23
  print("Metin modeli yüklendi.")
24
 
25
+ # Türkçe kadın sesi kullanacağız
26
+ VOICE = "tr-TR-EmelNeural"
 
 
 
27
 
28
  def generate_turkish_text(prompt, max_length=100):
29
  """Türkçe metin üretme fonksiyonu"""
 
42
  generated_text = generated_text[len(prompt):].strip()
43
  return generated_text
44
 
45
+ async def create_speech_async(text):
46
+ """Edge TTS ile doğal insan sesi üret"""
47
  try:
48
+ communicate = edge_tts.Communicate(text, VOICE)
49
+ audio_path = "response.mp3"
50
+ await communicate.save(audio_path)
 
51
  return audio_path
52
  except Exception as e:
53
  print(f"Ses oluşturma hatası: {str(e)}")
54
+ return None
55
+
56
+ def create_speech(text):
57
+ """Ana thread'de async fonksiyonu çalıştır"""
58
+ try:
59
+ loop = asyncio.new_event_loop()
60
+ asyncio.set_event_loop(loop)
61
+ result = loop.run_until_complete(create_speech_async(text))
62
+ loop.close()
63
+ return result
64
+ except Exception as e:
65
+ print(f"Ses oluşturma hatası: {str(e)}")
66
  # Boş ses dosyası oluştur
67
+ with open("empty.mp3", "wb") as f:
68
  f.write(b"")
69
+ return "empty.mp3"
70
 
71
  def process_input(text):
72
  try:
requirements.txt CHANGED
@@ -7,4 +7,4 @@ numpy<2.0.0
7
  protobuf==3.20.3
8
  tqdm
9
  sentencepiece
10
- TTS
 
7
  protobuf==3.20.3
8
  tqdm
9
  sentencepiece
10
+ edge-tts