鱼C论坛

 找回密码
 立即注册
查看: 3284|回复: 10

[已解决]写了一个监听到声音就按键的脚本,一直报错,网上也没有解决办法

[复制链接]
发表于 2023-12-25 23:28:36 | 显示全部楼层
这个错误通常是由于您没有选择正确的音频设备引起的。您可以尝试检查一下您的电脑上的音频设备是否正常工作,并在代码中指定正确的设备。

首先,您可以使用sounddevice库的query_devices函数来查看可用的音频设备列表:
  1. import sounddevice as sd
  2. devices = sd.query_devices()
  3. print(devices)
复制代码

然后,查看列表中的设备信息,并找到合适的输入设备的索引。例如,如果您想使用内置麦克风,则可以找到索引号,并将其添加到stream参数中:
  1. stream = sd.InputStream(callback=audio_callback, device=input_device_index)
复制代码

或者,您也可以尝试指定默认设备,使用`device='default'`作为stream参数:
  1. stream = sd.InputStream(callback=audio_callback, device='default')
复制代码

如果以上方法仍然无法解决问题,您还可以尝试更新sounddevice库和pyaudio库,确保它们是最新版本:
  1. pip install --upgrade sounddevice pyaudio
复制代码

希望这可以帮助您解决问题!如果问题仍然存在,请告诉我。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-12-25 23:34:39 | 显示全部楼层
s644703207 发表于 2023-12-25 23:34
0 Microsoft 声音映射器 - Output, MME (0 in, 2 out) ...

看起来您列出了所有可用的音频设备列表。根据列表,您可以选择具有输入功能的设备作为输入设备。请注意,某些设备可能只具有输出功能,并且无法用于输入。

如果您想使用当前正在使用的播放设备作为输入设备,可以尝试使用以下代码:
  1. import sounddevice as sd
  2. def audio_callback(indata, frames, time, status):
  3.     # 处理声音回调函数的代码
  4. # 获取当前默认音频输入设备的索引
  5. default_input_device = sd.default.device[0]
  6. # 打开默认音频输入流
  7. stream = sd.InputStream(callback=audio_callback, device=default_input_device)
  8. stream.start()
  9. # 持续监听声音输入
  10. while True:
  11.     pass
  12. # 停止声音输入流
  13. stream.stop()
复制代码

如果上述代码仍然报错,可能是因为您的音频驱动程序或库存在问题。您可以尝试更新音频驱动程序、sounddevice库和pyaudio库来解决问题。另外,如果您使用的是Windows系统,还可以尝试以管理员权限运行代码。

希望这些建议能够帮助您解决问题!如果问题仍然存在,请告诉我。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-12-25 23:44:34 | 显示全部楼层
s644703207 发表于 2023-12-25 23:44
sounddevice.PortAudioError: Error querying device  ...

很抱歉,让您遇到了这个问题。这个错误通常是因为无法正确查询设备导致的。

有时候,您可以尝试指定具体的设备索引,而不是使用"default"或"-1"。根据您列出的设备列表,您可以看到一些设备附带有输入和输出的信息,例如:"扬声器 (High Definition Audio Device)" 和 "PK27QA2 (NVIDIA High Definition Audio)"。

您可以使用这些设备中的一个的索引号作为参数传递给`device`参数。例如,如果您想使用第一个设备作为输入设备,您可以将代码改为:
  1. stream = sd.InputStream(callback=audio_callback, device=0)
复制代码

请确保您的设备索引号是合法且存在的。

如果问题仍然存在,请尝试更新sounddevice库和pyaudio库,以及您的音频驱动程序,确保它们是最新版本。或者,您也可以尝试在其他环境下运行代码,例如使用不同的操作系统或计算机。

如果以上方法仍然无法解决问题,可能需要进一步检查您的音频设备和驱动程序是否正常工作,并查看相关错误信息。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-12-26 16:04:23 | 显示全部楼层
s644703207 发表于 2023-12-26 16:04
问题解决了,win11取消了立体声混音,装win10打开混音 ...

很高兴听到您解决了问题!是的,不同的操作系统版本可能会对立体声混音和音频设备管理方式有所不同。在某些情况下,旧版本的操作系统可能支持更多的音频功能。如果您在Windows 11上遇到了问题,而在Windows 10上没有问题,那么回退到Windows 10可能是一种解决方法。感谢您分享解决方案!如果您还有其他问题,随时向我提问。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-12-26 16:05:11 | 显示全部楼层
s644703207 发表于 2023-12-26 16:04
问题解决了,win11取消了立体声混音,装win10打开混音 ...

很高兴听到您解决了问题!是的,不同的操作系统版本可能对立体声混音和音频设备管理方式有所不同。在某些情况下,旧版本的操作系统可能支持更多的音频功能。如果您在Windows 11上遇到了问题,而在Windows 10上没有问题,那么回退到Windows 10可能是一种解决方法。感谢您分享解决方案!如果您还有其他问题,随时向我提问。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-9-22 16:54

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表