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

2019 年 9 月 3 日
 CoCoMcRee

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

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

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

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

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

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

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

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

© 2021 V2EX