那曲檬骨新材料有限公司

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Python簡(jiǎn)單可視化音樂(lè):提取音樂(lè)頻譜

對(duì)面小姐姐 ? 來(lái)源:Python實(shí)用寶典 ? 作者:Python實(shí)用寶典 ? 2023-10-21 11:39 ? 次閱讀

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

1.準(zhǔn)備

開(kāi)始之前,你要確保Pythonpip已經(jīng)成功安裝在電腦上噢,如果沒(méi)有,請(qǐng)?jiān)L問(wèn)這篇文章:超詳細(xì)Python安裝指南 進(jìn)行安裝。

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

當(dāng)然,我更推薦大家用VSCode編輯器,把本文代碼Copy下來(lái),在編輯器下方的終端裝依賴模塊,多舒服的一件事啊:Python 編程的最好搭檔—VSCode 詳細(xì)指南

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

pip install pydub
pip install librosa

看到 Successfully installed xxx 則說(shuō)明安裝成功。

2.頻譜展示

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

圖片

import matplotlib.pyplot as plt
import librosa.display
# 音樂(lè)文件載入
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()

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

圖片

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

def split_music(begin, end, filepath):
    # 導(dǎo)兒音樂(lè)
    song = AudioSegment.from_mp3(filepath)
    # 取begin秒至ijend秒間的片段
    song = song[begin*SECOND: end*SECOND]
    # 存儲(chǔ)為臨時(shí)文件做備份
    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)一步放大,比如說(shuō)0.9秒到1秒之間的頻譜:

圖片

