加载语音信号xfs = audioreadCUsersASUSDesktop20230607_210020wav;x=x1; 设置窗口大小及重叠长度winlen = 01; 窗口大小winshift = 001; 重叠长度 计算窗口长度和重叠长度的样点数nwinlen = roundwinlenfs; 窗口长度样点数nwinshift = roundwinshiftfs; 重叠长度样点数
- 加载语音信号:
读取.wav格式的语音文件,存储在变量x中,并获得采样率fs。
- 设置窗口大小及重叠长度:
设置窗口大小winlen为0.1秒,重叠长度winshift为0.01秒。
- 计算窗口长度和重叠长度的样点数:
由于短时傅里叶变换需要指定窗口长度和重叠长度的样点数,因此需要将窗口长度winlen和重叠长度winshift乘以采样率fs并四舍五入得到样点数nwinlen和nwinshift。
- 加窗:
使用矩形窗和汉明窗对原始语音信号x进行加窗处理,得到窗函数分别为win_rect和win_ham,加窗后的语音信号分别为w_rect和w_ham。
- 时域波形:
将原始波形x、加矩形窗后的波形w_rect和加汉明窗后的波形w_ham绘制在时域上,展示不同窗函数对波形的影响。
- 短时频谱:
使用短时傅里叶变换对原始语音信号x、加矩形窗后的语音信号w_rect和加汉明窗后的语音信号w_ham进行分析,得到它们的短时频谱S_rect和S_ham,并将其绘制出来,展示不同窗函数对短时频谱的影响。其中,nfft为FFT点数,f为频率刻度,win_overlap为重叠长度的样点数,hop为帧移(即每次分析的语音帧之间的间隔)
原文地址: https://www.cveoy.top/t/topic/gYMB 著作权归作者所有。请勿转载和采集!