y, sr = librosa.load怎么使用
时间: 2023-05-17 21:06:10 浏览: 83
y, sr = librosa.load(file_path, sr=None, mono=True, offset=0.0, duration=None, dtype=<class 'numpy.float32'>, res_type='kaiser_best')
其中,file_path 是音频文件的路径,sr 是采样率,mono 表示是否将音频转换为单声道,offset 表示从音频文件的哪个位置开始读取,duration 表示读取多长时间的音频,dtype 表示返回的数据类型,res_type 表示重采样的方法。
相关问题
这段代码有什么问题X_train, sr_X_train = librosa.load(X_Train()) Y_train, sr_Y_train = librosa.load(Y_Train()) X_test, sr_X_test = librosa.load(X_Test()) Y_test, sr_Y_test = librosa.load(Y_Test()) spectrogram = librosa.feature.melspectrogram(y=X_train, sr=sr_train, n_mels=128, fmax=8000) spectrogram = librosa.power_to_db(spectrogram, ref=np.max)
这段代码中有一个问题,spectrogram = librosa.feature.melspectrogram(y=X_train, sr=sr_train, n_mels=128, fmax=8000)中的sr_train应该改为sr_X_train,因为之前的变量名是sr_X_train而不是sr_train。
import librosa filepath = 'D:\\360se6\\bishe\\古筝\\' filename = filepath + 'gz1.wav' y, sr = librosa.load(filename,sr = None ) import librosa import matplotlib.pyplot as plt import librosa.display import numpy as np filepath = 'D:\\360se6\\bishe\\古筝\\' filename = filepath + 'gz1.wav' tempo, beats = librosa.beat.beat_track(y=y, sr=sr) y_beats = librosa.clicks(frames=beats, sr=sr) y_beats = librosa.clicks(frames=beats, sr=sr, length=len(y)) times = librosa.frames_to_time(beats, sr=sr) y_beat_times = librosa.clicks(times=times, sr=sr) y_beat_times880 = librosa.clicks(times=times, sr=sr, click_freq=880, click_duration=0.5) plt.figure() S = librosa.feature.melspectrogram(y=y, sr=sr) ax = plt.subplot(2, 1, 2) librosa.display.specshow(librosa.power_to_db(S, ref=np.max), x_axis='time', y_axis='mel') plt.subplot(2, 1, 1, sharex=ax) librosa.display.waveshow(y_beat_times, sr=sr, label='Beat clicks') plt.legend() plt.xlim(15, 30) plt.tight_layout()
这段代码使用了Python中的librosa库,通过加载音频文件,提取其节拍信息并在节拍处插入点击声,最后绘制出音频的梅尔频谱图和节拍位置的波形图。其中,`filepath`和`filename`分别指定了音频文件所在的文件夹路径和文件名,`y`和`sr`则是通过`librosa.load`函数加载音频文件后返回的音频信号和采样率。接下来,`tempo`和`beats`分别使用`librosa.beat.beat_track`函数获取音频的节奏信息。然后,`y_beats`通过`librosa.clicks`函数在节拍位置产生了一个长度与音频相同的点击声信号,`y_beat_times`和`y_beat_times880`分别使用`librosa.clicks`函数在节拍位置产生了一个与时间轴对应的点击声信号。最后,`librosa.feature.melspectrogram`函数用于提取梅尔频谱图,`librosa.display.specshow`函数和`librosa.display.waveshow`函数用于绘制出梅尔频谱图和节拍位置的波形图。
阅读全文