fre_free 2022-12-17 01:55 采纳率: 95.7%
浏览 24
已结题

如何用python去除视频高频杂音

怎么用python去除视频中的滋滋声?
我的想法:把视频的音频提取出来,把音频中的>200Hz的声音去除,从而保留较低频率的人声。但是我不知道怎么具体操作。HELP ME

  • 写回答

1条回答 默认 最新

  • ShowMeAI 2022-12-17 10:50
    关注

    详细方案如下,望采纳


    可以使用 Python 的 MoviePy 库来提取视频中的音频,并使用 NumPy 和 SciPy 库来处理音频数据。

    首先安装工具库库:

    pip install moviepy numpy scipy
    

    提取视频中的音频的代码如下:

    from moviepy.editor import VideoFileClip
    
    # 读入视频文件
    video = VideoFileClip("video.mp4")
    
    # 提取音频
    audio = video.audio
    
    # 转换为 NumPy 数组
    audio_array = audio.to_soundarray()
    

    接下来,可以使用 NumPy 和 SciPy 库中的工具来处理音频数据,例如滤波器或傅里叶变换。

    实际编写代码时,可以使用 SciPy 库中的 butter 函数来创建低通滤波器,然后使用 lfilter 函数来应用滤波器。

    from scipy.signal import butter, lfilter
    
    # 定义滤波器的参数
    lowcut = 200  # 截止频率
    fs = 44100  # 采样频率
    order = 5  # 滤波器的阶数
    
    # 创建低通滤波器
    b, a = butter(order, lowcut / (fs / 2), btype='low')
    
    # 应用滤波器
    filtered_audio = lfilter(b, a, audio_array)
    

    最后再使用 MoviePy 库中的 AudioArrayClip 函数来将处理后的音频数组转换回音频剪辑,并使用 write_audiofile 函数将其写入新的音频文件,示例代码如下

    from moviepy.audio.io.AudioFileClip import AudioArrayClip
    
    # 将处理后的音频数组转换回音频剪辑
    filtered_audio_clip = AudioArrayClip(filtered_audio, fps=fs)
    
    # 将处理后的音频剪辑写入新的音频文件
    filtered_audio_clip.write_audiofile("filtered_audio.mp3")
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 12月26日
  • 已采纳回答 12月18日
  • 创建了问题 12月17日

悬赏问题

  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!
  • ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?
  • ¥15 求daily translation(DT)偏差订正方法的代码
  • ¥15 js调用html页面需要隐藏某个按钮