Python 检测系统是否发出了声音,有啥好办法吗?

2019-09-03 09:38:39 +08:00
 CoCoMcRee

场景, 游戏中获得奖励时一般会触发一个音效.(比如超级马里奥中吃到金币时会发出一个音效)

我想检测到这个音效. 因为除了这个音效, 其他背景音乐和声音都被我关闭了. 所以只要检测到系统发出了声音应该就可以了.

各位大佬, 有啥好的办法推荐吗?

6819 次点击
所在节点    Python
24 条回复
CoCoMcRee
2019-09-03 09:44:07 +08:00
大佬们, 给点想法呗
augustheart
2019-09-03 09:44:42 +08:00
此路不通,换思路。
做外挂一般不从声音出发,一般是从图形识别出发
binxin
2019-09-03 09:47:59 +08:00
买一个树莓派 + 声音传感器
rocketman13
2019-09-03 09:53:49 +08:00
这和 python 有什么关系
CoCoMcRee
2019-09-03 09:55:51 +08:00
@rocketman13 我只是希望能利用 python 的一些三方库.
no1xsyzy
2019-09-03 09:58:34 +08:00
1、没有办法判断是否在发声音,因为只要可以发声音的程序,就一直在发声音,即使是 “静音”
2、全局录音,然后判断响度
cxl008
2019-09-03 09:59:22 +08:00
声音传感器
CoCoMcRee
2019-09-03 10:02:44 +08:00
@no1xsyzy 谢谢, 请教一下 全局录音,判断响度. 这个可以实时进行吗? 还是只能先录制, 再判断?
lllllliu
2019-09-03 10:09:34 +08:00
emmm,你只要能拿到 Audio Output 就可以分析 PCM 数据只要当前发出的声音跟你的样本声音差不多就可以。或者如果你能保持其他应用静音,那么 PCM 数据静音的时候是 0,只要大于 0 就是发声啦。
至于怎么拿到 AudioStream 或者管理 AudioSession 可以用虚拟声卡,或者其他 Hook
arrow8899
2019-09-03 10:10:16 +08:00
CoCoMcRee
2019-09-03 10:10:37 +08:00
@lllllliu 谢谢, 有推荐的 python 库方便实现这个吗?
arrow8899
2019-09-03 10:16:46 +08:00
@CoCoMcRee 搜了下,有一个库 PyAudio,需要外部的 mic 支持
https://people.csail.mit.edu/hubert/pyaudio/docs/
qilishasha
2019-09-03 10:18:26 +08:00
图形检测 发现系统声音调节那有波动就认定发声
stoneabc
2019-09-03 10:20:47 +08:00
@CoCoMcRee 如果要用 python,而且又不想通过调 win 动态链接库的话,那应该只能通过 win32api (应该是这个名字?)这个包了,可以查一下有没有封装音频的 API
delectate
2019-09-03 10:23:40 +08:00
换个思路,既然都静音了,那么如果文件被调用,或者播放声音的 api 被调用,或者声卡驱动被调用,就可以判定了。
freeznet
2019-09-03 10:39:56 +08:00
- 模拟声卡 + 数据处理
- hook 声音相关接口 可以 hook 系统层的 也可以逆向一下游戏 hook app 层的
nnnToTnnn
2019-09-03 11:07:03 +08:00
话说为啥不用 orc 来做,这个很方便啊
CallMeReznov
2019-09-03 11:09:13 +08:00
如果是播放具体某个声音文件的话,我建议直接系统监控该音频文件是否被调用
ivan_wl
2019-09-03 11:12:25 +08:00
买一根音频线,一头接输出,一头接输入,然后就检测声音吧
i0error
2019-09-03 11:19:33 +08:00
13 楼思路不错

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/597404

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX