【老生谈算法】基于matlab时域频域处理的语音信号变声处理系统设计与算法原理(论文+程序源码+GUI图形用户界面)——变声算法

【老生谈算法】基于matlab时域频域处理的语音信号变声处理系统设计与算法原理(论文+程序源码+GUI图形用户界面)

大家好,今天给大家介绍基于matlab的语音信号变声处理系统设计与算法原理(论文+程序源码)。
运用matlab软件实现对声音的变声处理,利用离散付里叶变换进行频谱分析;设计数字滤波器组;通过时域和频域方法做出各种音效效果,实现变速(慢放、快放),变调(频谱左移、右移),低通、高通滤波,还有回音效果。

文章目录:

1、项目简介

  1. 系统设计
    1)语音信号的采集
    2)语音信号的频谱分析
    3)设计高通、低通数字滤波器和画出其频率响应
    4)用滤波器对信号进行滤波
    5)比较滤波前后语音信号的波形及频谱
    6)播放原始语音信号
    7)实现快放、慢放功能
    8)实现回音音效效果
    9)实现变高音、低音效果
    10)设计GUI系统界面
  2. 语音信号处理是研究用数字信号处理技术和语音学知识对语音信号进行处理的新兴的学科,是目前发展最为迅速的信息科学研究领域的核心技术之一。通过语音传递信息是人类最重要、最有效、最常用和最方便的交换信息形式。

2、难度指数

本项目难度:中等难度
适用场景:相关课题的毕业设计和相关领域的应用研究

[En]

Applicable scenarios: graduation design of related topics and applied research in related fields

3、运行环境:

环境配置:
本项目所使用的MATLAB版本为MATLAB 7.8.0(R2016a)
注:可适配绝大部分matlab版本
项目技术:
离散付里叶变换+频谱分析+声音处理+滤波器算法+变声算法等等

4、项目详解:

提示:以下是项目的详细介绍,项目源代码和项目设计文件下载地址在文章的末尾。

[En]

Tip: the following is a detailed introduction of the project, the project source code and project design document download address at the end of the article.

4.1课程设计摘要
Matlab语言是一种数据分析和处理功能十分强大的计算机应用软件,它可以将声音文件变换为离散的数据文件,然后利用其强大的矩阵运算能力处理数据,如数字滤波、傅里叶变换、时域和频域分析、声音回放以及各种图的呈现等,它的信号处理与分析工具箱为语音信号分析提供了十分丰富的功能函数,利用这些功能函数可以快捷而又方便地完成语音信号的处理和分析以及信号的可视化,使人机交互更加便捷。信号处理是Matlab重要应用的领域之一。

本设计针对现在大部分语音处理软件内容繁多、操作不便等问题,采用MATLAB7.0综合运用GUI界面设计、各种函数调用等来实现语音信号的变频、变幅、傅里叶变换及滤波,程序界面简练,操作简便,具有一定的实际应用意义。

本次实例是利用MATLAB对语音信号进行时域和频域分析,通过MATLAB对语音进行数字处理。

4.1.1课题背景及意义
语音信号处理是电子信息工程专业的一门实践性较强的专业课。言语是人类获取信息的重要来源,是利用信息的重要手段。通过语言相互传递信息是人类最重要的基本功能之一。语言是人类特有的功能。它是创造和记录人类几千年文明的根本手段。没有语言,就没有几天的人类文明。语音是继续教育的表现,是人类相互传递信息的最重要手段,也是人类交流信息最重要、最有效、最常用、最方便的形式。

[En]

Speech signal processing is a practical professional course of electronic information engineering. Speech is an important source for human beings to obtain information and an important means to make use of information. Transmitting information to each other through language is one of the most important basic functions of human beings. Language is a unique function of human beings. it is the fundamental means to create and record thousands of years of human civilization. without language, there would be no human civilization for a few days. Speech is the performance of further education, the most important means to transmit information to each other, and the most important, effective, commonly used and convenient form for human beings to exchange information.

4.1.2国内外研究现状
20世纪60年代中期形成的一系列数字信号处理的理论和算法,如熟悉滤波去、快速傅里叶变换(FFT)等是语音信号数字处理的理论和技术基础。随着信息科学技术的飞速发展,语音新海处理取得了重大的进展;进入70年代之后,提供了用于语音信号的信息压缩和特征提取的线性预测技术(LPC),并已成为语音信号处理最强有力的工具,
广泛应用于语音信号的分心、合成及各个应用领域,以及用于输入语音与参考样本之间时间匹配的动态规划方法;80年代初一种新的基于聚类分析的高效数据压缩技术——矢量量化(VQ)应用于语音信号处理中;近年来人工神经网络(ANN)的研究取得了迅速发展,语音信号的各项课题是促进其发展的重要动力之一,同时,他的许多成果也体现在有关语音信号处理的各项技术之中。

