首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python 学习手册
Python Cookbook
Python 基础教程
Python Sites
PyPI - Python Package Index
http://www.simple-is-better.com/
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
Coding
V2EX  ›  Python

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

  •  
  •   CoCoMcRee · 103 天前 · 2671 次点击
    这是一个创建于 103 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

    24 回复  |  直到 2019-09-03 21:08:04 +08:00
        1
    CoCoMcRee   103 天前
    大佬们, 给点想法呗
        2
    augustheart   103 天前
    此路不通,换思路。
    做外挂一般不从声音出发,一般是从图形识别出发
        3
    binxin   103 天前   ♥ 1
    买一个树莓派 + 声音传感器
        4
    rocketman13   103 天前
    这和 python 有什么关系
        5
    CoCoMcRee   103 天前
    @rocketman13 我只是希望能利用 python 的一些三方库.
        6
    no1xsyzy   103 天前
    1、没有办法判断是否在发声音,因为只要可以发声音的程序,就一直在发声音,即使是 “静音”
    2、全局录音,然后判断响度
        7
    cxl008   103 天前
    声音传感器
        8
    CoCoMcRee   103 天前
    @no1xsyzy 谢谢, 请教一下 全局录音,判断响度. 这个可以实时进行吗? 还是只能先录制, 再判断?
        9
    lllllliu   103 天前
    emmm,你只要能拿到 Audio Output 就可以分析 PCM 数据只要当前发出的声音跟你的样本声音差不多就可以。或者如果你能保持其他应用静音,那么 PCM 数据静音的时候是 0,只要大于 0 就是发声啦。
    至于怎么拿到 AudioStream 或者管理 AudioSession 可以用虚拟声卡,或者其他 Hook
        10
    arrow8899   103 天前
        11
    CoCoMcRee   103 天前
    @lllllliu 谢谢, 有推荐的 python 库方便实现这个吗?
        12
    arrow8899   103 天前
    @CoCoMcRee 搜了下,有一个库 PyAudio,需要外部的 mic 支持
    https://people.csail.mit.edu/hubert/pyaudio/docs/
        13
    qilishasha   103 天前 via iPhone   ♥ 3
    图形检测 发现系统声音调节那有波动就认定发声
        14
    stoneabc   103 天前
    @CoCoMcRee 如果要用 python,而且又不想通过调 win 动态链接库的话,那应该只能通过 win32api (应该是这个名字?)这个包了,可以查一下有没有封装音频的 API
        15
    delectate   103 天前
    换个思路,既然都静音了,那么如果文件被调用,或者播放声音的 api 被调用,或者声卡驱动被调用,就可以判定了。
        16
    freeznet   103 天前
    - 模拟声卡 + 数据处理
    - hook 声音相关接口 可以 hook 系统层的 也可以逆向一下游戏 hook app 层的
        17
    nnnToTnnn   103 天前
    话说为啥不用 orc 来做,这个很方便啊
        18
    CallMeReznov   103 天前
    如果是播放具体某个声音文件的话,我建议直接系统监控该音频文件是否被调用
        19
    ivan_wl   103 天前
    买一根音频线,一头接输出,一头接输入,然后就检测声音吧
        20
    i0error   103 天前
    13 楼思路不错
        21
    uxstone   103 天前
        22
    ysc3839   103 天前
    Windows 的话不需要录音,有接口可以获取所有发出声音的进程以及实时音量。
        23
    hehheh   103 天前
    win com 好像是能做这个,我记不太清楚了
        24
    exip   102 天前 via Android
    用 Audacity 调成内录音也就是录系统发出的任何声音,用 python 实时分析录音波形就可以了。
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2350 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 26ms · UTC 08:41 · PVG 16:41 · LAX 00:41 · JFK 03:41
    ♥ Do have faith in what you're doing.