Güncel pygamei kurunca mixer sesi bozuk çalıyor. Birde ayrı bir hata kodu çıkıyor

Raspberry’de kurulmus python ide’nde açılısta hata mesajı almadığım halde pygameden dolayı fazla beklediği için yükseltmek istedim. Simdi eğer mixer display penceresini çalıstırmazsam sesi bozuk çalıyor. Kodun çok fazla yerinde penceresiz ses çalıyor. Sürüm 2.0.
Nasıl düzeltirim?

Birde Thonny ide’sinde açmayı denedim. Meğer yavas açmasının sebebi asağıdaki hatalarmıs.

Expression 'alsa_snd_pcm_hw_params_set_period_size_near( pcm, hwParams, &alsaPeriodFrames, &dir )' failed in 'src/hostapi/alsa/pa_linux_alsa.c', line: 924
Expression 'alsa_snd_pcm_hw_params_set_period_size_near( pcm, hwParams, &alsaPeriodFrames, &dir )' failed in 'src/hostapi/alsa/pa_linux_alsa.c', line: 924
ALSA lib confmisc.c:1281:(snd_func_refer) Unable to find definition 'cards.bcm2835_alsa.pcm.front.0:CARD=0'
ALSA lib conf.c:4528:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory
ALSA lib conf.c:5007:(snd_config_expand) Evaluate error: No such file or directory
ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM front
ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.rear
ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.center_lfe
ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.side
ALSA lib confmisc.c:1281:(snd_func_refer) Unable to find definition 'cards.bcm2835_alsa.pcm.surround51.0:CARD=0'
ALSA lib conf.c:4528:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory
ALSA lib conf.c:5007:(snd_config_expand) Evaluate error: No such file or directory
ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM surround21
ALSA lib confmisc.c:1281:(snd_func_refer) Unable to find definition 'cards.bcm2835_alsa.pcm.surround51.0:CARD=0'
ALSA lib conf.c:4528:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory
ALSA lib conf.c:5007:(snd_config_expand) Evaluate error: No such file or directory
ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM surround21
ALSA lib confmisc.c:1281:(snd_func_refer) Unable to find definition 'cards.bcm2835_alsa.pcm.surround40.0:CARD=0'
ALSA lib conf.c:4528:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory
ALSA lib conf.c:5007:(snd_config_expand) Evaluate error: No such file or directory
ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM surround40
ALSA lib confmisc.c:1281:(snd_func_refer) Unable to find definition 'cards.bcm2835_alsa.pcm.surround51.0:CARD=0'
ALSA lib conf.c:4528:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory
ALSA lib conf.c:5007:(snd_config_expand) Evaluate error: No such file or directory
ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM surround41
ALSA lib confmisc.c:1281:(snd_func_refer) Unable to find definition 'cards.bcm2835_alsa.pcm.surround51.0:CARD=0'
ALSA lib conf.c:4528:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory
ALSA lib conf.c:5007:(snd_config_expand) Evaluate error: No such file or directory
ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM surround50
ALSA lib confmisc.c:1281:(snd_func_refer) Unable to find definition 'cards.bcm2835_alsa.pcm.surround51.0:CARD=0'
ALSA lib conf.c:4528:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory
ALSA lib conf.c:5007:(snd_config_expand) Evaluate error: No such file or directory
ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM surround51
ALSA lib confmisc.c:1281:(snd_func_refer) Unable to find definition 'cards.bcm2835_alsa.pcm.surround71.0:CARD=0'
ALSA lib conf.c:4528:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory
ALSA lib conf.c:5007:(snd_config_expand) Evaluate error: No such file or directory
ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM surround71
ALSA lib confmisc.c:1281:(snd_func_refer) Unable to find definition 'cards.bcm2835_alsa.pcm.iec958.0:CARD=0,AES0=4,AES1=130,AES2=0,AES3=2'
ALSA lib conf.c:4528:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory
ALSA lib conf.c:5007:(snd_config_expand) Evaluate error: No such file or directory
ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM iec958
ALSA lib confmisc.c:1281:(snd_func_refer) Unable to find definition 'cards.bcm2835_alsa.pcm.iec958.0:CARD=0,AES0=4,AES1=130,AES2=0,AES3=2'
ALSA lib conf.c:4528:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory
ALSA lib conf.c:5007:(snd_config_expand) Evaluate error: No such file or directory
ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM spdif
ALSA lib confmisc.c:1281:(snd_func_refer) Unable to find definition 'cards.bcm2835_alsa.pcm.iec958.0:CARD=0,AES0=4,AES1=130,AES2=0,AES3=2'
ALSA lib conf.c:4528:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory
ALSA lib conf.c:5007:(snd_config_expand) Evaluate error: No such file or directory
ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM spdif
ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.hdmi
ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.hdmi
ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.modem
ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.modem
ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.phoneline
ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.phoneline
ALSA lib confmisc.c:1281:(snd_func_refer) Unable to find definition 'defaults.bluealsa.device'
ALSA lib conf.c:4528:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory
ALSA lib conf.c:4996:(snd_config_expand) Args evaluate error: No such file or directory
ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM bluealsa
ALSA lib confmisc.c:1281:(snd_func_refer) Unable to find definition 'defaults.bluealsa.device'
ALSA lib conf.c:4528:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory
ALSA lib conf.c:4996:(snd_config_expand) Args evaluate error: No such file or directory
ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM bluealsa
ALSA lib pcm_dmix.c:1052:(snd_pcm_dmix_open) unable to open slave
Expression 'alsa_snd_pcm_hw_params_set_period_size_near( pcm, hwParams, &alsaPeriodFrames, &dir )' failed in 'src/hostapi/alsa/pa_linux_alsa.c', line: 924
connect(2) call to /tmp/jack-1000/default/jack_0 failed (err=No such file or directory)
attempt to connect to server failed

