0

假设您有一间会议室,会议在任意临时时间举行。您想保留所有会议的录音。为了使其尽可能易于使用,会议参加者不需要采取任何行动,他们只知道当他们在特定房间开会时,他们会有记录。

显然,仅仅不间断地记录是低效的,因为它会浪费数据存储并且很难筛选。

我认为有两种基本方法可以解决这个问题。

  1. 录音只是根据声级阈值开始和停止。
  2. 记录是连续的,但分成 X 分钟的块。发现不包含内容的块将被丢弃。

我更喜欢第二种方式,因为我觉得由于启动晚或触发器失败而丢失数据的风险较小。

我想在 Python 中实现,如果可能的话在 Windows 上实现。

实施建议?

可能值得他们自己提问的额外注意事项:

  • 为此目的的最佳音频格式和压缩
  • 任何确定有多少发言者在场的方法,假设识别是不切实际的
4

2 回答 2

1

这是其中一个项目的路径将被更多地定义为手头有什么可供重复使用。

您可能会发现以块的形式连续记录和保存数据(例如,长达一小时的片段)更容易。

格式将取决于录音工具和音频处理库的形式。您甚至可能会发现您使用了两个。一种格式,例如用于录制和处理的 PCM 编码 WAV,但用于存储的压缩 MP3。

拥有音频流后,您需要以 PCM 形式(幅度值列表)访问它。一个简单的平均方法可能足以检测何时有对话。典型的调整属性: * 触发的平均能量水平 * 您需要处于能量水平或低于能量水平以识别停止和启动所需的时间(我推荐两个不同的值) * 平均分析窗口的大小

至于参与者的数量,除非你找到一个这样做的图书馆,否则我看不到一个简单的解决方案。我之前使用过语音识别引擎,并且还进行了合理数量的音频处理,但我还没有看到任何“简单”的方法来做到这一点。如果您要查看,请搜索从事语音分析研究的大学。您可能会找到一些可以修改的原型,从而为您的软件提供一些线索。

于 2009-11-13T12:02:44.993 回答
1

我认为您将很难完全在 Python 中执行此操作。您正在谈论对 MP3 文件进行频率/幅度分析。您必须打开文件并查找音量阈值,然后删除低于该阈值的部分。弄清楚有多少扬声器存在需要非常先进的信号处理。

粗略的谷歌搜索对我来说一无所获。寻找现成的解决方案可能会更好。

顺便说一句 - 让录音机 24/7 全天候运行而不让人们知道可能会带来法律上的复杂性。

于 2009-11-12T19:34:51.447 回答