
当务之急是利用新技术完善语音身份,建立模型化、标准化、应用化、场景化的底层语音数据库。“通过联合语音数据来源单位、使用单位、作用发挥单位等开展语音数据库信息采集工作,可实现保护传统媒体和新媒体领域的好声音、老声音及具有创新性的各类语音财富的目的。”
你可以利用电脑上的录音器进行录音,设置录音器的采样频率为10kHz,时间有自己手动制,然后在matlab中用wavread函数读取,这个函数的具体用法如下,你可以用matlab的help wavread 进行查看1、 y = wavread(file)
该语句读取文件名为file的音频文件,并将音频数据存储在y中,返回给用户使用。音频数据的值域为[-1,1]
2、[y,fs,nbits] = wavread(file)
同上,file指定音频文件名,y是音频数据。另外该语句还能够返回该音频文件的采样率fs,和采样位数nbits
3、[...] = wavread(file,n)
该语句用来读取文件名为file的音频文件中的前n个数据。如果有多个通道,每个通道的数据都会被读取出来。[...]表示随用户自己定义。如果用户在这里只写一个y,该语句就只会返回音频数据,如果用户写成[y,fs,nbits],该语句就不但会返回音频数据y,还会返回采样率fs,和采样位数nbits
4、[...]=wavread(file,[n1,n2])
该语句用来读取文件名为file的音频文件中的第n1个到第n2个之间的数据。
5、siz = wavread(file,'size')
该语句返回文件名为file的音频文件的数据大小 siz = [samples channels]
6、[y,fs,nbits,opts]=wavread(...)
该语句返回的参数opts包含了音频文件的额外信息。
这是我刚做的双线性变换法低通滤波器,运行是正确的!ly是语音信号的名字,别的自己改改就行!原语音信号程序
figure(1)
[y,fs,nbits]=wavread ('ly')
sound(y,fs,nbits)%回放语音信号
n = length (y)%求出语音信号的长度
Y=fft(y,n) %傅里叶变换
subplot(2,1,1)plot(y)title('原始信号波形')
subplot(2,1,2)plot(abs(Y))title('原始信号频谱')
加噪语音信号程序
figure(2)
[y,fs,nbits]=wavread ('ly')
n = length (y) %求出语音信号的长度
t=[0:1/8000:2 zeros(1,23520-1)]'
noise=0.04*sin(10000*pi*t)%sin函数产生噪声
s=y+noise%语音信号加入噪声
sound(s)
subplot(2,1,1)plot(s)title('加噪语音信号的时域波形')
S=fft(s) %傅里叶变换
subplot(2,1,2)plot(abs(S))title('加噪语音信号的频域波形')
滤波后的信号程序
Ft=8000
Fp=1000
Fs=1200
wp=2*pi*Fp/Ft
ws=2*pi*Fs/Ft
fp=2*Ft*tan(wp/2)
fs=2*Fs*tan(wp/2)
[n11,wn11]=buttord(wp,ws,1,50,'s')%求低通滤波器的阶数和截止频率
[b11,a11]=butter(n11,wn11,'s') %求S域的频率响应的参数
[num11,den11]=bilinear(b11,a11,0.5)%利用双线性变换实现频率响应S域到Z域的变换
[y,fs,nbits]=wavread ('ly')
n = length (y) %求出语音信号的长度
t=[0:1/8000:2 zeros(1,23520-1)]'
noise=0.04*sin(10000*pi*t)%sin函数产生噪声
s=y+noise%语音信号加入噪声
z11=filter(num11,den11,s)
sound(z11)
m11=fft(z11)%求滤波后的信号
figure(3)
subplot(2,1,1)plot(z11)title('滤波后的信号波形')
subplot(2,1,2)plot(abs(m11),'r')title('滤波后信号的频谱')
你的串号我已经记下,采纳后我会帮你制作
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)