pydub 歌曲,提取副歌,音乐歌曲切片,渐进渐出,音量,歌曲歌谱
#一提起副歌,传参数,为歌曲路径,副歌输出路径,多长时间的副歌 #副歌支持flac wav 不支持mp3 mp4 wma # from pychorus import find_and_output_chorus # chorus_start_sec = find_and_output_chorus("F://那女孩对我说.mp3", "F://a.wav", 40) # print(chorus_start_sec) #二 截取歌曲任意片段 # 需要 ffmpeg/bin/三个exe文件 #以毫秒为单位 # 把歌曲直接看成数组,来切片就行 # from pydub import AudioSegment # song = AudioSegment.from_mp3("F://那女孩对我说.mp3") # song[33*1000:44*1000].export('F://end_of_time_slice.mp3') # #三 控制音量 音量变大,音量变小 # # 音量变大最好别用 声音容易失真 # from pydub import AudioSegment # # 1秒=1000毫秒 # SECOND = 1000 # # 导入音乐 # song = AudioSegment.from_mp3("F://那女孩对我说.mp3") # # 取33秒到70秒间的片段 # song = song[0*SECOND:10*SECOND] # # 入场部分提高6分贝, 退场部分减少5分贝 # ten_seconds = 5 * SECOND # last_five_seconds = -5 * SECOND # beginning = song[:ten_seconds] + 20 # ending = song[last_five_seconds:] - 30 # # 形成新片段 # new_song = beginning + song[ten_seconds:last_five_seconds] + ending # # 导出音乐 # new_song.export('F://end_of_time_slice.mp3') # 四重复片段 数组拼接 # from pydub import AudioSegment # song = AudioSegment.from_mp3("F://那女孩对我说.mp3") # newsong = (song[0*1000:5*1000])*2 # newsong.export('F://end_of_time_slice.mp3') # 五音乐渐进渐出 参数就是几秒钟渐进 几秒钟渐出 # from pydub import AudioSegment # # 导入音乐 # song = AudioSegment.from_mp3("F://那女孩对我说.mp3") # # 提取片段 # song = song[0*1000:10*1000] # # 渐进渐出 # awesome = song.fade_in(5000).fade_out(5000) # # 导出音乐 # awesome.export('F://end_of_time_fade.mp3') # 六音乐反转 # from pydub import AudioSegment # # 导入音乐 # song = AudioSegment.from_mp3("F://那女孩对我说.mp3")[0*1000:100*1000] # # 翻转音乐 # backwards = song.reverse() # # 导出音乐 # backwards.export("F://end_of_time_reverse.mp3") # 七画图谱 # 版本一 # import matplotlib.pyplot as plt # import librosa.display # # 音乐文件载入 # audio_path = 'F://那女孩对我说.mp3' # music, sr = librosa.load(audio_path) # # 宽高比为14:5的图 # plt.figure(figsize=(14, 5)) # librosa.display.waveplot(music, sr=sr) # # 显示图 # plt.show() # 版本二 #import matplotlib.pyplot as plt #import librosa.display #import numpy as np #from pydub import AudioSegment # ## 1秒=1000毫秒 #SECOND = 1000 ## 音乐文件 #AUDIO_PATH = 'F://那女孩对我说.mp3' # #def split_music(begin, end, filepath): # # 导入音乐 # song = AudioSegment.from_mp3(filepath) # # 取begin秒到end秒间的片段 # song = song[begin * SECOND: end * SECOND] # # 存储为临时文件做备份 # temp_path = "F://临时.mp3" # song.export(temp_path) # return temp_path # #music, sr = librosa.load(split_music(0, 1, AUDIO_PATH)) # ## 宽高比为14:5的图 #plt.figure(figsize=(14, 5)) #librosa.display.waveplot(music, sr=sr) #plt.show() # ## 放大 #n0 = 9900 #n1 = 10000 #music = np.array([mic for mic in music if mic > 0]) #plt.figure(figsize=(14, 5)) #plt.plot(music[n0:n1]) #plt.grid() ## 显示图 #plt.show()
-----------------------------------------------------------------------------------------------------------------------------------------