最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python實(shí)現(xiàn)提取音樂頻譜的方法詳解

 更新時間:2022年06月14日 10:08:31   作者:Ckend  
你有沒有經(jīng)常好奇一些音樂軟件的頻譜特效是怎么做的,為什么做的這么好看?有沒有想試試自己提取音樂頻譜并可視化展現(xiàn)出來?本文就來教你如何利用Python提取音樂頻譜,快來學(xué)習(xí)一下吧

前言

你有沒有經(jīng)常好奇一些音樂軟件的頻譜特效是怎么做的,為什么做的這么好看?有沒有想試試自己提取音樂頻譜并可視化展現(xiàn)出來?今天,咱就結(jié)合上次的音樂剪輯操作:

3行Python代碼實(shí)現(xiàn)剪輯音樂

來簡單粗暴地可視化下面這首歌曲的頻譜!

1.準(zhǔn)備

開始之前,你要確保Python和pip已經(jīng)成功安裝在電腦上,如果沒有,可以訪問這篇文章:超詳細(xì)Python安裝指南 進(jìn)行安裝。

Windows環(huán)境下打開Cmd(開始—運(yùn)行—CMD),蘋果系統(tǒng)環(huán)境下請打開Terminal(command+空格輸入Terminal),準(zhǔn)備開始輸入命令安裝依賴。

當(dāng)然,我更推薦大家用VSCode編輯器,把本文代碼Copy下來,在編輯器下方的終端裝依賴模塊,多舒服的一件事啊

在終端輸入以下命令安裝我們所需要的依賴模塊:

pip install pydub
pip install librosa

看到 Successfully installed xxx 則說明安裝成功。

2.頻譜展示

使用librosa和matplot,我們可以用10行代碼完整地展示整個頻譜:

圖片

import?matplotlib.pyplot?as?plt
import?librosa.display
# 音樂文件載入
audio_path =?'Fenn.mp3'
music, sr = librosa.load(audio_path)
# 寬高比為14:5的圖
plt.figure(figsize=(14,5))
librosa.display.waveplot(music, sr=sr)
# 顯示圖
plt.show()

不過,這樣的頻譜是整段音樂的,看起來非常難看,接下來我們使用 pydub 切割頻譜,以獲得更佳的效果。我們細(xì)分到0到1秒的區(qū)段來查看頻譜:

圖片

import?matplotlib.pyplot?as?plt
import?librosa.display
import?numpy?as?np
from?pydub?import?AudioSegment
# 1秒=1000亳秒
SECOND =?1000
#音樂文件
AUDIO_PATH =?'Fenn.mp3'

def?split_music(begin, end, filepath):
????# 導(dǎo)兒音樂
????song = AudioSegment.from_mp3(filepath)
????# 取begin秒至ijend秒間的片段
????song = song[begin*SECOND: end*SECOND]
????# 存儲為臨時文件做備份
????temp_path =?'backup/'+filepath
????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()

這下細(xì)是細(xì)了,但是還是太復(fù)雜了,其實(shí)我們做頻譜的展示,或許只需要正值即可:

圖片

然后我們還可以進(jìn)一步放大,比如說0.9秒到1秒之間的頻譜:

圖片

# 公眾號:Python 實(shí)用寶典
n0 =?9000
n1 =?10000
music = np.array([mic?for?mic?in?music?if?mic >?0])
plt.figure(figsize=(14,?5))
pit.plot(music[n0:n1])
plt.grid()
#顯示圖
plt.show()

這樣好看許多,不過如果要達(dá)成QQ音樂那種效果,還是需要進(jìn)行大量改造。

比如用精美的圖像元素來填充替代、然后零值如何處理?如何讓頻譜更加平穩(wěn)?此外,我們是靜態(tài)的圖像,還需要根據(jù)事件動態(tài)地延續(xù)波段。

用于生產(chǎn)的代碼肯定比我們這簡易的代碼更加復(fù)雜,而且也不應(yīng)該是暴力去除負(fù)值繪制圖像。這些有興趣的讀者可以自行研究啦。

