erturkkadir/kurtahmini

Ses komut işleme/yapay zeka

Closed this issue · 14 comments

Kadir bey merhaba,
Ben Elektrik-Elektronik mühendisliği son sınıf öğrencisi Duygu.Şuanda sizin youtube hesabınızda yer verdiğiniz sesli türkçe komutların yazıya dönüştürülmesi üzerine çalışıyorum fakat bazı sıkıntılar yaşıyorum.Aldığım hatalar üzerine çok araştırma yaptım fakat bulamadığım için artık size yazmak istedim.Size birkaç soru sorup,fikir danışabilirsem çok memnun olurum.Yardımcı olur musunuz lütfen

Duygu hanim, aldığınız hata mesajlarini burada paylasabilirmisiniz?

File "/home/duygu/catkin_ws/src/datasets/ses_komut.py", line 68, in
model = get_model()
File "/home/duygu/catkin_ws/src/datasets/ses_komut.py", line 47, in get_model
MyModel.compile(loss = keras.losses.categorical_crossentropy, optimizer=keras.optimizers.Adadelta(), metric=['accuracy'])
AttributeError: module 'keras.optimizers' has no attribute 'Adadelta'

Kadir Bey bu hataları alıyorum.Bende keras düzgün çalışmıyor o yüzden tensorflow.keras olarak import ettim , o kısımlarda hata almıyorum.
keras.losses dedikten sonra categorical_crossentropy bende çıkmıyor.

Geri dönüş yaptığınız için çok teşekkür ederim.Bu konuyla ilgili kendimi geliştirmek istiyorum o yüzden sizden geri dönüş almak beni çok mutlu etti.

yanlis hatirlamiyorsam keras yeni versiyonlarda tensorflow altinda artik. 2 sey deneyebilrsiniz, birincisi eger kullandiginiz paket backward(eski version) uyumlu ve Adadelta calismiyorsa Adam ile degistirebilrisiniz.

Alternatif olarak keras yerinde tensorflow.keras yazabilirisiniz (bunu tavsiye ederim)

import tensorflow as tf
from tensorflow import keras
from tensorflow.keras import layers

https://www.tensorflow.org/guide/keras/sequential_model birkac ornek mevcut.

Umarim bu problemi cozer. Aksi halde aldiginiz hatayi buraya yazarsaniz elimden geleni yapmaya calisirim.

Kadir bey önerdiğiniz çözümlerden yola çıkarak birkaç çözüm yöntemi denedim,sorun çözüldü.
Şuanda çalışıyor ama "aşağı" dosyasını vermeme rağmen yukarı yazdırıyor."yukarı" dosyasını verdiğimde ise aşağı yazdırıyor :)
nedenini şuanlık anlayamadım ama çalışmaya devam ediyorum.

Kadir bey tekrardan merhaba,
Ben kendim mikrofondan bir ses kaydı aldım ve bunu wav dosyası olarak kaydettim.Ardından ses_komut.py dosyasında ki dosya adresini vs değiştirdim fakat çıktı olarak halen ilk çalıştırdığımda aşağı sonra ise yukarı çıktısını alıyorum.Mantığını kavrayamıyorum sanırım wav dosyasının işlenmesinin.
Yardımcı olup beni aydınlatırsanız çok sevinirim.Teşekkür ederim.

Saygılarımla

Ogrenme algoritmasi geregi pek cok ses kaydi oluşturmalısınız.
ornegin 20 asagi, 20 yukari, 20 sag ve 20 sol gibi. Teorik olarak, ne kadar cok ses kaydi olusturursaniz sonuclar o kadar iyilesir.

Kadir bey,
num_classes sayısını artırdım ve sesler dosyasına kayıt_deneme isminde bir dosya daha açtım.İçine aynı şeyi söylediğim bir çok kayıt ekledim.Ardından kodu çalıştırdığımda kayıt_deneme olarak çıktı verdiğini gördüm.Bazı yerleri değiştirsem de bu durum değişmedi.
Kod çıktı olarak ses dosyasının adını veriyor.Bu konuda bir fikriniz var mı?

Saygılarımla

Yapmaniz gereken sinif sayisi kadar klasor acip olabildigince cok ornegi o klasor altina kopyalamak.

Ornegin asagi/yukari/sag/sol/alt/ust olarak 6 sinif yapmak isteyelim.

Bu durumda num_class = 6 olmali. Ancak deneme klasoru altina ust ve alt klasorleri de acmalisiniz ve ilgili sesleri o klasore kopyalamalisiniz

Ornegin ust klasoru altinda sadece "ust" ses dosyalari olmali.

Son olarak ta test etmek istediginiz ses dosyasi neredeyse

pred = predict('datasets/test_edilecek_dosya.wav', model=model)

oraya koyarak kodu calistirin. Program sesin hangi gruba ait oldugunu cikti olarak size verecektir

Şimdi siz açıkladıktan sonra tam olarak anladım Kadir bey teşekkür ederim.
Kendime yeni bir hedef koydum ve ona çalışmaya başladım. Yapmak istediğim şu; Kullanıcı mikrofondan 4 saniyelik bir cümle söyleyecek ve kod bunu yazıya dökecek.Bu işlemi yine deep learning ile yapmasını istiyorum.Kullanıcının söylediği cümle içerisinde bizim öncesinde eğittiğimiz sağ/sol/yukarı/aşağı yoksa bunları bastırmasına gerek yok.Cümle içinde ki önceden eğitilmiş olanları çıktı vermesini istiyorum.Sizce bunu yapabilir miyim? Araştırmalarıma devam ediyorum ama deep learning ile yapan neredeyse yok gibi,herkes google speech den çekiyor yani internet bağlantılı olarak yapıyorlar.Ben offline yapmak istiyorum.

Kadir Bey teşekkür ederim yardımlarınız için.
Mozilla deep speech üzerinde çalışıyorum ve geliştirmek için çabalıyorum. Umarım istediğim sisitemi kuracağım.

Merhaba Kadir Bey,
Sizin yazdığınız kod üzerinden birkaç soru sormak istiyorum izninizle.
1-)Yazdığınız kodda sesin hangi dosyaya ait olduğu tespit ediliyor.Bu işlem yapılırken wav dosyası model olarak kullanılıyor.Ben mikrofondan ses girişi alıp onu bütün dosyalar içinde tarayarak tespit etmek istiyorum.Bunun üzerine denemeler yaptım fakat başarısız oldu.Yardımcı olursanız çok sevinirim.Geri dönüşünüzü bekliyorum.

Saygılarımla

Sorunuzu anlamadim ancak ML yontemleri dosya karsilastirmasi ile calismiyor. Yani mikrofondan aldiginiz sesi dosyalar icinde tarayarak bulamazsiniz. Arada 1 bit dahi arama fonksiyonunu basarisiz kilar.