如何解决在 Python 中测量扬声器音量?
我正在尝试用 Python 测量扬声器的声级。这个想法是打开一个浏览器来播放声音,并且由于浏览器将音频输出到默认扬声器,因此使用 sounddevice
测量该声音但是,我无法让它工作。这是我到目前为止的代码
import sounddevice as sd
import numpy as np
def print_sound(outdata,frames,time,status):
volume_norm = np.linalg.norm(outdata)*10
print ("|" * int(volume_norm))
deviceInfo = sd.query_devices(kind='output')
print(deviceInfo)
sd.default.device = deviceInfo
with sd.OutputStream(callback=print_sound,device=deviceInfo['index']):
sd.sleep(10000)
我被抛出这个错误:
{'name': 'Speakers (Realtek High Definiti','hostapi': 0,'max_input_channels': 0,'max_output_channels': 2,'default_low_input_latency': 0.09,'default_low_output_latency': 0.09,'default_high_input_latency': 0.18,'default_high_output_latency': 0.18,'default_samplerate': 44100.0}
Traceback (most recent call last):
File "c:\Users\MyUser\Desktop\MyProjects\MainRecorderScript\venv\lib\site-packages\sounddevice.py",line 2710,in _split
invalue,outvalue = value
ValueError: too many values to unpack (expected 2)
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "c:\Users\MyUser\Desktop\MyProjects\MainRecorderScript\sound_device_test.py",line 11,in <module>
sd.default.device = deviceInfo
File "c:\Users\MyUser\Desktop\MyProjects\MainRecorderScript\venv\lib\site-packages\sounddevice.py",line 2170,in __setattr__
getattr(self,name)._pair[:] = _split(value)
File "c:\Users\MyUser\Desktop\MyProjects\MainRecorderScript\venv\lib\site-packages\sounddevice.py",line 2714,in _split
raise ValueError('Only single values and pairs are allowed') from e
ValueError: Only single values and pairs are allowed
我不想指定一个字符串来命名默认扬声器,因为这会从 PC 移动到 PC,所以我希望捕获默认扬声器。不会插入麦克风
编辑:作为参考,我尝试修改此脚本 How to read realtime microphone audio volume in python and ffmpeg or similar
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。