以上就是Python實(shí)現(xiàn)提取音樂頻譜的方法詳解的詳細(xì)內(nèi)容,更多關(guān)于Python提取頻譜的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Python爬蟲設(shè)置ip代理過程解析

    Python爬蟲設(shè)置ip代理過程解析

    這篇文章主要介紹了Python爬蟲設(shè)置ip代理過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-07-07
  • Python實(shí)現(xiàn)替換文件中指定內(nèi)容的方法

    Python實(shí)現(xiàn)替換文件中指定內(nèi)容的方法

    這篇文章主要介紹了Python實(shí)現(xiàn)替換文件中指定內(nèi)容的方法,涉及Python文件讀寫、字符串替換等相關(guān)操作技巧,需要的朋友可以參考下
    2018-03-03
  • 如何用python開發(fā)Zeroc Ice應(yīng)用

    如何用python開發(fā)Zeroc Ice應(yīng)用

    這篇文章主要介紹了如何用python開發(fā)Zeroc Ice應(yīng)用,幫助大家更好的理解和使用python,感興趣的朋友可以了解下
    2021-01-01
  • python中ctypes使用方法

    python中ctypes使用方法

    這篇文章主要介紹了python中ctypes使用方法,包括 python和c中類型映射,操作結(jié)構(gòu)體和聯(lián)合體,需要定義結(jié)構(gòu)體或聯(lián)合體的類型,然后可以創(chuàng)建實(shí)例、訪問其成員等,感興趣的朋友跟隨小編一起看看吧
    2024-04-04
  • python中__init__()方法詳情

    python中__init__()方法詳情

    這篇文章主要介紹了?python中__init__()方法詳情,python類中定義的函數(shù)稱為方法,?init?()方法本質(zhì)也是一個函數(shù)。這個函數(shù)的作用是初始化實(shí)例后的對象,具體內(nèi)容請參考下文詳細(xì)內(nèi)容
    2021-11-11
  • openCV-Python筆記之解讀圖像的讀取、顯示和保存問題

    openCV-Python筆記之解讀圖像的讀取、顯示和保存問題

    這篇文章主要介紹了openCV-Python筆記之解讀圖像的讀取、顯示和保存問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-12-12
  • Python錯誤: SyntaxError: Non-ASCII character解決辦法

    Python錯誤: SyntaxError: Non-ASCII character解決辦法

    這篇文章主要介紹了Python錯誤: SyntaxError: Non-ASCII character解決辦法的相關(guān)資料,需要的朋友可以參考下
    2017-06-06
  • Win10下python 2.7與python 3.7雙環(huán)境安裝教程圖解

    Win10下python 2.7與python 3.7雙環(huán)境安裝教程圖解

    這篇文章主要介紹了Win10下python 2.7與python 3.7雙環(huán)境安裝教程,本文圖文并茂給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-10-10
  • Python xml、字典、json、類四種數(shù)據(jù)類型如何實(shí)現(xiàn)互相轉(zhuǎn)換

    Python xml、字典、json、類四種數(shù)據(jù)類型如何實(shí)現(xiàn)互相轉(zhuǎn)換

    這篇文章主要介紹了Python xml、字典、json、類四種數(shù)據(jù)類型如何實(shí)現(xiàn)互相轉(zhuǎn)換,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-05-05
  • Python靜態(tài)類型檢查新工具之pyright 使用指南

    Python靜態(tài)類型檢查新工具之pyright 使用指南

    這篇文章主要介紹了Python靜態(tài)類型檢查新工具之pyright 使用指南,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-04-04

最新評論

简阳市| 兴宁市| 兴和县| 广德县| 赤峰市| 九寨沟县| 涟水县| 肇庆市| 马山县| 格尔木市| 闵行区| 马关县| 富民县| 罗甸县| 彭阳县| 肃北| 军事| 溧水县| 阜新市| 贺兰县| 长宁区| 集贤县| 噶尔县| 盐城市| 台中县| 乐业县| 绿春县| 太康县| 容城县| 营山县| 鄂托克旗| 黄龙县| 龙泉市| 谢通门县| 汝南县| 翼城县| 广水市| 井陉县| 宣城市| 元朗区| 大方县|