Can sıkıntısından ilginç ilginç şeyler yaptırmaya başladım bilgisayara hadi hayırlısı :D Bu küçük python scripti mikrofondan söylenen (Türkçe) kelimeleri ve cümleleri Google speech serverlarına göndererek yazıya çeviriyor, ses sentezleyicisi de yazıyı okuyarak tekrar ediyor :D Umarım canınız sıkıldığında kavga edebileceğiniz bu küçük dostu seversiniz. İyi Forumlar :D
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import shlex,subprocess,os,time
os.system("espeak -v tr+m2 "+chr(34)+" - "+"3 saniye sonra Konuşmaya başlayın"+chr(34))
time.sleep (3)
os.system('sox -r 8000 -t alsa default recording.flac silence 1 0.1 1% 1 1.5 1%')
os.system('sox recording.flac -r 16000 rec.flac')
cmd='wget -q -U "Mozilla/5.0" --post-file rec.flac --header="Content-Type: audio/x-flac; rate=16000" -O - "http://www.google.com/speech-api/v1/recognize?lang=tr-tr&client=chromium"'
args = shlex.split(cmd)
output,hata = subprocess.Popen(args,stdout = subprocess.PIPE, stderr=
subprocess.PIPE).communicate()
if not hata:
if output != '':
a = eval(output)
confidence= a['hypotheses'][0]['confidence']
speech=a['hypotheses'][0]['utterance']
print "Dediğin: ", speech, " Güvenilirlik oranı: ",confidence
os.system("espeak -v tr+m2 "+chr(34)+" - "+speech+chr(34))
else:
os.system("espeak -v tr+m2 "+chr(34)+" - "+"Üzgünüm Konuşma tanınmadı tekrar deneyin."+chr(34))
Canın sıkılmasın :)
Yaptığın işten çok güzel şeyler çıkabilir, gerçi BSD kullandığım ve aktif bir mikrofon olmadığı için betiği deneyemedim ama anladığım okunan cümleyi google speechi bize tekrar okuyor.
Peki şöyle bir şey olabilir mi?
Okunan cümleyi Google'nin serveri ekrana yazı olarak basabilir mi ya da ekrana bastırabilir miyiz?
Bunun ne faydası olacak dersen, telaffuz sorunları için çok etkili bir yöntem aslında, işitme engelliler bunun sıkıntısını çok çekerler, Androit ler için yazılmış sesi yazıya çeviren uygulamalar var ama bilgisayar için ben bulamadım bulduklarımı da çözemedim gitti.
Neyse betikle olursa kolay olur herhalde, eline sağlık kolay gelsin. :)
Yeni fikirler verdiğiniz için teşekkürler Felâsife, Bu speech recognize (konuşma tanıma) motorunu zaten görme engelliler için yapmaya çalıştığım bir işletim sistemi için yazdım. Amacım bunu TTY lerden birinde herhangi bir tuş kombinasyonuyla çalışıp çıktıyı terminale basan (klavyeden basılmış gibi) bir daemon olarak düzenlemek. Ayrıca bu dediğiniz fikir de hoşuma gitti, işe yarayabilir.
Bu arada;
Else den önceki iki satırı silip print speech
eklerseniz yazıyı ekrana basar. Ya da else den önceki ilk satırı silip güvenilirlik oranıyla birlikte de yazdırabilirsiniz.
bir de BSD kullanmanız sorun değil çünkü espeak geçen kodları sildikten sonra sadece wget ve sox bağımlılıkları kalıyor :) Mikrofon da bulunur bir yerlerden :D
Umarım yapmaya çalıştığın işletim sisteminde başarılı olur ve nihayete erdirirsin, bilenlerin böyle şeyler yapıp bilmeyenlere vermesinden daha güzel bir şey olamaz. ;)
Tamam, ben bi mikrofon bulup denemelere başlayayım, gerçi bugün yarın Almanyadan misafirlerim gelecek pek bilgisayar karşısına da geçemeyeceğim ama ilk boşlukta deneyeceğim.
Benim için önemli bir şey çünkü, kızım işitme sorunu var ve bazı harfleri basamıyor yanlış telaffuz ediyor, işin ilginci de bazen bu telaffuzunun doğru olduğunu da sanabiliyor, o yüzden böyle bir şey olursa hatalarını düzeltmeye çalışır.
Google yalan söylemez ;D
Android te ki uygulamada bu (https://play.google.com/store/apps/details?id=com.ecs.sas&feature=search_result) genelde de insanlar kolayca mesaj yazmak için filan kullanıyorlar ama telaffuzu düzeltmek hataları görmek için cuk oturuyor bu yöntem.
@dewilman, eline sağlık ilginç bir çalışma olmuş birazdan deneyeceğim. Ayrıca denemek isteyenlerin öncelikle sudo apt-get install espeak sox
komutu ile gerekli paketleri kurması iyi olur.
Umarım üzerinde çalıştığın şeyi hayata geçirebilirsin @dewilman. Kolaylıklar diliyorum.
Geri dönüşleriniz için teşekkür ederim :) @Felâsife bu arada kızınıza yardımcı olabildiysem ne mutlu bana :D
Bende teşekkür ederim @dewilman bu olay dediğim gibi işimize yarar bizim.
Şu an senin betik benim kullandığım makinede sorunsuz çalışıyor, dahili mikrofonu ben çalışmıyor biliyordum meğersem çalışıyormuş, kmix'i biraz kurcalayınca problem kalmadı. :)
Ama diğer makineye mikrofon gerekecek sanırım onda olmayacak, gerçi o da problem değil nasıl olsa çalışan bir numune var elimde ötekinide hallederim.
Bu arada ben nette başka bir uygulama buldum (http://www.mrtcn.org/python-ve-google-speech-api/) tesadüfen o daha basitmiş, ona bir iki ekleme yaptım altaki gibi oldu.
Bizde alsa yerine ossdsp /dev/dsp de denilebiliyormuş öyle yaptım, gerçi sox'u alsa ya göre derleyince alsa default ta oluyor, fark etmiyor yani.
Birde os.system('clear') ekleyince ekranı temizliyor iyi oldu.
Kaydı CTRL+C ile durdurmak yerine bunu 5sn. 10sn. gibi otomatik durdurabilir miyiz?
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import shlex,subprocess,os
print " Bir şeyler söyle"
os.system('sox -r 16000 -t ossdsp /dev/dsp recording.flac silence 1 0.1 1% 1 1.5 1%')
cmd='wget -q -U "Mozilla/5.0" --post-file recording.flac --header="Content-Type: audio/x-flac; rate=16000" -O - "http://www.google.com/speech-api/v1/recognize?lang=tr-tr&client=chromium"'
args = shlex.split(cmd)
output,hata = subprocess.Popen(args,stdout = subprocess.PIPE, stderr= subprocess.PIPE).communicate()
if not hata:
a = eval(output)
confidence= a['hypotheses'][0]['confidence']
speech=a['hypotheses'][0]['utterance']
os.system('clear')
print "Dediğin: ", speech
@Felâsife, taban olarak bu kodu kullandım zaten, bu arada 10 sn sessizlikten sonra durması için kodu
sox -r 16000 -t ossdsp /dev/dsp recording.flac silence 0 1 0:00:10 1 1.5 1%
bununla değiştirebilirsiniz.
Galiba bende olmadı gibi, bilemiyorum belkide terminalden dolayıdır csh terminali kullanıyorumda, neyse geniş bir zamanda buna tekrar bakayım. :)
Alıntı yapılan: Felâsife - 10 Temmuz 2013 - 23:16:07
... gerçi o da problem değil nasıl olsa çalışan bir numune var elimde ötekinide hallederim.
Ötekide halloldu. ;D
Nasıl çözdünüz ?
Şöyle çözdüm (http://bsd-tr.org/index.php/topic,171.0.html), olayda kmix'te bitiyormuş.
Linux'larda da bu olay böyle midir onu bilemiyorum ama.
İçsel mikrofonlar genelde çalıştırması sorunlu aletler FreeBSD ve Linuxta. Neyse ben şanslıymışım ki alsamixerle çözdüm olayı uzun zaman önce.
Nasıl yapılıyor? Python'um kıt :D
Alıntı yapılan: betseg - 12 Temmuz 2013 - 19:18:19
Nasıl yapılıyor? Python'um kıt :D
Nerede takıldınız ?
Python nasıl çalışıyor bilmiyorum :D
Kodları not defteriyle kod.py olarak kaydettikten sonra uçbirimi açıp python2 /nerede/bu/kod.py
şeklinde çalıştırabilirsiniz.
3 kere papağan dedim bana sabah dedi :D
Düzenleme: Yaklaştı babam dedi 4. seferde :D
Düzenleme 2: 5. seferde oldu :D
Alıntı yapılan: dewilman - 06 Temmuz 2013 - 11:02:43
Felâsife, Bu speech recognize (konuşma tanıma) motorunu zaten görme engelliler için yapmaya çalıştığım bir işletim sistemi için yazdım. Amacım bunu TTY lerden birinde herhangi bir tuş kombinasyonuyla çalışıp çıktıyı terminale basan (klavyeden basılmış gibi) bir daemon olarak düzenlemek.
Sizin yazdığınız kodu deneyemedim fakat yukarıda belirttiğiniz niyetiniz için sizi tebrik etmek istedim.
Ayrıca Knoppix açılırken boot yerine adriane yazınca görme engelliler için bir işletim sistemi açılıyor. Kendi deyimiyle "blind-friendly, talking desktop". Belki göz atmak istersiniz. http://knoppix.net/ (http://knoppix.net/)
Alıntı yapılan: emrebahis - 13 Temmuz 2013 - 15:52:48
Sizin yazdığınız kodu deneyemedim fakat yukarıda belirttiğiniz niyetiniz için sizi tebrik etmek istedim.
Ayrıca Knoppix açılırken boot yerine adriane yazınca görme engelliler için bir işletim sistemi açılıyor. Kendi deyimiyle "blind-friendly, talking desktop". Belki göz atmak istersiniz. http://knoppix.net/ (http://knoppix.net/)
Tekrar hatırlattığınız için teşekkür ederim :D Daha önce kullanmışlığım var ama ses çıkmıyordu bende nedense. Yeni sürümünü indireyim bir belki düzelmiştir.