4.2设计原理
4.2.1数字滤波器设计原理
常见的滤波器的作用是利用离散系统的特性对输入信号的波形(或频谱)进行处理,或对新的哈尔滨处理按预定要求进行数字化改造。

[En]

The function of the familiar filter is to process the input signal waveform (or spectrum) by using the characteristics of the discrete-time system, or to transform the new Harbin processing according to the predetermined requirements by digital method.

数字滤波器可以理解为是一个计算程序或算法,将代表输入的信号的数字时间序列转化为代表输出信号的数字时间序列,并在转化过程中,使信号按预定的形式变化。从性能上来说,IIR滤波器传输函数的极点可位于单位圆内的任何地方,因此可用较低的阶数获得高的选择性,所用的存贮单元少,所以经济而效率高。但是这个高效率是以相位的非线性为代价的。选择性越好,则相位非线性越严重。相反,FIR滤波器却可以得到严格的线性相位,然而由于FIR滤波器传输函数的极点固定在原点,所以只能用较高的阶数达到高的选择性;对于同样的滤波器设计指标,FIR滤波器所要求的阶数可以比IIR滤波器高5~10倍,结果,成本较高,信号延时也较大;如果按相同的选择性和相同的线性要求来说,则IIR滤波器就必须加全通网络进行相位较正,同样要大增加滤波器的节数和复杂性。

整体来看,IIR滤波器达到同样效果阶数少,延迟小,但是有稳定性问题,非线性相位;FIR滤波器没有稳定性问题,线性相位,但阶数多,延迟大。

4.2.2语音变调原理
通过改变语音信号的频率可以实现语音信号的快慢播放,通过设计低通和高通滤波器对语音信号进行滤波,可以在给定的频域播放语音信号。

[En]

The fast and slow playback of the speech signal can be realized by changing the frequency of the speech signal, and the speech signal can be played in the given frequency domain by designing low-pass and high-pass filters to filter the speech signal.

此外,高音和低音语音信号可以通过移动频域波形的频谱,即向左和向右移动来播放。

[En]

In addition, the treble and bass speech signal can be played by shifting the frequency spectrum of the frequency domain waveform, that is, moving to the left and to the right.

4.3设计思路原理
4.3.1主体设计思想
首先用matlab读取一段提前录得的WAV语音信号,然后对其进行各种处理,之后产生对应于设计要求的WAV语音信号,最后再设计DUI系统界面后直接调用生成的WAV语音信号,进行播放。

4.3.2语音信号的提取
wavread函数调用格式:
y=wavread(file),读取file所规定的wav文件,返回采样值放在响亮y中。
[y,fs,nbits]=wavread(file),采样值放在向y中,表示采样频率(),nbits表示采样位数。
y=wavread(file,N),读取钱N点的采样值放在向量y中。
y=wavread(file,[,]),读取从到点的采样值放在向量y中。

在Matlab中使用Wavread函数,可得出信号的采样频率为8192双声道的。利用Sound函数可以清晰的听到”语音信号处理”或”ne two three”
部分程序如下:
%y=wavread(‘v016’);
[x,Ft,bits]=wavread(‘v017’);%采样值放在向x中,Fs表示采样频率(),bits表示采样位数。
sound(x,8129,bits)%以原来频率进行发声
%sound(y);
tend=length(y)/8192;
t=linspace(0,tend,length(y));%等间隔划分
subplot(2,2,1);plot(t,y);grid
title(‘语音信号y’);xlabel(‘t(s)’);ylabel(‘y’);
Y=fft(y);
Ts=t(2)-t(1);
ws=1/Ts;
wn=ws/2;
w=linspace(0,wn,length(t)/2);
if mod(length(t),2)==0
tnum=length(t)/2;
else
tnum=(length(t)-1)/2;
end
Y=abs(Y(1:1:tnum));
subplot(2,2,2);plot(w,Y);axis([0 2000 0 500]);grid;
title(‘语音信号y的频谱’);xlabel(‘f(Hz)’);ylabel(‘Y’);