Kodunuzu görebilirmiyiz. Bir de tek amacınız ses çalmak ise bu iki linki inceleyin:


pygame 1.9 kullanıyordum. 2.0 'a yükseltince ses bozuk çaldı. ve thonny ide’de hatalar çıkıyor . Acaba bu arızalar raspberry’nin ses kartı hataları mı? öyleyse artık ben bi şekilde düzeltmeye çalışırım. Yoksa pygame’de mi sorun? olmadı tekrar 1.9’a düşüreceğim.

video_capture = cv2.VideoCapture(0)
video_capture.set(3,300)
video_capture.set(4,300)
minW = 0.1*video_capture.get(3)
minH = 0.1*video_capture.get(4)
font = cv2.FONT_HERSHEY_SIMPLEX
faceCascade = cv2.CascadeClassifier("haarcascade_frontalface_default.xml")

panServo = 305
tiltServo = 205
pwm.set_pwm(pan, 0, panServo)
def cam(panServo,tiltServo):
    while True:
        ret, img = video_capture.read()
        img = cv2.flip(img, +1)
        cv2.imwrite('sonyeniyuz.jpg', img)
        if cv2.waitKey(1) & 0xFF == ord('q'):
            break   
        gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
        faces = faceCascade.detectMultiScale(
            img,
            scaleFactor=1.1,
            minNeighbors=30,
            minSize=(10, 30)
            )
        for (x, y, w, h) in faces:
            cv2.rectangle(img, (x, y), (x+w, y+h), (225, 0, 0), 1)
            if x>=1 and x<=71:
                if tiltServo!=220:
                    panServo=panServo-1
                    pwm.set_pwm(pan, 0, panServo)
            elif x>=200 and x<=350:
                if tiltServo!=320:
                    panServo=panServo+1
                    pwm.set_pwm(pan, 0, panServo)
            if y>=1 and y<=80:
                if tiltServo!=255:
                    tiltServo = tiltServo+1
                    pwm.set_pwm(tilt, 0, tiltServo)
            elif y>=120 and y<=350:
                if tiltServo!=150:
                    tiltServo = tiltServo-1
                    pwm.set_pwm(tilt, 0, tiltServo)                    
        cv2.imshow('frame',img)
