语音信号处理基础(三)

您所在的位置:网站首页 沃尔玛的供应商选择流程 语音信号处理基础(三)

语音信号处理基础(三)

2024-07-02 02:42:40| 来源: 网络整理| 查看: 265

语音信号处理基础(三)

文章目录 语音信号处理基础(三)语音采集与读写1.语音信号的特点2.语音信号采集的基本原理3.基于MATLAB的语音信号采集与读写4.实例 有关语音信号处理的发展请阅读前两篇博客 语音信号处理基础(一) 语音信号处理基础(二)

语音采集与读写

通过对大量语音信号的观察和分析发现,语音信号主要有下面两个特点

1.语音信号的特点

(1) 在频域内,语音信号的频谱分量主要集中在300-3400Hz的范围内。

利用这个特点,可以用一个防混叠的带通滤波器将此范围内的语音信号频率分出,然后按8kHz的采样

(2) 在时域内,语音信号具有“短时性”的特点

即在总体上,语音信号的特征是随着时间而变化的,但在一段较短时间间隔内,语音信号保持平稳。在浊音段表现出周期信号的特征,在轻音端表现出随机噪声的特征

2.语音信号采集的基本原理

将模拟信号变为数字信号,必须经过采样和量化,得到时间和幅度上均为离散的数字信号语音。采样时, 采样频率必须以高于受测信号的最高频率两倍以上的速度进行取样,才能正确地重建信号。

3.基于MATLAB的语音信号采集与读写

(1)wavrecord()函数:用来录制语音和音频信号。

基本语法:

y=waverecord(n,Fs,ch,'dtype')

n为采样点数,Fs为采样频率,ch为音频设备通道数(1或2表示单声道或立体声)'dtype’表示指定数据类型来记录声音

例如:speech = wavrecord(16000, 8000, 1, ‘double’); 采样的样点放入speech变量中,16000是要采样的点数,8000是采样率 1表示是单声道信号,‘double’

Fs=11025;%采样率为11025Hz y=wavrecord(Fs*5,Fs,'int16');%录制5s的数据 wavplay(y,Fs); %播放录制的音频

(2)wavwrite()函数:写入wav声音文件

注意:在新版本的matlab中不再使用wavwrite,推荐使用audiowrite

函数语法

wavwrite(y,filename)

将保存在变量y的数据,保存到wav文件filename中,默认的采样率为8000Hz,采样位数为16位,y的各列为各个通道,因此立体声数据是两列的矩阵

wavwrite(y,Fs,N,filename)

按给定的采样率Fs和采样位数N,将保存在变量y的数指保存到war文件filename中,N可选值为8,16,24及32。输人的数据范围:y的垢管范周与采样位数N以及y的数据类型有关 在这里插入图片描述

load handel.mat %载入AMATLAB自带的示例音频数据文件 hfile ="Data_wavereard.wav";%准备写的音媒数据文件 wavwrite(y,Fs,hfile)%将y以Fs采样率写到文件中

(3)wavread()函数:读取声音文件

注意:在新版本的matlab中不再使用wavread,推荐使用audioread

函数语法

y =wavread(filename)

载人由filename字符串指定的wav文件,y为返回采样点的数据,若文件名filename不包含扩展名,wavread函数特添加.wav扩展名。

[y,Fs]=wavread(fiename)

返回文件的采样率Fs(Hz).

[y,Fs,nbits]=wavread(filename)

返回每次采样的位数nbits(位).

[y,Fs,nbits,opts]= wavread(filename)

返回包含wav文件额外信息的结构体opts,opts具体的字段与文件有关。

opts典型的两个字段为fmt和info,外别代表声音格式信息和描述标题作者等信息的文本。

load handel.mat %载人MATLAB自带的示例音频数据文件 hfile ='Data_waveread,wav';%准备写的音额数据文件 wavwrite(y,Fs,hfile); %将y以Fs采样率写到文件中 clear y Fs %清除载入的y以及Fs [y,Fs,nbits]= wavread(hfile);%从声音文件中载入数据, %y为从声音文件载入的数据, %Fs为采样率,nbits为采样使用的位数。 sound(y,Fs); %播放声音 pause(4) %暂停4s,与后面的声音分隔开

运行结果

播放起~哈利路亚

(4)wavplay()函数:在基于pc的音频输出设备上播放录制的音频

函数语法

wavplay(y,Fs)

在基于PC的音频输出设备上,播放保存在向量y中的音频信号。Fs是采样率(Hz)。默认的Fs为11025 Hz wavplay支持单通道或双通道(立体声)的音频信号。播放立体声,y必须为两列的矩阵

wavplay(y,Fs,mode)

指定在命令行下如何交互播放音频。

mnde的可选值为’syne’(默认):直到声音播放结束才返回到命令窗口;

当音频正在播放时,以async模式再次调用wavplay,wavplay将阻塞命令行直至上一个播放结束

