zoukankan      html  css  js  c++  java
  • Python实现音乐的剪辑

    一、读取音频文件

    from scipy.io import wavfile
    import numpy as np
    like = wavfile.read('./嘤嘤嘤.wav')
    print (like)

      结果:

        

       图片是三维的ndarray,视频是四维的由[[img],[img],[img]]+音频组成

       这里读取音频文件使用的scipy,scipy四个高端科学计算端。

       音频结果将返回一个tuple。第一维参数是采样频率,单位为秒;第二维数据是一个ndarray表示歌曲,如果第二维的ndarray只有一个数据表示单声道,两个数据表示立体声。很明显这里是个立体声。

      所以,通过控制第二维数据就能对歌曲进行裁剪。

      继续音频裁剪就是:

        like[1][ start_s*44100 : end_s*44100 ]

        对like这个元组第二维数据进行裁剪,所以是like[1];第二维数据中是对音乐数据切分。 start_s表示你想裁剪音频的起始时间;同理end_s表示你裁剪音频的结束时间。乘44100 是因为每秒需要进行44100次采样。

      对音频进行裁剪,并保存到本地,使用wavfile中的write:

    wavfile.write('like2.wav',44100,like[1][30*44100:45*44100])

      第一个参数表示,保存的路径。第二个参数表示采样频率。第三个参数表示裁剪的音乐片段。

      完整代码就是:

    1 from scipy.io import wavfile
    2 import numpy as np
    3 like = wavfile.read('./嘤嘤嘤.wav')
    4 wavfile.write('like2.wav',44100,like[1][30*44100:45*44100])

    二、两段音乐拼接:

      音乐拼接使用ndarray的级联:

        np.concatenate(参数1:参数2)

      完整代码:

    from scipy.io import wavfile
    import numpy as np
    like = wavfile.read('./嘤嘤嘤.wav')
    jueji = wavfile.read('./林俊杰-爱不会绝迹.wav')
    mix = np.concatenate([like[1][:30*44100],jueji[1][-30*44100:]])
    wavfile.write('./mix.wav',44100,mix)
  • 相关阅读:
    AjaxHelper使用范例
    IE浏览器的条件编译指令和微软的ajax实现
    基于AjaxHelper0.41的相册范例程序演示及一个关于博客园的功能建议
    AjaxHelper 0.41
    .Net环境下基于Ajax的MVC方案
    Msys/MinGW与Cygwin/gcc[转]
    常见应用程序的架构
    perl正则表达式[转]
    [CruiseControl] 概念
    MinGW
  • 原文地址:https://www.cnblogs.com/MoonlightMaleGod/p/9966240.html
Copyright © 2011-2022 走看看