def dinle(sorgu):
    r = sr.Recognizer()
    r.energy_threshold = 1000
    r.pause_threshold = 1
    m = sr.Microphone(sample_rate = 16000,chunk_size = 19000)
    with m as source:
        r.adjust_for_ambient_noise(source, duration = 1)
        print("Dinliyorum...")
        if (sorgu =="komut"):
            mixer.music.load('beeplow.mp3')
            mixer.music.play()
        audio = r.listen(source)  
    try:
        response = str(r.recognize_google(audio, language="tr"))
        print("Sen dedin ki : '" + response + "'")
        if sorgu =="komut":
            komut(response)
        elif sorgu =="kaydet":
            rsx = sqlite3.connect('hafiza.db')
            rsx_cursorekle = rsx.cursor()
            rsx_sorgu = rsx_cursorekle.execute('SELECT id FROM taninankisiler ORDER BY id desc')
            veri = rsx_cursorekle.fetchall()
            for rsx in veri[0]:
                sonid = int(rsx)+1
                resimyoluson= str(sonid)
                db = sqlite3.connect("hafiza.db")
                cs = db.cursor()
                cs.execute("INSERT INTO taninankisiler(taninankisiadi,resimyolu) VALUES (?,?)",(response,resimyoluson))
                db.commit()
                facecrop("yeniyuz.jpg")          
    except sr.UnknownValueError:
        print("Seni duyamadım")
        if sorgu =="komut":
            dinle("komut")
        elif sorgu =="kaydet":
            response="Duyamadım, ismini tekrar söylermisin"
            return konus(response,"1")
    except sr.RequestError as e:
           response="İnternet bağlantımı kontrol et"
           konus(response)


if __name__ == "__main__": 
    t1 = multiprocessing.Process(target=cam(panServo,tiltServo))
    t2 = multiprocessing.Process(target=dinle("komut"))
    t1.start() 
    t2.start()

Hatalar normal olabilir. Linux’ta bir suru degisik sound sistemi var ve ayni anda calismadiklari icin birinden biri mutlaka hata veriyor. (Raspbian’da Jack kapali geliyor mesela, son mesaj ondan olabilir)

Sesin bozuk calinmasi icin mixer parametrelerini soracaktim ­–bu konuda ilk supheli buffer size’dir– sonra da pre_init kullanarak degistirmeni soyleyecektim ama gordugum kadariyla pygame.init bile cagirmiyorsun. Calismasi mucize.

Yavas calisma hadisesi icin ise kodu profile etmek gerekiyor; oyle birinin kafasina gore "surasi yavaslatiyor herhalde"yle olmaz bu isler.

target parametresindeki sikinti da baska bir thread’de incelenmisti, degil mi?

1 Beğeni

Tamamdır teşekkürler. init çağırıyorum da onu ve bir kaç motor vb. ile ilgili özelliği import etmişim. Çok ses kartı ve mikrofon denedim belkide bunlardan biri yapmış olabilir. Merak edip sadece pygame’i tek bırakmıştım. O zamanda yavaştı ilk yükleme. Sonuçta python’da hataları değilse mecbur bi ara sistemi yenileyeceğim. thread’de bir sorun yok aynen o gayet güzel çalışıyor şuan.

Dandik, ciklet formatindaki USB ses kartlarinda sorun olabiliyor. Bir tanesini kullanirken MIDI sentezleyicim (fluidsynth) gecikmeli calismaya basladi. Inceleyince sistemdeki butun seslerin gec ciktigini fark ettim.

Raspberry Pi icin ses karti olarak HiFiBerry oneriyorum. (Gerci mikrofon preamp’li hat goremedim)

Ses karti denemek sikinti olmaz ama ses kartini calistirabilmek icin yaptigin ayar degisiklikleri sorun olabilir.

Benim deneyimimde en sorunsuz calisan ses arkayuzu ALSA. Jack de denenebilir.

Raspberryde mikrofon girişi olmayınca dandik usblerden aldım. O da alsa ses dosyalarını bozmuş olabilir. Yeniden kurdum sistemi. Python öğrenmek için ve hobi işi olduğu için yüksek maliyetler ödemek gereksiz geliyor. Hani ilerde kod bilgimi çok geliştirip yapay zekalı bir robot yaparsam o zaman değer. Öneriniz güzel teşekkürler. Usb kameranın mikrofonuda kötüydü kameranın iyisini alarak şimdilik kısa bir çözüm buldum. Speech Recognition da gayet başarılı oldu. Bilgilerinizi paylaştığınız için teşekkür ederim