如何检测计算机上的“完全静音”并在发生这种情况时开始播放给定的声音文件,然后在出现其他声音时停止?

如何检测计算机上的“完全静音”并在发生这种情况时开始播放给定的声音文件,然后在出现其他声音时停止?

我有一个非常令人沮丧的问题。我经常在工作时在 Twitch 上听 ASMR 直播。经常会发生一些发出很大噪音的事情,比如狗叫声或背景中有人尖叫,ASMR 主播需要打喷嚏或咳嗽等。每当发生这种情况时,主播往往会立即按下物理麦克风(或软件)上的“静音”按钮,这会完全静音他们的音频输出,从舒适、舒缓的音频背景(抚慰我的耳朵)变成震耳欲聋的寂静,因为我显然不会在 ASMR 的同时播放其他声音,因为那会破坏整个体验并“吃掉”任何细微的声音。它立即让我失去放松,让我非常不舒服和恼火。

我曾无数次尝试建议他们启用某种功能,这样就不会切换到完全静音,而是播放普通的“白噪声”,或者更好的是,循环播放最后几分钟,直到恢复麦克风。然而,我还没能说服任何一个主播这样做,坦率地说,我自己都不知道怎么做,所以我很难指望他们知道这一点,因为他们中的大多数人都远不如我“精通电脑”。在我看来,它应该是任何“ASMR 麦克风”或流媒体软件内置的标准功能,但它(可能)不是。

因此,我一直在认真思考如何解决这个问题我的end 代替。我想要某种机制来执行以下操作:

  1. 每当它检测到我的 Windows 10 计算机上播放的音量为 0% 或预定百分比时,它就会开始播放给定的声音文件(我提前准备好的,里面只有白噪声)。
  2. 每当它检测到有声音,或者声音超过给定的百分比(显然用白噪声排除循环声音文件)时,它就会停止播放声音文件。

这真是太棒了,而且(大部分情况下)可以让我免于被突然静音所困扰。但是,由于即使是最简单的事情也总是会变成一场巨大的斗争,而且我认为这是“相当复杂”,所以我对解决这个问题几乎不抱太大希望。

我确实安装了 AutoHotKey,但我非常怀疑它是否如此先进/智能。这可能需要一些专用软件或其他东西,这反过来又会导致信任问题,因为我非常现在运行任何新软件都很令人担忧……但我们不要操之过急。我想听听对此的任何合理解决方案。

注意:任何需要按快捷键或其他东西是不能接受的。不仅仅是因为“工作量太大”,还因为我经常沉浸在主机操作系统的 AutoHotKey 绑定不起作用/不适用的虚拟机中。

答案1

我要尝试一下,并且说 - 除非你从头开始编写应用程序代码,否则你是不会这么做的。

你需要:-

  1. 拦截接收应用程序与音频输出之间的音频流
  2. 量化沉默
  3. 触发替代播放
  4. 识别[当前静音的]音频流何时再次产生声音并切换回来。

我怀疑是否存在任何现有结构可以做到这一点。

从音频工程的角度来看,与程序员或“计算机用户”不同,您可以使用带侧链的键控门,但这需要您的“紧急音频”不断播放,而不是由门启动和停止。从
纯粹的“音频工程”术语来看,这是一个相当简单的设置……如果您恰好在商用数字音频工作站 [DAW] 中运行两个音频通道。相反,要在操作系统级别执行此操作,则需要您将预先存在的技术设计到音频流中,在操作系统的相当低的位置。

答案2

有一些方法可能比在接收应用程序和音频输出之间进行内部拦截更容易......

  1. 使用环回电缆检测麦克风正在播放的内容。这使用扬声器输出上的 Y 型分线器,然后将一侧重新插入麦克风插孔(通常使用公对公电缆插入 Y 型分线器)。这仍然需要一些音频检测编程来触发(播放/停止)白噪声(无论是否存在较大的音频)——检测算法必须能够区分白噪声和实际音频内容。使用 .wav 文件或 VLC/Winamp 自动化或您选择的任何方法,白噪声的播放将相当简单。这里的优点是您不必拦截任何东西。
  2. 使用多个声卡,并配备一个始终运行的 DAW(根据 Tetsujin 的建议)和门控侧链。您需要将音频从一个声卡环回到另一个声卡(通过软环回驱动程序或通过外部环回电缆),在 DAW 中处理它,然后将处理后的信号输出到第二个声卡输出。有一些便宜的小型 USB 声卡可能可以为您提供第二个音频输出,供 DAW 使用。
  3. 以上组合。使用多个声卡,流式音频从一个音频接口输出,白噪声从另一个音频接口输出。流式音频被环回,因此声音检测 100% 可靠,因为它不是流式音频和白噪声的组合(白噪声将在单独的音频输出上)。您必须将两个声卡输出组合成一个输出,然后使用便宜的外部混音器或无源外部 A+B 音频组合器将其发送到扬声器/耳机(并且必须以这种方式完成,以便它是一个定向耦合,而不是仅将输出电缆连接在一起,因为您不希望白噪声信号返回到从主音频输出分离出来的麦克风输入中)。
  4. 基于侧链输入降低信号音量的另一个术语称为“闪避”。在这种情况下,只要您有所需的流式音频信号,您就会闪避白噪声。您可以使用专用闪避器在外部执行此操作 - 一个例子是 Rolls DU30b Audio Ducker。除了流式音频之外,还必须生成白噪声并将其作为始终开启的输出提供给此盒子,然后只要有流式音频,盒子就会闪避始终开启的白噪声。
  5. 使用第二台计算机作为外部“ducker”盒。将第一台计算机的音频输出运行到第二台计算机的麦克风插孔,然后 A) 对麦克风输入进行采样并将其直接传递到音频输出,或者 B) 如果麦克风插孔上没有任何东西,则播放白噪声。这与上面的几个选项类似,只是硬件设置略有不同。如果您有一台旧电脑可以编程,那么它可能比购买外部硬件更容易。或者也许只需使用 Raspberry Pi 即可——可能比专用的音频类型解决方案更便宜。

笔记:在上述大多数情况下,我使用术语“白噪声”,但实际上我指的是任何合适的、不是完全安静的环境音频源。

相关内容