# 公眾號(hào):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()

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

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

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

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 頻譜
    +關(guān)注

    關(guān)注

    7

    文章

    887

    瀏覽量

    45786
  • 編輯器
    +關(guān)注

    關(guān)注

    1

    文章

    806

    瀏覽量

    31292
  • 可視化
    +關(guān)注

    關(guān)注

    1

    文章

    1200

    瀏覽量

    21035
  • python
    +關(guān)注

    關(guān)注

    56

    文章

    4807

    瀏覽量

    85040
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    數(shù)據(jù)可視化Python-matplotlib概述

    數(shù)據(jù)可視化(二):Python-matplotlib
    發(fā)表于 07-22 14:58

    python數(shù)據(jù)可視化的方法和代碼

    Python數(shù)據(jù)可視化匯總
    發(fā)表于 10-14 14:59

    Python數(shù)據(jù)可視化專(zhuān)家的七個(gè)秘密

    分享 Python數(shù)據(jù)可視化專(zhuān)家的七個(gè)秘密
    發(fā)表于 05-15 06:43

    python數(shù)據(jù)可視化之畫(huà)折線圖

    python數(shù)據(jù)可視化之畫(huà)折線圖,散點(diǎn)圖
    發(fā)表于 05-27 08:09

    Python數(shù)據(jù)可視化

    Python數(shù)據(jù)可視化:網(wǎng)易云音樂(lè)歌單
    發(fā)表于 07-19 08:30

    基于Arduino做個(gè)音樂(lè)可視化LED燈帶

    基于Arduino做個(gè)音樂(lè)可視化LED燈帶,快來(lái)探索用了什么原理和材料!結(jié)合提供的簡(jiǎn)單代碼,軟硬件結(jié)合,你也可以在音樂(lè)中成為最靚的仔!
    發(fā)表于 09-27 08:08

    音樂(lè)樂(lè)譜提取軟件和音樂(lè)常識(shí)

    音樂(lè)樂(lè)譜提取軟件和音樂(lè)常識(shí):由于人耳聽(tīng)覺(jué)系統(tǒng)非常復(fù)雜,迄今為止人類(lèi)對(duì)它的生理結(jié)構(gòu)和聽(tīng)覺(jué)特性還不能從生理解剖角度完全解釋清楚。所以,對(duì)人耳聽(tīng)覺(jué)特性的研究目前僅
    發(fā)表于 05-25 23:47 ?10次下載

    音樂(lè)頻譜-PCB及代碼

    基于stc12c5a單片機(jī)的音樂(lè)頻譜顯示屏幕的制作,可以根據(jù)音樂(lè)顯示出不同的頻譜,且燈的顏色可改變。
    發(fā)表于 02-29 15:08 ?66次下載

    音樂(lè)頻譜顯示器程序電路

    簡(jiǎn)單音樂(lè)頻譜的電路與程序,喜歡的快下載吧!
    發(fā)表于 05-20 14:28 ?10次下載

    12864音樂(lè)頻譜

    12864音樂(lè)頻譜
    發(fā)表于 12-16 08:56 ?49次下載

    音樂(lè)頻譜程序

    音樂(lè)頻譜程序
    發(fā)表于 10-09 17:21 ?23次下載

    Python拉勾網(wǎng)數(shù)據(jù)采集與可視化

    本文是先采集拉勾網(wǎng)上面的數(shù)據(jù),采集的是Python崗位的數(shù)據(jù),然后用Python進(jìn)行可視化。主要涉及的是爬蟲(chóng)&數(shù)據(jù)可視化的知識(shí)。
    的頭像 發(fā)表于 03-13 14:18 ?3307次閱讀
    <b class='flag-5'>Python</b>拉勾網(wǎng)數(shù)據(jù)采集與<b class='flag-5'>可視化</b>

    Python數(shù)據(jù)可視化編程實(shí)戰(zhàn)

    Python數(shù)據(jù)可視化編程實(shí)戰(zhàn)資料免費(fèi)下載。
    發(fā)表于 06-01 14:37 ?29次下載

    如何做一個(gè)音樂(lè)可視化系列小項(xiàng)目LED節(jié)奏燈

    ,逐步積累些有用的音樂(lè)頻譜可視化的資料,也會(huì)爭(zhēng)取成型一些實(shí)用好玩的音樂(lè)可視器項(xiàng)目。 初步設(shè)想: 1、模擬量拾音模塊,主要是采用MAX9814
    的頭像 發(fā)表于 11-09 17:20 ?4745次閱讀
    如何做一個(gè)<b class='flag-5'>音樂(lè)</b><b class='flag-5'>可視化</b>系列小項(xiàng)目LED節(jié)奏燈

    簡(jiǎn)單音樂(lè)頻譜可視化

    電子發(fā)燒友網(wǎng)站提供《超簡(jiǎn)單音樂(lè)頻譜可視化器.zip》資料免費(fèi)下載
    發(fā)表于 11-17 14:36 ?1次下載
    超<b class='flag-5'>簡(jiǎn)單</b>的<b class='flag-5'>音樂(lè)</b><b class='flag-5'>頻譜</b><b class='flag-5'>可視化</b>器
    综合百家乐博彩论坛| 澳门百家乐娱乐城打不开| 足球投注| 免费百家乐奥秘| 99真人娱乐城| 网上百家乐返水| 哪个百家乐官网投注好| 百家乐哪家有优惠| 百家乐官网连黑记录| 真人百家乐游戏软件| 百家乐官网霸王闲| 大发888婚庆车队| 24山风水发几房| 重庆市| 百家乐为什么庄5| 百家乐官网之对子的技巧| 威尼斯人娱乐场色碟| 百家乐官网分| 关岭| 二代百家乐破解| 南京百家乐官网在哪| 至尊百家| 百家乐平游戏| 微信百家乐官网群规则大全| 南汇区| 同乐城百家乐娱乐城| 新濠峰百家乐官网的玩法技巧和规则| 二八杠分析仪| 百家乐注码技巧| 百家乐官网群b28博你| 棋牌娱乐网,| 百家乐官网规律打法| 游戏厅百家乐官网软件| 凯斯网百家乐的玩法技巧和规则 | 百家乐官网技巧赚钱| 宝胜娱乐场| 二八杠游戏平台| 大地百家乐的玩法技巧和规则| 百家乐有真假宝单吗| 百家乐官网解析| 金都百家乐官网现金网|