load chirp; %载入chip.mat到y和Fs y1=y;Fs1 =Fs; %备份y和Fs变量到y1和Fsl load gong; %载人gong.mat到y和Fs中 wavplay(y1,Fs1,'asyne') %播放chirp文件中的音频 wavplay(y,Fs) %上述文件播放完后,才播放gong文件的音额 4.实例

自行录制一段语音,并存储为wa文件。要求:存储为way文件时,分别以采样频率、2倍采样频率和1/2采样频率存为三个wav文件,并将plot函数结合 subplot函数在一幅图上显示3个波形。横轴和纵轴带有标注。横轴的单位为秒(s),纵轴显示的为归一化后的数值。

实现代码

%自行录制一段语音,并存储为wa文件。 %要求:分别以采样频率、2倍采样频率和1/2采样频率存为三个wav文件, %并将plot函数结合 subplot函数在一幅图上显示3个波形。 %横轴和纵轴带有标注。横轴的单位为秒(s),纵轴显示的为归一化后的数值。 Fs=8000; %采样频率 duration=2; %时间长度 n=duration*Fs; %采样点数 t=(1:n)/Fs; %采样时间 load handel.mat %载入MATLAB自带的示例音频数据文件 hfile='Data_waveread.wav'; %准备写的音频数据samples=[1,n]; %读取样本数 [y,Fs]=audioread('hfile.wav',samples); ymax=max(abs(y)); %归一化 y=y/ymax; audiowrite('original.wav',y,Fs); %将原采样频率得到的音频存为original.wav audiowrite('halfsam.wav',y,Fs/2); %将1/2倍采样频率得到的音频存为halfsam.wav audiowrite('doublesam.wav',y,Fs*2);%将2倍采样频率得到的音频存为doublesam.wav [y1,Fsl]= audioread('halfsam.wav');% 读取halfsam.wav文件 t1=(1:length(y1))/Fsl; %计算时间t1 [y2,Fs2]= audioread('doublesam.wav');% 读取doublesam.wav文件 t2=(1:length(y2))/Fs2; %计算时间t2 subplot(311) %作以原采样率采样的音频时间幅值波形图 axis([0 3 -1 1]); %设定x轴与y轴的显示范围 plot(t,y); xlabel('时间/s'); ylabel('幅度'); title('(a)初始采样率'); subplot(312) %作以1/2倍采样率采样的音频时间幅值波形图 axis([0 3 -1 1]); %设定x轴与y轴的显示范围 plot(t1,y1); xlabel('时间/s'); ylabel('幅度'); title('(b)1/2采样率'); subplot(313) %作以2倍采样率采样的音频时间幅值波形图 axis([0 3 -1 1]); %设定x轴与y轴的显示范围 plot(t2,y2); xlabel('时间/s'); ylabel('幅度'); title('(c)2倍采样率');

运行结果 在这里插入图片描述观察结果 分别以采样频率、2倍采样频率和1/2采样频率存为三个wav文件,发现它的波形一致。

原本2秒就能播放完的音频,以1/2采样频率采样后,需要4秒播才能放完。以2倍采样频率采样后,只需要1秒就播放完

为了能更好的感受以不同采样频率采样以后,语音信号的效果不同,编写代码测试试听三个音频文件

sound()函数:播放.wav等音频格式文件

语法

sound(filename,Fs)

以频率值Fs,播放音频文件

实现代码

%倾听以三个不同采样率得到的音频文件 Fs=8000; %采样频率 duration=2; %时间长度 n=duration*Fs; %采样点数 t=(1:n)/Fs; %采样时间 load handel.mat %载入MATLAB自带的示例音频数据文件 hfile='Data_waveread.wav'; %准备写的音频数据 samples=[1,n]; %读取样本数 [y,Fs]=audioread('hfile.wav',samples); ymax=max(abs(y)); %归一化 y=y/ymax; audiowrite('original.wav',y,Fs); %将原采样频率得到的音频存为original audiowrite('halfsam.wav',y,Fs/2); %将1/2采样频率得到的音频存为halfsam audiowrite('doublesam.wav',y,Fs*2);%将2倍采样频率得到的音频存为doublesam [y1,Fs1]= audioread('halfsam.wav');% 读取halfsam.wav文件 [y2,Fs2]= audioread('doublesam.wav');% 读取doublesam.wav文件 sound(y,Fs); %播放以初始采样率采样后的声音 pause(4) %暂停4s,与后面的声音分开 sound(y1,Fs1); %播放以1/2倍采样率采样后的声音 pause(4) %暂停4s,与后面的声音分开 sound(y2,Fs2); %播放以2倍采样率采样后的声音

运行结果

以1/2原始采样频率得到的音频相比以初始采样频率得到的音频慢放

以2倍原始采样频率得到的音频相比以初始采样频率得到的音频快放



【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


图片新闻

实验室药品柜的特性有哪些
实验室药品柜是实验室家具的重要组成部分之一,主要
小学科学实验中有哪些教学
计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
实验室各种仪器原理动图讲
1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
高中化学常见仪器及实验装
1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
微生物操作主要设备和器具
今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
浅谈通风柜使用基本常识
 众所周知,通风柜功能中最主要的就是排气功能。在

专题文章

    CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