分享

MATLAB中与语音有关的命令及用法

 许康华竞赛优学 2020-08-26

语音浊音段波形及其功率谱分析


今天介绍MATLAB中有关语音的命令及其用法,是第四次大作业必备的知识点,希望认真阅读,并在MATLAB上实际操作体验。

第四次大作业包括三个重要内容:一是各种图形的绘制;二是处理语音的各种命令的用法;三是滤波器的设计。其中,绘图和语音命令在前面的大作业中都已经做过了,这里对语音命令做一个汇编,如有遗漏以后再补充。


1、 用语音做实验,第一步是录制实验用语音,可以在WINDOWS里的“语音录音机”里面录制,也可以MATLAB环境下录制。录制之前需要将麦克风连接电脑。

2、 WINDOWS进行语音的录制,注意要保存为wav波形文件形式,这种语音文件可以用MATLAB命令直接读取。其他的文件格式如wma等,都是压缩文件,MATLAB命令不能直接读取,但是都可以利用有关工具转化为wav波形文件。

3、 MATLAB环境中用音频输入设备录制声音,命令为wavrecord,有两种格式:

wavrecord(N, Fs, CH):录制N个采样点,录制频率为Fs,声道数为CH。标准的采样速率包括8000, 11025, 22050, 44100 HzCH =1时为单声道,CH = 2时为双声道。采样值保存在一个N × CH矩阵中。未指定时,默认为Fs = 11025 HzCH = 1

wavrecord(N, Fs, CH, DTYPE):用DTYPE指定返回的数据类型,支持的数据类型和相应的每样点比特数如下:

DTYPE     bits/sample

'double'      16

'single'       16

'int16'        16

'uint8'        8

例子:

Fs =11025;                     % 采样率为11.025 kHz

y =wavrecord(5*Fs, Fs, 'int16');    % 以每样点16比特录制5秒语音

wavplay(y,Fs);                  % 以频率Fs播放语音

4、 wav格式的声音读入向量,命令为wavread,有五种格式:

y =wavread('filename'):读入由filename指定的一个wav声音文件,并将数据返回到向量y中。

[y, Fs,bits] = wavread('filename'):读入由filename指定的一个wav声音文件,将数据返回到向量y中,并读取声音的频率值和位数。

[y, Fs,bits] = wavread('filename', N):返回声音文件的每个声道前N个数据。

[y, Fs,bits] = wavread('filename', [N1, N2]):返回声音文件的每个声道第N1N2个数据。

siz =wavread('filename', 'size'):返回声音文件的大小。

描述:该函数支持8位或16位多声道wav声音文件。

5、 播放MATLAB语音向量y为声音,命令为wavplay,有五种格式:

wavplay(y, Fs):将语音向量y以频率Fs播放,标准的音频频率包括8000,11025, 22050, 44100 Hz

wavplay(y):以默认播放频率11025 Hz播放语音向量y

wavplay(y, Fs, 'async'):开始播放语音向量y的同时,立即返回函数调用(非阻塞调用)

wavplay(y, Fs, 'sync'):播放语音向量y,直到播放结束返回函数调用(阻塞调用)

语音向量y的取值范围为[-1.0, 1.0],超过该范围的值将被忽略。

支持的数据类型同wavrecord命令。

6、 将声音向量y保存为wav波形文件(文件后缀为.wav),命令为wavwrite,有三种格式:

wavwrite(y,'filename'):将声音向量y的数据写入到filename指定的数据文件。

wavwrite(y,Fs, 'filename'):用指定的声音频率将声音向量y的数据写入到filename指定的数据文件。

wavwrite(y, Fs, N, 'filename'):用指定的声音频率将声音向量y的数据写入到filename指定的数据文件,还指定了编码器的位数。

7、 将声音向量y播放为声音,命令为sound,有三种格式:

sound(y,Fs):把存储在向量y中抽样频率为Fs的信号传送给计算机的扬声器。向量y中元素的取值范围位于[-1.0, 1.0]之内,超过该范围的值将被忽略。如果y是一个n × 2阶矩阵,则利用函数sound就可以在支持立体声的计算机平台上播放出由立体效果的声音。

sound(y):以缺省的频率(8192 Hz)来播放声音。

sound(y, Fs, bits):采用bits位来播放声音。大多数计算机平台都支持8位或16位声音。

8、 对语音向量y进行降采样,命令为downsample,格式为:

x = downsample(y,N):每隔N个点采样一次的降采样。

x =downsample(y, N, phase):偏置phase每隔N个点采样一次的降采样,即从第phase +1个样点开始,每隔N个点采样一次的降采样,其中phase的范围为[0,N-1]

downsample类似的,有升采样命令upsample,用法类似。

9、 对声音向量y滤波,命令为filter,有两种格式:

x =filter(b, a, y):声音向量y通过系统函数为b/a的无限冲激响应滤波器IIR输出x

x = filter(b, 1, y):声音向量y通过系统函数为b的有限冲激响应滤波器FIR输出x


    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多