Python Türkçe çeviri

Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...
Uzman Üye
Katılım
23 Eki 2021
Mesajlar
176
Tepki puanı
8
Ödüller
4
Yaş
20
4 HİZMET YILI
Python:
import speech_recognition as sr
from playsound import playsound
from gtts import gTTS
import os
import time
#import pyautogui
import wikipedia
#import pyaudio
from googletrans import Translator



translator = Translator()




def speak(string):
    tts = gTTS(text=string, lang="tr", slow=False ,)
    paswd = "passwd.mp3"
    tts.save(paswd)
    playsound(paswd)
    os.remove(paswd)
speak("Şifre lütfen")

voice = ""

time.sleep(3)

if voice == "":
    exit()


#Giriş
sifre = voice
#pyautogui.press("enter") Enter bas
if sifre=="börü":
    speak("Giriş Başarılı")
else:
    speak("şifre hatalı")
    exit()


omer = sr.Recognizer()


def record(ask = False):
    with sr.Microphone() as source:
        if ask:
            print(ask)
        audio = omer.listen(source)
        voice = ""
        try:
            voice = omer.recognize_google(audio_data="tr=TR")
        except sr.UnknownValueError:
            speak("Anlaşılmadı")
        except sr.RequestError:
            speak("Sistem Çalışmıyor")
        return voice
    
          
def speak(string):
    tts = gTTS(text=string, lang="tr", slow=False ,)
    file = "login.mp3"
    tts.save(file)
    playsound(file)
    os.remove(file)

speak("Merhaba ben ötüken , sana nasıl yardımcı olabilirim ?")
voice = record()


#Öğrenme
if "merhaba" in voice:
    speak("merhaba")

if "nasılsın" in voice:
    speak("iyiyim sen nasılsın")

if "ingilizce konuşuyor musun" in voice:
    speak("Hayır maalesef , Türkçe programlandım")

if "sen kimsin" in voice:
    speak("Ömer Böcek tarafından programlanan kişisel asistanım")

if "tengrizm nedir" in voice:
    speak("Tengricilik ve ya Tengrizm, Türk ve Moğol halklarının inandığı dinlerden biridir. Tengri'ye tapınmanın yanında Animizm ve Totemlik bu inancın ana hatlarını oluşturmaktadır. Tengri, bugünkü Türkçedeki Tanrı sözcüğünün eski söyleniş şeklidir. Orhun Yazıtları'ndaki çözülen ilk sözcük olup yazılışı şeklindedir.")

if "adın ne" in voice:
    speak("Adım Ötüken")



if "internette ara" in voice:
    

    speak("Yükleniyor")
    time.sleep(2)
    speak("ne araştırmak istiyorsunuz")
    time.sleep(3)
    wparama = wikipedia.search(voice)
    
    for search in wparama:
        example = translator.translate(voice,dest="tr")
        speak(example)
        speak(wikipedia.page(example).summary)







if voice == "ötüken sus":
    
    exit()


Python:
if "internette ara" in voice:

    



    speak("Yükleniyor")

    time.sleep(2)

    speak("ne araştırmak istiyorsunuz")

    time.sleep(3)

    wparama = wikipedia.search(voice)

    

    for search in wparama:

        example = translator.translate(voice,dest="tr")

        speak(example)

        speak(wikipedia.page(example).summary)

wiki p. den gelen yazılar ingilizce olduğu için önce ing den türkçe yapayım sonra konuşturayım dedim de hata aldım , yardım edebilecek varsa,
 
Admin
Katılım
9 Eki 2017
Mesajlar
13,539
Çözümler
1,050
Tepki puanı
3,382
Ödüller
22
8 HİZMET YILI
Sorunun "googletrans" modülünün "translate" fonksiyonunun doğru kullanımıyla ilgili şu anda "translate" fonksiyonunu "voice" değişkeninde saklanan bir metin dizisine uyguluyorsu bununla birlikte "translate" fonksiyonu bir metin dizisi yerine "wikipedia.search" fonksiyonundan döndürülen bir dizi nesneyi gerektiriyor ve "speak" fonksiyonunu iki kez tanımlamışsın bu programında bir hata oluşturabilir ihtimali var yani bu nedenle bu fonksiyonun tek bir tanımını korumak daha iyi olur

Şu şekilde düzenlemeleri yaparak kodunu düzeltebilirsin:
Python:
import speech_recognition as sr
from playsound import playsound
from gtts import gTTS
import os
import time
import wikipedia
from googletrans import Translator

translator = Translator()

def speak(string):
    tts = gTTS(text=string, lang="tr", slow=False)
    file = "login.mp3"
    tts.save(file)
    playsound(file)
    os.remove(file)

speak("Merhaba ben ötüken, sana nasıl yardımcı olabilirim?")
voice = record()

# ...

if "internette ara" in voice:
    speak("Yükleniyor")
    time.sleep(2)
    speak("ne araştırmak istiyorsunuz")
    time.sleep(3)
    wparama = wikipedia.search(voice)
    if wparama:
        page = wikipedia.page(wparama[0])
        example = page.summary
        translated = translator.translate(example, dest="tr").text
        speak(translated)
    else:
        speak("Üzgünüm, aradığınız konuyu bulamadım.")
Bu değişikliklerden sonra "translate" fonksiyonuna doğru nesne türünü vererek ve "speak" fonksiyonunu yalnızca bir kez tanımlayarak programını düzgün çalıştırman lazım
 
Süper Üye
Katılım
23 Nis 2019
Mesajlar
981
Çözümler
2
Tepki puanı
79
Ödüller
6
7 HİZMET YILI
translator.translate fonksiyonunun ilk parametresi olan voice değişkeninin Türkçe olması gerekiyor. Aksi takdirde çevirme işlemi yapılmayacak veya hatalı sonuç verecektir. Aşağıdaki satırda voice değişkenini önce Türkçeye çevirip, sonra Wikipedia arama işlemi için kullanabilirsiniz: example = translator.translate(voice, src="tr", dest="en").text wparama = wikipedia.search(example)
Burada önce voice değişkeni Türkçe'ye çevriliyor ve çeviri sonucu dönen metnin yalnızca metin içeriği example değişkenine atanıyor. Daha sonra bu example metni Wikipedia arama işlemi için kullanılıyor.
 
Onaylı Üye
Katılım
7 Ağu 2020
Mesajlar
52
Tepki puanı
0
Ödüller
4
Yaş
25
5 HİZMET YILI
Üstte de ilk bariz hata cevaplanmış ama haricinde bir hata aldın mı acaba? Devamında sorunun çözülüp çözülmediği belirtilmemiş de...
 
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...