librosa提取音乐音频频谱特征并可视化

准备做一个能够将口头哼唱旋律转换成乐谱音符的应用,首先就需要能够识别出录音中各个时点声音的频率音高,还好有librosa,可以实现音频的功率谱和频率谱、音色谱的提取和可视化。 

import librosa
import librosa.display
import numpy as np

y,sr=librosa.load(r"d:\test.wav")
print(y.shape)
print(sr)

plt.plot(y)

#音色谱
chroma_stft = librosa.feature.chroma_stft(y=y, sr=sr,n_chroma=12, n_fft=4096)
#另一种常数Q音色谱
chroma_cq = librosa.feature.chroma_cqt(y=y, sr=sr)
#功率归一化音色谱
chroma_cens = librosa.feature.chroma_cens(y=y, sr=sr)
print(chroma_cens.shape)

plt.figure(figsize=(15,15))
plt.subplot(3,1,1)
librosa.display.specshow(chroma_stft, y_axis='chroma')
plt.title('chroma_stft')
plt.colorbar()
plt.subplot(3,1,2)
librosa.display.specshow(chroma_cq, y_axis='chroma', x_axis='time')
plt.title('chroma_cqt')
plt.colorbar()
plt.subplot(3,1,3)
librosa.display.specshow(chroma_cens, y_axis='chroma', x_axis='time')
plt.title('chroma_cens')
plt.colorbar()
plt.tight_layout()

 

librosa提取音乐音频频谱特征并可视化_第1张图片

librosa提取音乐音频频谱特征并可视化_第2张图片

 

你可能感兴趣的:(python)