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() 

 

posted @ 2020-08-29 21:16    阅读(370)  评论(0编辑  收藏  举报