4.3.3对语音信号进行变声处理
4.3.3.1对语音信号进行低通、高通滤波
低通取通带截止频谱为600,阻带截止频谱为700,(高通通带截止频谱为600,阻带截止频谱为700)采样频谱为8000,对原始语音信号加窗(汉明窗)实现低通滤波。
程序如下:
fp=600; %取通带截止频谱为600
fs=700; % 阻带截止频谱为700
Fs=8000;
wp=2 _pi_fp/Fs;
ws=2 _pi_fs/Fs;
wdelta=ws-wp;
N=ceil(6.6 _pi/wdelta);
Wn=(wp+ws)/2;
b=fir1(N,Wn/pi,hamming(N+1));%加窗滤波
[H,W]=freqz(b,1,512);
t=0:1/Fs:0.2;
x=wavread(‘v017’);
figure
plot(x)
y=3_filter(b,1,x); %乘以系数3来增大幅值音量
figure
plot(y);
sound(y)
wavwrite(y,Fs,’v017_low_pass’);产生WAV语音文件,然后保存
grid on

4.3.3.2频域右移
在对原始语音信号进行频域分析的基础上,将频谱整体右移,实现高音回放。

[En]

Based on the frequency domain analysis of the original speech signal, the spectrum is shifted to the right as a whole to achieve treble playback.

程序如下:
y=wavread(‘v017’);% save Y1 %luyin
Fs=8192;%wavplay(Y1,Fs);
pinyi=fft(y);
size(pinyi);
f=8192[0:22000]/22001;
figure(1)
plot(f,2 abs(pinyi));
axis([1,10000,0,250]);
f=8192
[0:24000]/24001;
hang=pinyi’;
N=1000;
pujialing=[zeros(1,N),hang(1:22001),zeros(1,N)];
pu=pujialing’;
figure(2)
plot(f,abs(pu));
axis([1,10000,0,250]);
Y1=3
real(ifft(pu));
wavwrite(Y1,Fs,’v017_pinyi_right’);
wavplay(Y1,Fs);

4.3.3.3频域左移
y=wavread(‘v017’);% save Y1 %luyin
Fs=8192;%wavplay(Y1,Fs);
pinyi=fft(y);
size(pinyi);
f=8192[0:22000]/22001;
figure(1)
plot(f,abs(pinyi));
grid on
axis([1,10000,0,250]);
%f=8192
[0:22000]/22001;
hang=pinyi’;
N=1000;
pujialing=[hang(N:22001),zeros(1,(N-1))];
pu=pujialing’;
figure(2)
plot(f,2 _abs(pu));
grid on
axis([1,10000,0,250]);
Y1=3_real(ifft(pu));
wavwrite(Y1,Fs,’v017_pinyi_left’);
wavplay(Y1,Fs);

4.3.3.4快放、慢放播放
快放和慢放的基本原理是改变其播放频率。

[En]

The basic principle of fast playback and slow playback is to change its playback frequency.

程序如下:
Fs=16384;
[Y,w,t]=voice_spectrum(y,Fs);
sound(y,Fs);
axes(handles.axes1);
cla;
plot(t,y);grid;title(‘语音信号y,采样频率=16384’);xlabel(‘t(s)’);ylabel(‘y’);
axes(handles.axes2);
cla;
plot(w,Y);axis([0 2800 0 500]);grid;
title(‘语音信号y的频谱,采样频率=16384’);xlabel(‘f (Hz)’);ylabel(‘Y’);

4.3.3.4 回音播放
回声播放是在原始信号的基础上增加一点延迟时间。

[En]

Echo playback is to add a little delay time to the original signal.

程序如下:
y=wavread(‘v017′);
%load handel;
delay=900;
tend=length(y)/8192;
t=linspace(0,tend,length(y));
yd=[zeros(1,delay) y(1:(length(y)-delay))’];
yecho=y+0.4*yd’;
sound(yecho);
figure(2);subplot(3,1,1);plot(t,y);grid;title(‘原始语音信号y’);
subplot(3,1,2);plot(t,yd);grid;title(‘延迟时间yd’);
subplot(3,1,3);plot(t,yecho);grid;title(‘有回音效果的语音信号yecho’)

4.4相应实验数据或分析
4.4.1实验结果图
4.4.1.1原始语音信号
时域波形和频谱图如下:

