推荐学习书目
› Learn Python the Hard Way
Python Sites
› PyPI - Python Package Index
› 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
CoCoMcRee
V2EX  ›  Python

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

  •  
  •   CoCoMcRee ·
    MQL9011 · Sep 3, 2019 · 7922 views
    This topic created in 2589 days ago, the information mentioned may be changed or developed.

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

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

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

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