问题描述
我在 MacMojave 上并尝试在麦克风信号超过阈值时播放声音文件。我有:
import sounddevice as sd
import soundfile as sf
import numpy as np
duration = 5 # seconds
threshold = 30
filename = "./data/piano.wav"
data,fs = sf.read(filename,dtype='float32')
def print_sound(indata,outdata,frames,time,status):
if status:
print(status)
global threshold,data,fs
volume_norm = 5*np.linalg.norm(indata)
if volume_norm > threshold:
print("so loud!!!!")
sd.play(data,fs)
with sd.Stream(callback=print_sound):
sd.sleep(1000*duration)
当我运行它时,声音超过阈值,但是,它无法打开输出流,如下所示;
$python3 main.py
input underflow
input underflow
input underflow
so loud!!!!
so loud!!!!
input overflow,output underflow
so loud!!!!
input overflow,output underflow
so loud!!!!
||PaMacCore (AUHAL)|| Error on line 1316: err=''nope'',msg=Audio Hardware: Illegal Operation
From cffi callback <function _StreamBase.__init__.<locals>.callback_ptr at 0x10caf8680>:
Traceback (most recent call last):
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/sounddevice.py",line 881,in callback_ptr
callback,idata,odata,status)
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/sounddevice.py",line 2678,in _wrap_callback
callback(*args)
File "main.py",line 17,in print_sound
sd.play(data,fs)
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/sounddevice.py",line 177,in play
**kwargs)
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/sounddevice.py",line 2578,in start_stream
**kwargs)
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/sounddevice.py",line 1489,in __init__
**_remove_self(locals()))
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/sounddevice.py",line 895,in __init__
'Error opening {}'.format(self.__class__.__name__))
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/sounddevice.py",line 2738,in _check
raise PortAudioError(errormsg,err)
sounddevice.PortAudioError: Error opening OutputStream: Internal PortAudio error [PaErrorCode -9986]
我重新启动了 iMac(Mojave),但仍然出现相同的错误。
任何帮助将不胜感激。
CS
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)