【老生谈算法】基于matlab时域频域处理的语音信号变声处理系统设计与算法原理(论文+程序源码+GUI图形用户界面)——变声算法
【老生谈算法】基于matlab时域频域处理的语音信号变声处理系统设计与算法原理(论文+程序源码+GUI图形用户界面)——变声算法
4.4.1.2经过低通滤波处理后的波形图
【老生谈算法】基于matlab时域频域处理的语音信号变声处理系统设计与算法原理(论文+程序源码+GUI图形用户界面)——变声算法
【老生谈算法】基于matlab时域频域处理的语音信号变声处理系统设计与算法原理(论文+程序源码+GUI图形用户界面)——变声算法
4.4.1.3经过高通滤波处理后的波形图
【老生谈算法】基于matlab时域频域处理的语音信号变声处理系统设计与算法原理(论文+程序源码+GUI图形用户界面)——变声算法
【老生谈算法】基于matlab时域频域处理的语音信号变声处理系统设计与算法原理(论文+程序源码+GUI图形用户界面)——变声算法
4.4.1.4频域右移
原始信号
【老生谈算法】基于matlab时域频域处理的语音信号变声处理系统设计与算法原理(论文+程序源码+GUI图形用户界面)——变声算法
经过右移后
【老生谈算法】基于matlab时域频域处理的语音信号变声处理系统设计与算法原理(论文+程序源码+GUI图形用户界面)——变声算法
时域波形和频谱图如下:
【老生谈算法】基于matlab时域频域处理的语音信号变声处理系统设计与算法原理(论文+程序源码+GUI图形用户界面)——变声算法
【老生谈算法】基于matlab时域频域处理的语音信号变声处理系统设计与算法原理(论文+程序源码+GUI图形用户界面)——变声算法
4.4.1.5频域左移
【老生谈算法】基于matlab时域频域处理的语音信号变声处理系统设计与算法原理(论文+程序源码+GUI图形用户界面)——变声算法
经过左移后
【老生谈算法】基于matlab时域频域处理的语音信号变声处理系统设计与算法原理(论文+程序源码+GUI图形用户界面)——变声算法
时域波形和频谱图如下:
【老生谈算法】基于matlab时域频域处理的语音信号变声处理系统设计与算法原理(论文+程序源码+GUI图形用户界面)——变声算法
【老生谈算法】基于matlab时域频域处理的语音信号变声处理系统设计与算法原理(论文+程序源码+GUI图形用户界面)——变声算法
4.4.1.6快放、慢放
【老生谈算法】基于matlab时域频域处理的语音信号变声处理系统设计与算法原理(论文+程序源码+GUI图形用户界面)——变声算法
【老生谈算法】基于matlab时域频域处理的语音信号变声处理系统设计与算法原理(论文+程序源码+GUI图形用户界面)——变声算法
4.4.1.7回音播放
【老生谈算法】基于matlab时域频域处理的语音信号变声处理系统设计与算法原理(论文+程序源码+GUI图形用户界面)——变声算法
【老生谈算法】基于matlab时域频域处理的语音信号变声处理系统设计与算法原理(论文+程序源码+GUI图形用户界面)——变声算法
4.4.2 GUI系统界面

【老生谈算法】基于matlab时域频域处理的语音信号变声处理系统设计与算法原理(论文+程序源码+GUI图形用户界面)——变声算法

4.5 总结
本文对语音信号处理系统的设计作了详细的介绍,采用一系列图像分析和处理技术,实现了语音信号的基本处理的功能,经过测试运行,本设计圆满的完成了对语音信号的读取与打开;较好的完成了对语音信号的频谱分析,通过fft变换,得出了语音信号的频谱图;在滤波这一块,主要是从数字滤波器入手来设计滤波器,基本实现了滤波,完成了各种滤波器的滤波效果比较。

; 5、源码下载:

本项目及一些精选的matlab人脸识别项目源码如下,有需要的朋友可以点击进行下载

序号matlab人脸识别项目(点击下载)1 (本项目源码)
基于matlab时域频域处理的语音处理系统源码+项目设计文档+GUI图形用户界面_声音处理_时域频域变频_频谱分析_matlab 自行利用matlab设计的过滤掉一定频率后的将原始声音改变的滤波器 基于带动量项的BP神经网络语音识别_BPDLX_matlab 基于matlab语音处理.zip BP神经网络的数据分类_语音特征信号分类_matlab 语音激活检测算法_对基于短时能量和短时过零率双门限法语音激活检测的噪声估计算法_基于最小子带能量的噪声估计方法_matlab 马丁噪声估计算法_用于谱减法_基于统计模型等语音增强算法_噪音估计_matlab 旁瓣对消_filter_singnal_滤波语音信号_matlab LMS_RLS改进算法_语音增强_MATLAB程序_输入输出序列_读取数据_自适应增强算法

10
让语音信号通过低通,高通,带通滤波器使其变声_并且在GUI界面上绘出了个滤波器的频率响应和语音信号的频谱_matlab

11
包含语音信号处理中的语音变声代码加音频_matlab

Original: https://blog.csdn.net/m0_53407570/article/details/125052786
Author: 阿里matlab建模师
Title: 【老生谈算法】基于matlab时域频域处理的语音信号变声处理系统设计与算法原理(论文+程序源码+GUI图形用户界面)——变声算法

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/515075/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球