2017-05-09 21 views
0

在使用莫爾斯電碼播放程序時,我發現sounddevice 0.3.7會間歇性地工作,一次完美播放,然後下一個只是做一個一堆點擊聲音。Python模塊sounddevice間歇性地不能在OSX和Linux上工作(點擊)

我玩使用這種方法相當短的節段(第二可達幾秒鐘):

sd.default.samplrate = 8000.0 # tried other sample rates as well 
wav_wave = np.array(self.gain * w, dtype=np.int16) 
sd.play(wav_wave, blocking=True) 

其中w是在正確的採樣率採樣的np.array和大多DITS和DAHS的基調。工作時,聽起來很棒,破碎時聽起來像是一堆點擊。

我不知道爲什麼會發生這種情況。

+0

在每個'sd.play()'之後,您應該使用[sd.get_status()]檢查下溢/溢出(http://python-sounddevice.readthedocs.io/en/latest/#sounddevice.get_status )。 – Matthias

+0

Thanx,sd.get_status()返回「輸出下溢」,當它不起作用。現在找到一個簡單的方法來解決這個問題。 – dspmathguru

+0

在三臺不同的機器上嘗試了相同的代碼。 MacBook Pro 15「,MacBook Pro 13」和Ubuntu 16.04盒子。它不會在15「有時在13」上下溢,在Ubuntu盒子上下溢90%。該設備是Ubuntu上的ALSA設備。也許這是問題? – dspmathguru

回答

0

那麼,我發現從Ubuntu 16.04升級到17.04,一切都開始奏效。並不是說這是正確的解決方案,但我認爲這是指向ALSA中的一些錯誤,即我的代碼暴露得如此簡單。

+0

我仍然有這個問題,但不太經常。我發現做一個sd.reset()是非常重要的,它讓我的問題更少。當我完全擺脫這個問題時,我會發布。 – dspmathguru

相關問題