Kişisel asistanı Tkinter'a adapte etme

yazdığım kişisel asistanı terminal üzerinde değilde tkinter üzerinde çalışmasını istiyorum yardım edebilcek birileri varmı

import content as content
import dictionary
import speech_recognition as sr
import datetime
from playsound import playsound
import webbrowser
from gtts import gTTS
from playsound import playsound
import os
import smtplib
import time
import random
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By

r = sr.Recognizer()

def record(ask = False):
with sr.Microphone() as source:
if ask:
print(ask)
audio = r.listen(source)
voice = “”
try:
voice = r.recognize_google(audio,language=“tr-TR”)
except sr.UnknownValueError:
speak(“anlayamadım”)
except sr.UnknownValueError:
speak(“sistem çalışmadı”)
return voice
def response(voice):
global numb, month
if “nasılsın” in voice:
reply = [“Bomba gibiyim”, “kendimi çok enerjik hissediyorum”, “İyiyim teşekkürler sen nasılsın”, “Çok şükür iyiyim sen nasılsın”]
r = random.choice(reply)
speak(r)
if “Sence aşı olmalı mıyım” in voice:
speak(“eğer salgın hastalık için bir aşı bulunduysa ve çoğunluk yaptırıyorsa sende sağlığın için yaptırmalısın”)
if “Ben de iyiyim Teşekkürler” in voice:
speak(“Rica ederim senin için yapabileceğim birşey var mı?”)
if “koronavirüsten korunma yolları” in voice:
speak(“dışarıya çıktığında maskeni tak ve yüzeylere fazla dokunmamaya çalış son olarak insanlarla mesafeni koru”)
if “Okula gidiyor musun” in voice:
reply = [“Şuan için asistanlık yapıyorum”, “hayır sadece asistanlık yapıyorum”, “maalesef gitmiyorum”]
r = random.choice(reply)
speak(r)
if “Hayat nasıl gidiyor” in voice:
reply = [“Her zaman ki gibi asistanlık yapıyorum”, “iyi gidiyor senin hayatın nasıl”,“teşekkürler herşey yolunda”]
r = random.choice(reply)
speak(r)
if “Instagram’ı aç” in voice:
speak(“açıyorum”)
driver = webdriver.Chrome(executable_path=r’C:\Users\Ali Tabak\Downloads\chromedriver.exe’)
driver.get(“Instagram”)
if “Facebook’u aç” in voice:
speak(“1 saniye”)
driver = webdriver.Chrome(executable_path=r’C:\Users\Ali Tabak\Downloads\chromedriver.exe’)
driver.get(“https://www.facebook.com”)
if “Youtube aç” in voice:
speak(“hemen açıyorum”)
driver = webdriver.Chrome(executable_path=r’C:\Users\Ali Tabak\Downloads\chromedriver.exe’)
driver.get(“https://www.youtube.com”)
if “hangi gün deyim” in voice:
months = {
“January” : “Ocak”,
“February”: “Şubat”,
“March” : “Mart”,
“April” : “Nisan”,
“May” : “Mayıs”,
“June” : “Haziran”,
“July” : “Temmuz”,
“August” : “Ağustos”,
“September” : “Eylül”,
“October” : “Ekim”,
“November” : “Kasım”,
“December” : “Aralık”
}
days = {
“Monday” : “Pazartesi”,
“Tuesday” : “Salı”,
“Wednesday” : “Çarşamba”,
“Thursday” : “Perşembe”,
“Friday” : “Cuma”,
“Saturday” : “Cumartesi”,
“Sunday” : “Pazar”
}
month = time.strftime("%B")
day = time.strftime("%A")
numb = time.strftime("%d")
speak(numb+months[month]+days[day])
if “10 Kasım” in voice:
speak(“1938 günü yaşamını yitiren, Türkiye’nin kurucusu ve ilk Cumhurbaşkanı Mustafa Kemal Atatürk Saygı ve özlemle”)
if “basit bir yemek tarifi” in voice:
reply = [“Tava yı ocağa koy biraz yağ ekle yumurta kır ve ye”, “Tencereye su, yağ ve tuz eklemen gerek daha sonra kaynaması için birazcık bekle ardından makarnayı içine at ve piştiğinden emin olana kadar kısık ateşte beklet oldu sana makarna”]
r = random.choice(reply)
speak(r)
if “24 Kasım” in voice:
speak(“Geleceğe ışık tutan tüm öğretmenlerimizin günü.”)
if “31 Aralık " in voice:
speak(“Yılın son günü”)
if “8 Mart” in voice:
speak(“Dünya Kadınlar Günü”)
if “23 Temmuz” in voice:
speak(“Mustafa Kemalin önderliğinde ki Ulusal Egemenlik ve Çocuk Bayramı kutlu olsun.”)
if “saat kaç” in voice:
speak(time.strftime(”%H:%M"))
if “siri’yi tanıyor musun” in voice:
speak(“onunla birlikte büyüdük diyebilirim”)
if “yol tarifi al” in voice:
speak(“nereye gitmek istiyorsun”)
search = record(“nereye gitmek istiyorsun”)
url = “Google Haritalar
webbrowser.get().open(url)
driver.find_element_by_xpath(“class=”, “tactile-searchbox-input”).send_keys(record(""))
speak(search+“Bunu Buldum”)
if “arama yap” in voice:
speak(“ne aramak istiyorsun”)
search = record(“ne aramak istiyorsun”)
url = “Google”+search
webbrowser.get().open(url)
speak(search+“için bulduklarım”)
exit()
if “adın ne” in voice:
speak(“Aslında Birçok adım var ama yapımcım bana Friday olarak hitap ediyor”)

if "Tesla hakkında ne düşünüyorsun" in voice:
    speak("yaptıkları Tesla arabalar Starlink internet altyapısı SpaceX uzay araçları hepsi geleceği kurtarmak için bir çözüm olabilir")

if "neredesin" in voice:
    reply = ["Kafanızın bir köşesindeyim", "Nerede olmamı isterseniz oradayım", "Emrinizdeyim",
             "az önce bir devre kartı tasarlıyordum kısacası uğraş halindeydim",
             "onun yanında değilim", "heran yanınızdayım",
             "işlemcinizin soğutucu ile ilgileniyordum.biraz destek gerekli gibi duruyor. buyrun efendim ne demiştiniz"]
    r = random.choice(reply)
    speak(r)

if "seni kim yarattı".capitalize() in voice:
    a = ["Ali Eren tarafından oluşturuldum", "Ali eren tarafından piyasaya giriş yaptım", "Beni yaratan Ali eren",
         "ismimi Friday olarak belirleyen Ali Eren tarafından sizlere hizmet etmek üzere yaratıldım"]
    s = random.choice(a)
    speak(s)

if "ne yapabilirsin" in voice:
    speak("internette arama yapabilir mail gönderebilir seninle tatlı sohbetler edebilirim")

if "hangi tür müzikler seversin" in voice:
    speak("Aslında yerine göre diyebilirim sen ne dinlersen bende onları dinliyorum")

if "kısa bir hikaye anlat" in voice:
    speak("Nasrettin Hoca bir vakit eşeğini hava alsın diye, zar zor dama çıkarmış.Bir müddet sonra  “Yeter artık inme vakti” diye çekmiş eşeği, kan ter içinde kalmış Hoca, ama nafile.İnmemiş eşek bir türlü. “Ne haalin varsa gör  “ diye eşeği damda bırakıp  inmiş aşağı.Oynama alanı bulan eşek, zıplamış durmuş damda. Öyle zıplamış ki dam delinip aşağı düşüp ölmüş.Âkıbeti ibretle izleyen Hocamız hemen dersi çıkarmış tabi Demek ki eşeğin mertebesini yükseltirsen, hem bulunduğu yere zarar veriyor hem de kendine.")

if "ne haber" in voice:
    speak("iyiyim senden naber")

if "tamamdır" in voice:
    speak("görüşürüz")
    exit()

if "görüşürüz" in voice:
    speak("kendine iyi bak")
    exit()
if "sevgilin var mı" in voice:
    reply = ["Hayır yok", "Galiba ben sanal birisi olduğum için görüşmemiz zor oluyor", "Sanal Asistanların sevgilisi olmaz"]
    r = random.choice(reply)
    speak(r)
if "aşık olmak nasıl birşey" in voice:
    speak("Bazen platonik olursun çok acı çekersin,Bazen o seni sever sen istemezsin,Bazen ise her iki taraf da tam uyumludur ama saçma bir sebepten ötürü istemez,aşık olmanı tavsiye etmem")

def speak(string):
tts = gTTS(string,lang=“tr”)
rand = random.randint(1,10000)
file = “audio-”+str(rand)+".mp3"
tts.save(file)
playsound(file)
os.remove(file)

speak(“Sizi Dinliyorum”)
time.sleep(1)
while 1:
voice = record()
print(voice)
response(voice)
mailgönder(voice)

Şu kodları bi düzgün atın yav.

4 Beğeni

bu şekilde oluyor sayfada kod ekleme kısmını pek anlamıyorum

1 Beğeni

AltGR + , tuşlarını kullanın ya da `` kopyalayın. tek satırlık kod yazacaksanız ikisinin arasına, birden fazla kod satırınız varsa da 6 tane olmak üzere 3 yukarıda 3 aşağıda olacak şekilde arasına kodunuzu yazabilirsiniz.

soruya gelirsek de ufak bir klavye dokunuşuyla (program size karşılık verdikten sonra susmasını isterseniz ve programın bitmesini isterseniz exit() yazarak butona tekrar bastığınızda çalışmasını sağlayabilirsiniz. bir nevi bugfix gibi düşünülebilir bu):

import content as content
import dictionary
import speech_recognition as sr
import datetime
from playsound import playsound
import webbrowser
from gtts import gTTS
from playsound import playsound
import os
import smtplib
import time
import random
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
from tkinter import *
from threading import Thread

def mainCommands():
    r = sr.Recognizer()
    def record(ask = False):
        with sr.Microphone() as source:
            if ask:
                print(ask)
            audio = r.listen(source)
            voice = ""
            try:
                voice = r.recognize_google(audio,language="tr-TR")
            except sr.UnknownValueError:
                speak("anlayamadım")
                speak("lütfen konuş butonuna tekrar tıklayın ve yeniden konuşun")
                exit()
            except sr.UnknownValueError:
                speak("sistem çalışmadı")
                exit()
            return voice
    def mailgönder(voice):
        if "mail gönder" in voice:
            content = "selam"
            mail = smtplib.SMTP("smtp.gmail.com",587)
            mail.ehlo()
            mail.starttls()
            mail.login("alierentabak0156@gmail.com","eren_1903")
            mail.sendmail("nihatefetabak@gmail.com")

    def response(voice):
        global numb, month
        if "nasılsın" in voice:
            reply = ["Bomba gibiyim", "kendimi çok enerjik hissediyorum", "İyiyim teşekkürler sen nasılsın", "Çok şükür iyiyim sen nasılsın"]
            r = random.choice(reply)
            speak(r)
        if "Sence aşı olmalı mıyım" in voice:
            speak("eğer salgın hastalık için bir aşı bulunduysa ve çoğunluk yaptırıyorsa sende sağlığın için yaptırmalısın")
        if "Ben de iyiyim Teşekkürler" in voice:
            speak("Rica ederim senin için yapabileceğim birşey var mı?")
        if "koronavirüsten korunma yolları" in voice:
            speak("dışarıya çıktığında maskeni tak ve yüzeylere fazla dokunmamaya çalış son olarak insanlarla mesafeni koru")
        if "Okula gidiyor musun" in voice:
            reply = ["Şuan için asistanlık yapıyorum", "hayır sadece asistanlık yapıyorum", "maalesef gitmiyorum"]
            r = random.choice(reply)
            speak(r)
        if "Hayat nasıl gidiyor" in voice:
            reply = ["Her zaman ki gibi asistanlık yapıyorum", "iyi gidiyor senin hayatın nasıl","teşekkürler herşey yolunda"]
            r = random.choice(reply)
            speak(r)
        if "Instagram'ı aç" in voice:
            speak("açıyorum")
            driver = webdriver.Chrome(executable_path=r'C:\Users\Ali Tabak\Downloads\chromedriver.exe')
            driver.get("https://www.instagram.com/?hl=tr")
        if "Facebook'u aç" in voice:
            speak("1 saniye")
            driver = webdriver.Chrome(executable_path=r'C:\Users\Ali Tabak\Downloads\chromedriver.exe')
            driver.get("https://www.facebook.com")
        if "Youtube aç" in voice:
            speak("hemen açıyorum")
            driver = webdriver.Chrome(executable_path=r'C:\Users\Ali Tabak\Downloads\chromedriver.exe')
            driver.get("https://www.youtube.com")
        if "hangi gün deyim" in voice:
            months = {
                "January" : "Ocak",
                "February": "Şubat",
                "March" : "Mart",
                "April" : "Nisan",
                "May" : "Mayıs",
                "June" : "Haziran",
                "July" : "Temmuz",
                "August" : "Ağustos",
                "September" : "Eylül",
                "October" : "Ekim",
                "November" : "Kasım",
                "December" : "Aralık"
            }
            days = {
                "Monday" : "Pazartesi",
                "Tuesday" : "Salı",
                "Wednesday" : "Çarşamba",
                "Thursday" : "Perşembe",
                "Friday" : "Cuma",
                "Saturday" : "Cumartesi",
                "Sunday" : "Pazar"
            }
            month = time.strftime("%B")
            day = time.strftime("%A")
            numb = time.strftime("%d")
            speak(numb+months[month]+days[day])
        if "10 Kasım" in voice:
            speak("1938 günü yaşamını yitiren, Türkiye'nin kurucusu ve ilk Cumhurbaşkanı Mustafa Kemal Atatürk Saygı ve özlemle")
        if "basit bir yemek tarifi" in voice:
            reply = ["Tava yı ocağa koy biraz yağ ekle yumurta kır ve ye", "Tencereye su, yağ ve tuz eklemen gerek daha sonra kaynaması için birazcık bekle ardından makarnayı içine at ve piştiğinden emin olana kadar kısık ateşte beklet oldu sana makarna"]
            r = random.choice(reply)
            speak(r)
        if "24 Kasım" in voice:
            speak("Geleceğe ışık tutan tüm öğretmenlerimizin günü.")
        if "31 Aralık " in voice:
            speak("Yılın son günü")
        if "8 Mart" in voice:
            speak("Dünya Kadınlar Günü")
        if "23 Temmuz" in voice:
                speak("Mustafa Kemalin önderliğinde ki Ulusal Egemenlik ve Çocuk Bayramı kutlu olsun.")
        if "saat kaç" in voice:
            speak(time.strftime("%H:%M"))
        if "siri'yi tanıyor musun" in voice:
            speak("onunla birlikte büyüdük diyebilirim")
        if "yol tarifi al" in voice:
            speak("nereye gitmek istiyorsun")
            search = record("nereye gitmek istiyorsun")
            url = "https://www.google.com.tr/maps/dir//36.842046,30.599106/@37.0141773,37.3508718,16z?hl=tr"
            webbrowser.get().open(url)
            driver.find_element_by_xpath("class=", "tactile-searchbox-input").send_keys(record(""))
            speak(search+"Bunu Buldum")
        if "arama yap" in voice:
            speak("ne aramak istiyorsun")
            search = record("ne aramak istiyorsun")
            url = "https://google.com/search?q="+search
            webbrowser.get().open(url)
            speak(search+"için bulduklarım")
            exit()
        if "adın ne" in voice:
            speak("Aslında Birçok adım var ama yapımcım bana Friday olarak hitap ediyor")

        if "Tesla hakkında ne düşünüyorsun" in voice:
            speak("yaptıkları Tesla arabalar Starlink internet altyapısı SpaceX uzay araçları hepsi geleceği kurtarmak için bir çözüm olabilir")

        if "neredesin" in voice:
            reply = ["Kafanızın bir köşesindeyim", "Nerede olmamı isterseniz oradayım", "Emrinizdeyim",
                    "az önce bir devre kartı tasarlıyordum kısacası uğraş halindeydim",
                    "onun yanında değilim", "heran yanınızdayım",
                    "işlemcinizin soğutucu ile ilgileniyordum.biraz destek gerekli gibi duruyor. buyrun efendim ne demiştiniz"]
            r = random.choice(reply)
            speak(r)

        if "seni kim yarattı".capitalize() in voice:
            a = ["Ali Eren tarafından oluşturuldum", "Ali eren tarafından piyasaya giriş yaptım", "Beni yaratan Ali eren",
                "ismimi Friday olarak belirleyen Ali Eren tarafından sizlere hizmet etmek üzere yaratıldım"]
            s = random.choice(a)
            speak(s)

        if "ne yapabilirsin" in voice:
            speak("internette arama yapabilir mail gönderebilir seninle tatlı sohbetler edebilirim")

        if "hangi tür müzikler seversin" in voice:
            speak("Aslında yerine göre diyebilirim sen ne dinlersen bende onları dinliyorum")

        if "kısa bir hikaye anlat" in voice:
            speak("Nasrettin Hoca bir vakit eşeğini hava alsın diye, zar zor dama çıkarmış.Bir müddet sonra  “Yeter artık inme vakti” diye çekmiş eşeği, kan ter içinde kalmış Hoca, ama nafile.İnmemiş eşek bir türlü. “Ne haalin varsa gör  “ diye eşeği damda bırakıp  inmiş aşağı.Oynama alanı bulan eşek, zıplamış durmuş damda. Öyle zıplamış ki dam delinip aşağı düşüp ölmüş.Âkıbeti ibretle izleyen Hocamız hemen dersi çıkarmış tabi Demek ki eşeğin mertebesini yükseltirsen, hem bulunduğu yere zarar veriyor hem de kendine.")

        if "ne haber" in voice:
            speak("iyiyim senden naber")

        if "tamamdır" in voice:
            speak("görüşürüz")
            exit()

        if "görüşürüz" in voice:
            speak("kendine iyi bak")
            exit()
        if "sevgilin var mı" in voice:
            reply = ["Hayır yok", "Galiba ben sanal birisi olduğum için görüşmemiz zor oluyor", "Sanal Asistanların sevgilisi olmaz"]
            r = random.choice(reply)
            speak(r)
        if "aşık olmak nasıl birşey" in voice:
            speak("Bazen platonik olursun çok acı çekersin,Bazen o seni sever sen istemezsin,Bazen ise her iki taraf da tam uyumludur ama saçma bir sebepten ötürü istemez,aşık olmanı tavsiye etmem")

    def speak(string):
        tts = gTTS(string,lang="tr")
        rand = random.randint(1,10000)
        file = "audio-"+str(rand)+".mp3"
        tts.save(file)
        playsound(file)
        os.remove(file)


    speak("Sizi Dinliyorum")
    time.sleep(1)
    while True:
        voice = record()
        print(voice)
        response(voice)
        mailgönder(voice)

def gui(geometry,title):
    root = Tk()
    root.geometry(f"{geometry}")
    root.title(f"{title}")

    Button(root,text="Konuş",height=10,width=15,command=lambda: Thread(target=mainCommands).start()).pack()

if __name__ == "__main__":
    gui("300x500","Asistan")
    mainloop()

olarak yapılabilir. Son olarak sizin öncesinde “asistanımın sesini nasıl değiştirebilirim” gibi bir sorunuz vardı. o sorunuza karşılık ResponsiveVoice modülünü internette aratın

ufak bir örnek:

from responsive_voice import ResponsiveVoice

engine = ResponsiveVoice()
engine = ResponsiveVoice(lang=ResponsiveVoice.TURKISH)
engine.say("Ben Arif tanıştığıma memnun oldum",gender=ResponsiveVoice.MALE,rate=0.47,pitch=0.36,vol=1)