用Python求取语音的基音频率图
时间: 2023-11-05 17:18:56 浏览: 53
以下是一个用Python绘制语音基音频率图的例子,基于上面的代码,需要用到matplotlib库来绘制图形:
```python
import numpy as np
import scipy.signal as signal
import matplotlib.pyplot as plt
# 读取语音文件
sample_rate, signal_data = wavfile.read('speech.wav')
# 帧长和帧移
frame_length = int(sample_rate * 0.02)
frame_step = int(sample_rate * 0.01)
# 分帧
frames = np.array([signal_data[i:i+frame_length] for i in range(0, len(signal_data)-frame_length, frame_step)])
# 求取自相关函数
corr = np.array([np.correlate(frame, frame, mode='full') for frame in frames])
corr = corr[:, len(corr[0])//2:]
# 找到每一帧的基音周期
periods = []
for i in range(len(corr)):
peak = signal.find_peaks(corr[i], height=0)[0]
if len(peak) > 1:
period = (peak[1] - peak[0]) / sample_rate
periods.append(period)
else:
periods.append(0)
# 计算基音频率
fundamental_freq = np.array(periods)
fundamental_freq[fundamental_freq > 0] = 1 / fundamental_freq[fundamental_freq > 0]
fundamental_freq = fundamental_freq * sample_rate
# 绘制基音频率图
plt.plot(fundamental_freq)
plt.xlabel('Frame')
plt.ylabel('Fundamental Frequency (Hz)')
plt.show()
```
在这个例子中,我们将基音频率绘制为一个图形,x轴表示帧的编号,y轴表示基音频率的值。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)