python - 比较 2 个相同的音频文件以在 python 中找到它们之间的延迟
问题描述
我正在尝试比较包含大约相同音频(来自 2 个不同的麦克风)的 2 个音频文件,并试图找出它们之间的延迟。这是我的程序流程:
t1 = threading.Thread(target=audio_to_wav, args=(wav1, 1, _rec_time_,))
t2 = threading.Thread(target=audio_to_wav, args=(wav2, 2, _rec_time_,))
t1.start()
t2.start()
t1.join()
t2.join()
首先,我从 2 个不同的麦克风录制相同的音频,并将其保存为 2 个 wav 文件。(因为,它是 2 个不同的麦克风,硬件不一样,麦克风和我之间的距离也不一样,我预计一个麦克风与另一个麦克风相比会有一些延迟。
arr1, smp1 = wav_to_arr(wav1)
arr2, smp2 = wav_to_arr(wav2)
def wav_to_arr(file):
samplerate, sound = wavfile.read(file)
arr = numpy.array(separate_array(sound), dtype=numpy.float64)
return arr, samplerate
然后,我将每个 wav 文件转换为一个数组。(采样率是固定的:44100)
这里是每个数组的 2 个图:
如您所见,这两个样本非常相似但不一样(正如预期的那样,因为硬件限制和与我的声音的实际距离)。
所以现在,我需要获取这些数组,并以某种方式比较它们以找到它们之间的延迟。我想我知道它是如何完成的,但我的首要任务是找出如何使两个图表具有相同的比例。因为第一个数组值从 -3 跳到 3(y 轴),而第二个数组值从 -1.5 跳到 1.5(y 轴),如果它们不在同一个比例范围内,我该如何比较它们?
那么,我应该如何进行呢?
谢谢你。
解决方案
推荐阅读
- c++ - 在 next_find 中使用 greater_equal 查找排序序列中的等价元素
- r - 移除不完整的 Anaconda 环境,减少 Anaconda 使用的空间
- sql - 在 SQL 中减去毫秒时出现意外结果
- r - 如何制作矩阵行类型
- node.js - 如何在require语句中初始化类?(打字稿)
- android - admob 广告在签名的 apk 中不起作用,它在调试版本中完美运行
- angular - 全局更改 Angular7 十进制格式
- bash - 根据文件名中的 ID cat 多个文件
- python - 用从邻居传播的值替换列表中的无
- java - 我有以下数据集,我想根据重复次数将此数据更改为目标输出数据集