python生成语谱图,python生成,语音的时域分析和频域
python生成语谱图,python生成,语音的时域分析和频域
语音的时域分析和频域分析是语音分析的两种重要方法,但是都存在着局限性。时域分析对语音信号的频率特性没有直观的了解,频域特性中又没有语音信号随时间的变化关系。而语谱图综合了时域和频域的优点,明显的显示出了语音频谱随时间的变化情况、语谱图的横轴为时间,纵轴为频率,任意给定频率成分在给定时刻的强弱用颜色深浅来表示。颜色深的,频谱值大,颜色浅的,频谱值小。语谱图上不同的黑白程度形成不同的纹路,称之为声纹,不同讲话者的声纹是不一样的,可用作声纹识别。
下面是在python中绘制语谱图:
# 导入相应的包
import numpy, waveimport matplotlib.pyplot as pltimport numpy as npimport osfilename = ‘bluesky3.wav‘
# 调用wave模块中的open函数,打开语音文件。f = wave.open(filename,‘rb‘)
# 得到语音参数params = f.getparams()nchannels, sampwidth, framerate,nframes = params[:4]
# 得到的数据是字符串,需要将其转成int型strData = f.readframes(nframes)wavaData = np.fromstring(strData,dtype=np.int16)
# 归一化wavaData = wavaData * 1.0/max(abs(wavaData))
# .T 表示转置wavaData = np.reshape(wavaData,[nframes,nchannels]).Tf.close()
# 绘制频谱plt.specgram(wavaData[0],Fs = framerate,scale_by_freq=True,sides=‘default‘)plt.ylabel(‘Frequency‘)plt.xlabel(‘Time(s)‘)plt.show()
python生成语谱图
相关内容
- Python3.6列表函数&方法,python3.6函数,函数:1、l
- 【Python】Django2.0集成Celery4.1详解,django2.0celery4.1,环境准
- Python-Redis的Set操作,python-redisset,集合为不重复的列表无
- python基础:字符编码问题三个不可见的字符(0xEF 0xBB
- python数据分析实战-第9章-数据分析实例气象数据,pyt
- python对离散数据进行编码,python离散编码,机器学习中会
- python+requests实现接口测试 - get与post请求使用,pythonre
- win10环境下python版libsvm的安装,win10libsvm,1.前言由于毕业
- Python读取jsonlines格式文件,python读取jsonlines,Python读取
- python中的scapy模块,pythonscapy模块,scapy模块是干嘛
评论关闭