我出生时就是单面死亡,简而言之,就意味着你的一只耳朵就死了。只能听到一只耳朵的声音,会让你失去听到方向和声音距离的能力。
我想知道在给定立体声音流的情况下是否可以确定声音的方向。为简化起见,仅针对两个通道(左和右)并假设不存在背景噪声。
应对这个问题的初步策略是什么?
提前致谢。
答案 0 :(得分:1)
这似乎是一个有趣的问题。 此外,由于这是一个假设情景,下面给出的解决方案/想法也很可能,并且将取决于很多因素。
考虑到我们有立体声音频,使用pydub,我们可以使用以下方法将其分成两个单声道:
AudioSegment(...).split_to_mono()
将立体声音频分段分成两个,每个通道一个(左/右)。返回包含新AudioCgment对象的列表,其中左侧通道位于索引0,右侧通道位于索引1。
然后我们可以找出使用
最响亮的频道AudioSegment(...).split_to_mono()
将立体声音频分段分成两个,每个通道一个(左/右)。返回包含新AudioCgment对象的列表,其中左侧通道位于索引0,右侧通道位于索引1。
然后我们使用以下方法测量每个频道的响度:
AudioSegment(...).rms 衡量响度。用于计算dBFS,这是大多数情况下应该使用的值。响度是对数的(均方根不是),这使得dB更加自然。
因此,为了测试,我使用立体声音乐波形文件并分成两个单声道声道并检查其响度以查看哪个声道最响亮。
from pydub import AudioSegment
sound = AudioSegment.from_file("audio.wav")
split_sound = sound.split_to_mono()
left_loudness = split_sound[0].rms
right_loudness = split_sound[1].rms
输出
>>> left_loudness
7030
>>> right_loudness
6993
>>>