Python'da yüz algılayınca ses kaydı çalıştırma

Merhaba Python’da openCV kullanarak bir proje yapmaya çalışıyorum. Yüz algılayınca ses kaydı çalıştırmasını istiyorum. Bana kısa bir örnek yazarak yardımcı olabilecek var mı?

Tabi yardımcı olalım.

Yüzü nerede algılasın? fotoğrafta, kamerada?

Ses kaydı çalıştırsın derken?

Önceden kaydedilen bir sesi mi çalmasını istiyorsun yoksa mikrofon açıp ses kaydetmeye mi başlasın?

önceden kaydedilen bir sesin çalışmasını istiyorum. kameradanda algılamasını istiyorum

Adım adım anlatalım.

Face Detection using Python and OpenCV with webcam - GeeksforGeeks

Bu linkteki kodları incele.

Sonra beraber bir kod yazalım.

Yapman gereken tek şey çerçeve çizdiği koda bir ses çalma kodu eklemek.

Endişelenme her adımda eşlik edip kodu yazarız.

Önce kameranı kullanmayı dene.

Koddaki örneklerle sonra o koda, ses çalmak için bir kod ekleriz.

Opencv kurmayı bildiğini, python a eklemeyi bildiğini varsayıyorum.

Bunlarda da sorunun olursa beraber adım adım bakarız.

Aslında kod bütün işi kendi yapıyor. Çok fazla yoracak bir şey yok.

Ama biraz üzerinde düşünmeni isediğimden link verdim. Elimde hazır kodlar var birini ekleyip geçebilirdim.

2 Beğeni

Senle iletişime geçebileceğim bir discord hesabın varmı

Birebir çalışmıyorum. Burada sorabilirsin. Böylece kodları herkesle paylaşırız.

1 Beğeni

Elimde yüz algılayan bir kodum var. Ben buna ses çalma kodu eklemek istiyorum.

Benim de elimde basit kodlar var.

import cv2

# Enable camera
cap = cv2.VideoCapture(0)
cap.set(3, 640)
cap.set(4, 420)

# import cascade file for facial recognition
faceCascade = cv2.CascadeClassifier(cv2.data.haarcascades + "haarcascade_frontalface_default.xml")


while True:
    success, img = cap.read()
    imgGray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

    # Getting corners around the face
    faces = faceCascade.detectMultiScale(imgGray, 1.3, 5)  # 1.3 = scale factor, 5 = minimum neighbor
    # drawing bounding box around face
    for (x, y, w, h) in faces:
        img = cv2.rectangle(img, (x, y), (x + w, y + h), (0, 255, 0), 3)



    cv2.imshow('face_detect', img)
    if cv2.waitKey(10) & 0xFF == ord('q'):
        break
cap.release()
cv2.destroyWindow('face_detect')

Bu kadarcık kodla yüz algılayabilirsin.

Zaten.

cv2.rectangle satırının altına bir tane ses eklemen yeterli.

Tabi kendi kodunu paylaşmak istersen ona da bakabiliriz.

Bu kodu da adım adım anlatabilirim, sen nasıl istersen.

2 Beğeni

Kodu deneyeceğim şimdiden teşekürler.

müzik çalmak için de,

import playsound
playsound.playsound('sample.mp3', False)

Bu da arka plana şarkıyı atar.

Sadece bir kez çaldırmak için bir değişken tutarsın.

Her çerçeve yakaladığında çalmasın diye.

Hepsi bu.

2 Beğeni

Şimdi denedim fakat şöyle bir hata veriyor. [ WARN:0@2.183] global D:\a\opencv-python\opencv-python\opencv\modules\videoio\src\cap_msmf.cpp (539) `anonymous-namespace’::SourceReaderCB::~SourceReaderCB terminating async callback

cap = cv2.VideoCapture(0)

yazan yeri;

cv2.VideoCapture(0, cv2.CAP_DSHOW)

şeklinde değiştir.

Hangi opencv sürümü, hangi python sürümü kullandığınla alakalı bir durum.

1 Beğeni

Kusura bakma senide yoruyorum ama bu sefer başka bir hata verdi. openCV sürümüm:4.5.5
Traceback (most recent call last):
File “c:\Users\arda\Desktop\ilk_porje\demo.py”, line 15, in
imgGray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
cv2.error: OpenCV(4.5.5) D:\a\opencv-python\opencv-python\opencv\modules\imgproc\src\color.cpp:182: error: (-215:Assertion failed) !_src.empty() in function ‘cv::cvtColor’

Sisteminde tanımlı bir kamera var mı?

İşletim sistemin ne?

Kullanıcı yetkilerin yeterli mi?

Şu anda kamerana ulaşamadığı için, açamıyorsun.

1 Beğeni

ip kamera kullanıyorum.
winows.
ilk başta ses çalma komudu yazmadan önce kameramı açıyordu. bu yüzden yetkilerin yeterli olduğunu düşünüyorum.

Ses çalma kodunu eklemeden önceki hali derken?

Kodu nasıl ekledin görebilir miyim?

1 Beğeni

import cv2

import playsound

Enable camera

cap = cv2.VideoCapture(0, cv2.CAP_DSHOW)

cap.set(3, 640)

cap.set(4, 420)

import cascade file for facial recognition

faceCascade = cv2.CascadeClassifier(cv2.data.haarcascades + “haarcascade_frontalface_default.xml”)

while True:

success, img = cap.read()

imgGray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

# Getting corners around the face

faces = faceCascade.detectMultiScale(imgGray, 1.3, 5)  # 1.3 = scale factor, 5 = minimum neighbor

# drawing bounding box around face

for (x, y, w, h) in faces:

    img = cv2.rectangle(img, (x, y), (x + w, y + h), (0, 255, 0), 3)

    playsound.playsound('Kayıt.mp3', False)

cv2.imshow('face_detect', img)

if cv2.waitKey(10) & 0xFF == ord('q'):

    break

cap.release()

cv2.destroyWindow(‘face_detect’)

Kodunda her sonsuz döngüde her çerçeve çizdiğinde müzik çalmaya çalışmışsın.

Ben de ilk verdiğim kod çalışmadı sandım.

Şöyle düşün.

Sadece ilk bulduğunda bir kez müziği başlatsın.

Bu şekilde for döngüsü içinde sürekli şarkı açar.

Biraz çözüme odaklan çözemezsen kodu ekleyeyim.

1 Beğeni

Yukardaki hata bununlamı alakalı. yoksa benim openCV sürümümlemi alakalı (kodu verme).

Her ikisi ile de alakalı olabilir. Ama öncelikle mantıksal hataları düzeltmek gerekir.

İlk hali ile çalışıyorsa, sürüm sorunu çözüldü demektir.

İkinci adımda sesi yanlış yere ekledi isen, kaynağa yada kameraya ulaşmasını engelliyorsun demektir.

Kodu veririm sorun değil, ben de senle beraber adım adım inceliyorum.

Sadece müzik çalma kodunun yerini ve çalışma şeklini biraz incelemelisin.

1 Beğeni