Merhaba arkadaşlar başlıkta belirttiğim üzere Python üzerinden speech to text translate yapmaya çalışıyorum. Çeviriyi başarılı bir şekilde yapıyor ancak konuşmamla txt ye yazılması arasındaki süre uzun. Yaklaşık olarak 10+ sn gecikmeli gerçekleşiyor. Kodlarda hata elbet vardır çünkü pek bilgim yok. Print komutlarını ben bilerek yazmadım ihtiyaç duymuyorum, çıktıyı zaten txt üzerinde görüyorum. Kodlardaki hataları ve bu gecikmeyi düzeltmem için yardımcı olabilirseniz sevinirim.
+ Olarak döngünün sürekli sürmesi gerekiyor o yüzden bildiğim kadarıyla while komutunu ekledim ancak başka bir çözüm varsa onda da yardımcı olursanız sevinirim.
Python:
import speech_recognition as sr.
from googletrans import Translator.
translator = Translator()
r = sr.Recognizer()
while True:
with sr.Microphone() as source:
audio = r.listen(source)
try:
t = r.recognize_google(audio, language='tr-TR')
lg = 'en'.
translation = translator.translate(t, dest=lg)
text = r.recognize_google(audio)
text = text.lower()
with open('yazi.txt', 'w') as f:
f.write(translation.text.center(70))
except:""
Küçük kuzenimin ödevi için aynı kütüphaneyi kullanarak program yazmıştım. Mikrofon girdisi tamamen kesilmezse, ses algılamak için 5-10 saniye kadar daha bekliyor. Gecikmenin sebebi bu. Bunu nasıl çözersin bilmiyorum. Ben her konuşmayı bitirdiğimde mikrofon kapatıyordum hızlı hızlı tepki versin diye.
Merhaba arkadaşlar başlıkta belirttiğim üzere Python üzerinden speech to text translate yapmaya çalışıyorum. Çeviriyi başarılı bir şekilde yapıyor ancak konuşmamla txt ye yazılması arasındaki süre uzun. Yaklaşık olarak 10+ sn gecikmeli gerçekleşiyor. Kodlarda hata elbet vardır çünkü pek bilgim yok. Print komutlarını ben bilerek yazmadım ihtiyaç duymuyorum, çıktıyı zaten txt üzerinde görüyorum. Kodlardaki hataları ve bu gecikmeyi düzeltmem için yardımcı olabilirseniz sevinirim.
+ Olarak döngünün sürekli sürmesi gerekiyor o yüzden bildiğim kadarıyla while komutunu ekledim ancak başka bir çözüm varsa onda da yardımcı olursanız sevinirim.
Python:
import speech_recognition as sr.
from googletrans import Translator.
translator = Translator()
r = sr.Recognizer()
while True:
with sr.Microphone() as source:
audio = r.listen(source)
try:
t = r.recognize_google(audio, language='tr-TR')
lg = 'en'.
translation = translator.translate(t, dest=lg)
text = r.recognize_google(audio)
text = text.lower()
with open('yazi.txt', 'w') as f:
f.write(translation.text.center(70))
except:""
import speech_recognition as sr
from googletrans import Translator
def main():
r = sr.Recognizer()
c = Translator()
with sr.Microphone() as source:
r.adjust_for_ambient_noise(source)
print("Konuşunuz")
audio = r.listen(source)
try:
print("Söylediğiniz Şey:"+r.recognize_google(audio))
except Exception as hata:
print("HATA:"+str(hata))
cevrilen = r.recognize_google(audio)
ceviri = c.translate(cevrilen,dest="tr")
with open ("yazi.txt","w") as f:
f.write(ceviri.text)
if __name__ == "__main__":
main()
Muhtemelen [adjust_for_ambient_noise] kullanılmadığı için mikrofon her sesi alıp dinlemeye çalışıyor. Yukarıda bıraktığım kod çalışmakta.
Edit: Siz TR'den çeviri yapmışsınız ona dikkat etmemiştim:
Python:
import speech_recognition as sr
from googletrans import Translator
def main():
r = sr.Recognizer()
c = Translator()
with sr.Microphone() as source:
r.adjust_for_ambient_noise(source)
print("Konuşunuz")
audio = r.listen(source)
try:
print("Söylediğiniz Şey:"+r.recognize_google(audio,language='tr-TR'))
except Exception as hata:
print("HATA:"+str(hata))
cevrilen = r.recognize_google(audio,language="tr-TR")
ceviri = c.translate(cevrilen,dest="en")
print(cevrilen)
with open ("yazi.txt","w") as f:
f.write(ceviri.text)
if __name__ == "__main__":
main()
import speech_recognition as sr
from googletrans import Translator
def main():
r = sr.Recognizer()
c = Translator()
with sr.Microphone() as source:
r.adjust_for_ambient_noise(source)
print("Konuşunuz")
audio = r.listen(source)
try:
print("Söylediğiniz Şey:"+r.recognize_google(audio))
except Exception as hata:
print("HATA:"+str(hata))
cevrilen = r.recognize_google(audio)
ceviri = c.translate(cevrilen,dest="tr")
with open ("yazi.txt","w") as f:
f.write(ceviri.text)
if __name__ == "__main__":
main()
Muhtemelen [adjust_for_ambient_noise] kullanılmadığı için mikrofon her sesi alıp dinlemeye çalışıyor. Yukarıda bıraktığım kod çalışmakta.
Edit: Siz TR'den çeviri yapmışsınız ona dikkat etmemiştim:
Python:
import speech_recognition as sr
from googletrans import Translator
def main():
r = sr.Recognizer()
c = Translator()
with sr.Microphone() as source:
r.adjust_for_ambient_noise(source)
print("Konuşunuz")
audio = r.listen(source)
try:
print("Söylediğiniz Şey:"+r.recognize_google(audio,language='tr-TR'))
except Exception as hata:
print("HATA:"+str(hata))
cevrilen = r.recognize_google(audio,language="tr-TR")
ceviri = c.translate(cevrilen,dest="en")
print(cevrilen)
with open ("yazi.txt","w") as f:
f.write(ceviri.text)
if __name__ == "__main__":
main()
Şimdi çalıştı teşekkürler. Ama şimdi de çeviriyi yaptıktan sonra direkt bitiriyor. While komutunu nasıl eklemem gerekiyor. Daha basit olucaksa benim kodun üzerinde düzenleme yapabilirsiniz.
Şimdi çalıştı teşekkürler. Ama şimdi de çeviriyi yaptıktan sonra direkt bitiriyor. While komutunu nasıl eklemem gerekiyor. Daha basit olucaksa benim kodun üzerinde düzenleme yapabilirsiniz.
Mesela ben bir kelime söylüyorum çeviriyi tamamlıyor script bitiyor. Ancak istediğim şey çeviriyi bitirdikten sonra scripti bitirmeyip başa dönüp yeni söylediğim şeyi çevirmesi. Yani mesela ben "Merhaba" diyorum çeviri tamamlanıyor tekrar Run'a basmam gerekiyor. İstediğim şey "Merhaba" deyip çeviri bittikten sonra bir sonraki cümle/kelimeyi de Run'a basmadan çevirmeye devam etmesi. Benim paylaştığım kod da while ile bunu çözmüştüm. Ama o zamanda gecikme çok fazla artıyor. Farklı bir çözümü var mı acaba.