从物理源和日志日期/tim检测特定声音

2024-05-23 18:48:55 发布

您现在位置:Python中文网/ 问答频道 /正文

简而言之

我们正在做一个UNI项目,并希望建立一个设备来记录日期/时间时,挂在墙上的电话铃声。我们需要关于如何构建记录器并根据需要编程的反馈和替代方案。我们最终需要的是一个数据集,显示电话铃响的时间和频率

背景

声音是一个电话连接到前门,有一个标准的“铃声”。该设备可以直接位于其中一部手机的顶部,这是客户现场每层楼的声源。手机位于中心位置,人们可以近距离移动和通话

编辑:除前门外,手机不可用于任何其他用途

我们有团队内使用RaspberryPi、Python和通用前端语言的经验,如果需要,我们可以访问大学和客户资源

要求

  • 不得配备或配置为监听设备(因为存在捕获敏感讨论的风险)
  • 应能在不进行维护的情况下登录至少三周
  • 日志应该有很高的准确性:当有人说话或走过时,日志是假阳性
  • 在硬件方面应具有成本效益
  • 可以用树莓或类似的
  • 不应该简单地记录声音,声级

研究

我找到了一个相关的线程“Detect tap with pyaudio from live mic”,在那里他们讨论读取和比较0,05秒的块,以便在有人轻敲麦克风时开始录制音频。在我们的场景中,声音差异可能不会像敲击麦克风那样明显,但这可能是一种合适的方法

我们发现的另一个帖子是this on detecting if specific sounds。我们可以得到一个干净的声音副本,但我忍不住觉得可能有一个更简单的方法来做它

This post about detecting a specific sound is about MLS or sine sweeps并不是我们真正想要做的,因为我们想要检测的音频不是任意的,而是固定的“铃声”

我们还没有发现Audacity能够检测特定的声音

也许可以使用接触式麦克风来减少不必要的噪音?该设备将在源上的权利,但由于它是一个电话,它可能会导致误报,如果有人使用电话?我们或许可以将其中一部手机专门用于数据收集,并禁止其正常使用

我们感谢任何和所有的反馈,以帮助我们与这个项目。提前谢谢

更新1

我们想出了一条捷径,可以减少所需的编程。如果我们测量发送到手机扬声器的电流呢?这将需要我们打开电话,并在扬声器元件上放置一些电缆,但这应该是相当容易的。我们计划下周早些时候进行初步测试

更新2

我们不被允许打开手机壳,因为它们是房东的。也就是说,我们正在研究使用Arduino来处理传感器

最终更新

最后,我们选择了一个树莓型(我们发现了一个3B我们可以使用,不介意它会有点过于强大)和一个SparkFun sound detector使用GPIO pinsI2C上进行通信。我们就一些问题,可能是硬件故障的RPi或传感器或缺乏知识从我们这边。这只是一个子项目,在我们的情况下没有太大的影响,我们放弃它,以集中在更紧迫的问题。有点糟糕,因为失去的时间,但你必须优先考虑

快乐黑客


Tags: 数据项目方法声音硬件编程记录时间