【问题标题】:Resampling audio file does not produce desired result重新采样音频文件不会产生预期的结果
【发布时间】:2021-11-18 05:22:19
【问题描述】:

我想将 32000 KHz 的录音重新采样到 16000 KHz。我已经用下面的代码做到了这一点。但是输出的音频有些混乱。

您可以在以下文件夹中找到原始音频以及输出 https://drive.google.com/drive/folders/1vr-ib8zvZagH_QeE4JSUtAUpp3EG75va

任何想法我做错了什么?

import os
import librosa 
import soundfile as sf 

folder_name = "trial_sess"
os.chdir(os.path.join("process",folder_name))

for file in os.listdir():
    if file.endswith(".m4a") or file.endswith(".mp4") or file.endswith(".mp3"):
        nm,ext = file.split(".")
        sr = librosa.get_samplerate(file)
        y, sr = librosa.load(file, sr = sr)
        sf.write(os.path.join(zoom_loc,"sessions",folder_name,"output_resampled_audio" + "." + "wav"), data = y, samplerate=16000)

【问题讨论】:

    标签: python librosa soundfile


    【解决方案1】:

    您的代码中没有执行重新采样,并且将错误的采样率传递给 write。 如果 sr 参数与原始文件的参数不同,librosa.load 将按需重新采样。所以代码应该是这样的:

    target_sr = 16000
    y, sr = librosa.load(file, sr=target_sr)
    assert sr == target_sr # check that librosa did resample
    out_path = os.path.join(zoom_loc,"sessions",folder_name,"output_resampled_audio" + "." + "wav")
    sf.write(out_path, data = y, samplerate=target_sr)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-11
      • 2015-02-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多