Python 提取音乐频谱并可视化,字节面试官
[](
)頻譜展示
使用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 切割頻譜,以獲得更佳的效果。我們細分到0到1秒的區段來查看頻譜:
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):
導入音樂
song = AudioSegment.from_mp3(filepath)
取begin秒到end秒間的片段
song = song[beginSECOND: endSECOND]
存儲為臨時文件做備份
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()
這下細是細了,但是還是太復雜了,其實我們做頻譜的展示,只需要正值即可:
然后我們還可以進一步放大,比如說0.9秒到1秒之間的頻譜:
放大
(1)Python所有方向的學習路線(新版)
這是
我花了幾天的時間去把Python所有方向的技術點做的整理,形成各個領域的知識點匯總,它的用處就在于,你可以按照上面的知識點去找對應的學習資源,保證自己學得較為全面。
最近我才對這些路線做了一下新的更新,知識體系更全面了。
(2)Python學習視頻
包含了Python入門、爬蟲、數據分析和web開發的學習視頻,總共100多個,雖然沒有那么全面,但是對于入門來說是沒問題的,學完這些之后,你可以按照我上面的學習路線去網上找其他的知識資源進行進階。
(3)100多個練手項目
我們在看視頻學習的時候,不能光動眼動腦不動手,比較科學的學習方法是在理解之后運用它們,這時候練手項目就很適合了,只是里面的項目比較多,水平也是參差不齊,大家可以挑自己能做的項目去練練。
手,比較科學的學習方法是在理解之后運用它們,這時候練手項目就很適合了,只是里面的項目比較多,水平也是參差不齊,大家可以挑自己能做的項目去練練。
總結
以上是生活随笔為你收集整理的Python 提取音乐频谱并可视化,字节面试官的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: html语言单词背不下来,英语单词总是背
- 下一篇: android 压缩文件夹 jar,An