语音信号声谱图代码
时间: 2023-08-05 15:13:28 浏览: 91
以下是Python代码,可以生成语音信号的声谱图:
```python
import librosa
import librosa.display
import matplotlib.pyplot as plt
# 加载音频文件
audio_path = 'audio.wav'
signal, sr = librosa.load(audio_path, sr=None)
# 计算短时傅里叶变换
n_fft = 2048
hop_length = 512
stft = librosa.stft(signal, n_fft=n_fft, hop_length=hop_length)
# 计算幅度谱
amplitude = np.abs(stft)
# 转换为分贝
log_amplitude = librosa.amplitude_to_db(amplitude, ref=np.max)
# 绘制声谱图
plt.figure(figsize=(12, 8))
librosa.display.specshow(log_amplitude, sr=sr, hop_length=hop_length, x_axis='time', y_axis='hz')
plt.colorbar(format='%+2.0f dB')
plt.title('Spectrogram')
plt.tight_layout()
plt.show()
```
其中,`audio_path` 为音频文件路径,`signal` 为加载的音频信号,`sr` 为采样率。在代码中,我们使用了 `librosa` 库来计算短时傅里叶变换和幅度谱,并使用 `matplotlib` 库来绘制声谱图。
阅读全文