gpt4 book ai didi

python - 在音频文件中查找音效

转载 作者:行者123 更新时间:2023-12-02 22:48:32 26 4
gpt4 key购买 nike

我有 3 小时的 MP3 文件,每约 15 分钟播放一次独特的 1 秒音效,这标志着新章节的开始。

是否可以在每次播放此音效时进行识别,以便我可以记下时间偏移?

每次的声音效果都差不多,但是因为是有损文件格式编码的,所以会有少量的变化。

时间偏移将存储在 ID3 Chapter Frame MetaData 中.

Example Source ,音效播放两次。
ffmpeg -ss 0.9 -i source.mp3 -t 0.95 sample1.mp3 -acodec copy -y

  • Sample 1 ( Spectrogram )
  • ffmpeg -ss 4.5 -i source.mp3 -t 0.95 sample2.mp3 -acodec copy -y
  • Sample 2 ( Spectrogram )


  • 我对音频处理很陌生,但我最初的想法是提取 1 秒音效的样本,然后使用 librosa在python中提取一个 floating point time series对于这两个文件,四舍五入浮点数,并尝试匹配。
    import numpy
    import librosa

    print("Load files")

    source_series, source_rate = librosa.load('source.mp3') # 3 hour file
    sample_series, sample_rate = librosa.load('sample.mp3') # 1 second file

    print("Round series")

    source_series = numpy.around(source_series, decimals=5);
    sample_series = numpy.around(sample_series, decimals=5);

    print("Process series")

    source_start = 0
    sample_matching = 0
    sample_length = len(sample_series)

    for source_id, source_sample in enumerate(source_series):

    if source_sample == sample_series[sample_matching]:

    sample_matching += 1

    if sample_matching >= sample_length:

    print(float(source_start) / source_rate)

    sample_matching = 0

    elif sample_matching == 1:

    source_start = source_id;

    else:

    sample_matching = 0

    这不适用于上面的 MP3 文件,但适用于 MP4 版本 - 它能够找到我提取的样本,但只有一个样本(不是全部 12 个)。

    我还应该注意到这个脚本只需要 1 分钟多一点的时间来处理 3 小时的文件(其中包括 237,426,624 个样本)。所以我可以想象,对每个循环进行某种平均会导致这需要更长的时间。

    最佳答案

    尝试直接匹配时域中的波形样本并不是一个好主意。 mp3 信号将保留感知特性,但很可能频率分量的相位将发生偏移,因此样本值将不匹配。

    您可以尝试匹配效果和样本的音量包络。
    这不太可能受 mp3 过程的影响。

    首先,标准化您的样本,以便嵌入的效果与您的引用效果相同。通过使用峰值在时间范围内的平均值(刚好足以捕获相关特征),从效果和样本构建新的波形。最好还是使用重叠帧。然后在时域中使用互相关。

    如果这不起作用,那么您可以使用 FFT 分析每个帧,这将为您提供每个帧的特征向量。然后,您尝试查找效果中的特征序列与样本的匹配项。类似于 https://stackoverflow.com/users/1967571/jonnor建议。 MFCC 用于语音识别,但由于您没有检测语音 FFT 可能没问题。

    我假设效果是自己播放的(没有背景噪音),并以电子方式添加到录音中(而不是通过麦克风录制)。如果不是这种情况,问题就会变得更加困难。

    关于python - 在音频文件中查找音效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52572693/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com