欢迎来到海神之光博客之家✅博主简介热爱科研的Matlab仿真开发者修心和技术同步精进个人主页海神之光代码获取方式海神之光Matlab王者学习之路—代码获取方式⛳️座右铭行百里者半于九十。更多Matlab语音处理仿真内容点击①Matlab语音处理 进阶版②付费专栏Matlab语音处理初级版⛳️关注微信公众号Matlab王者助手或Matlab海神之光更多资源等你来⛄一、简介本章提出了一种语音增强算法该算法以基于先验信噪比估计的维纳滤波法为基础。通过计算无声段的统计平均得到初始噪声功率谱,并平滑处理初始噪声功率谱和带噪语音功率谱更新了噪声功率谱最后考虑了某频率点处噪声急剧增大的情况做了相关验证该算法能有效地抑制变化范围不大或是稳定的噪声但是对实际中的变化范围很广的噪声效果不是很好。1、语音增强概述1.1 语音增强的相关概念嵌在语音系统中语音信号不可避免的会受到周围噪声的干扰从而影响语音的质量与可懂度。语音增强其实就是带噪语音中提取尽可能纯净的语音改善语音质量和可懂度提高噪声环境下语音通信系统的性能。噪声都随机产生的不可能完全消除。语音增强的目标是减弱噪声、消除背景噪声、改进语音质量、使听着乐于接受提高语音可懂度。1.2 语音增强的相关算法由于噪声来源众多特性各不相同。语音增强处理系统的应用场合千差万别。因此不存在一种可以通用于各种噪声环境的语音增强算法。针对不同的环境采取不同的语音增强算法。语音增强算法按处理方式可以分为基于语音周期性的增强算法基于全极点模型的增强算法基于短时谱估计的增强算法基于信号子空间的增强算法和基于HMM的增强算法。从目前的发展来看基于短时谱估计的方法是最有效的方法。具体包括谱减法、维纳滤波、最小均方误差短时谱幅度估计法MMSE-STSA和最小均方误差对数谱幅度估计法MMSE-LSA。本文主要讨论使用维纳滤波器实现语音的增强处理。2 基于先验信噪比估计的维纳滤波语音增强理论先验信噪比是语音增强算法中非常重要的参数。 通过Ephraim和 Malah提出的“直接判决”估计来计算先验信噪比的方法是最有效的和最容易计算的。⛄二、部分源代码function varargout adsp_project(varargin)% ADSP_PROJECT MATLAB code for adsp_project.fig% ADSP_PROJECT, by itself, creates a new ADSP_PROJECT or raises the existing% singleton*.%% H ADSP_PROJECT returns the handle to a new ADSP_PROJECT or the handle to% the existing singleton*.%% ADSP_PROJECT(‘CALLBACK’,hObject,eventData,handles,…) calls the local% function named CALLBACK in ADSP_PROJECT.M with the given input arguments.%% ADSP_PROJECT(‘Property’,‘Value’,…) creates a new ADSP_PROJECT or raises the% existing singleton*. Starting from the left, property value pairs are% applied to the GUI before adsp_project_OpeningFcn gets called. An% unrecognized property name or invalid value makes property application% stop. All inputs are passed to adsp_project_OpeningFcn via varargin.%% *See GUI Options on GUIDE’s Tools menu. Choose “GUI allows only one% instance to run (singleton)”.%% See also: GUIDE, GUIDATA, GUIHANDLES% Edit the above text to modify the response to help adsp_project% Last Modified by GUIDE v2.5 15-Dec-2014 18:26:21% Begin initialization code - DO NOT EDITgui_Singleton 1;gui_State struct(‘gui_Name’, mfilename, …‘gui_Singleton’, gui_Singleton, …‘gui_OpeningFcn’, adsp_project_OpeningFcn, …‘gui_OutputFcn’, adsp_project_OutputFcn, …‘gui_LayoutFcn’, [] , …‘gui_Callback’, []);if nargin ischar(varargin{1})gui_State.gui_Callback str2func(varargin{1});endif nargout[varargout{1:nargout}] gui_mainfcn(gui_State, varargin{:});elsegui_mainfcn(gui_State, varargin{:});end% End initialization code - DO NOT EDIT% — Executes just before adsp_project is made visible.function adsp_project_OpeningFcn(hObject, eventdata, handles, varargin)% This function has no output args, see OutputFcn.% hObject handle to figure% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% varargin command line arguments to adsp_project (see VARARGIN)% Choose default command line output for adsp_projecthandles.output hObject;% Update handles structureguidata(hObject, handles);% UIWAIT makes adsp_project wait for user response (see UIRESUME)% uiwait(handles.figure1);% — Outputs from this function are returned to the command line.function varargout adsp_project_OutputFcn(hObject, eventdata, handles)% varargout cell array for returning output args (see VARARGOUT);% hObject handle to figure% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% Get default command line output from handles structurevarargout{1} handles.output;% — Executes on button press in pushbutton1.function pushbutton1_Callback(hObject, eventdata, handles)global xk;global fs;global noise_type;noise_type1;[FileName,PathName] uigetfile(‘*.wav’,‘Select the voice-file’);[x,fs]wavread(FileName);lslength(x);xkx(1:ls);set(handles.text_fs,‘string’,num2str(fs));set(handles.text_ls,‘string’,num2str(ls));axes(handles.axes_freq);%xaxis1linspace(0,0.5,250);plot(abs(fft(xk))); %xk 音频的句柄 用来做按键响应函数axis([0,14000,0,300]) ;axes(handles.axes_wave);%xaxis1linspace(0,0.5,250);h_xkplot(xk); %xk 音频的句柄 用来做按键响应函数axis([0,30000,-1.5,1.5]) ;set(h_xk,‘ButtonDownFcn’,axes_waveCallback);%grid on;%set(gca,‘xtick’,(0:0.02:0.5),‘ytick’,[0500]);%axis([0.25 0.45 0 500]);% hObject handle to pushbutton1 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% — Executes on button press in pushbutton2.function pushbutton2_Callback(hObject, eventdata, handles)global xk;global SNR;global fs;global xs;global noise_type;noise_type1;%高斯噪声SNR_sliderget(handles.slider_SNR,‘value’);SNR_sliderfloor(SNR_slider);SNRnum2str(SNR_slider);set(handles.text_snr,‘string’,SNR);xsawgn(xk,SNR_slider,0);%加入高斯白噪声信噪比30axes(handles.axes_freq);plot(abs(fft(xs))); %xk 音频的句柄 用来做按键响应函数axis([0,14000,0,300]) ;axes(handles.axes_noise);h_xsplot(xs);axis([0,30000,-1.5,1.5]) ;set(h_xs,‘ButtonDownFcn’,axes_noiseCallback);% hObject handle to pushbutton2 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% — Executes on button press in pushbutton3.% hObject handle to pushbutton3 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% — Executes on selection change in popupmenu1.function popupmenu1_Callback(hObject, eventdata, handles)% hObject handle to popupmenu1 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% Hints: contents cellstr(get(hObject,‘String’)) returns popupmenu1 contents as cell array% contents{get(hObject,‘Value’)} returns selected item from popupmenu1% — Executes during object creation, after setting all properties.function popupmenu1_CreateFcn(hObject, eventdata, handles)% hObject handle to popupmenu1 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles empty - handles not created until after all CreateFcns called% Hint: popupmenu controls usually have a white background on Windows.% See ISPC and COMPUTER.if ispc isequal(get(hObject,‘BackgroundColor’), get(0,‘defaultUicontrolBackgroundColor’))set(hObject,‘BackgroundColor’,‘white’);end% — Executes on key press with focus on pushbutton1 and none of its controls.function pushbutton1_KeyPressFcn(hObject, eventdata, handles)% hObject handle to pushbutton1 (see GCBO)% eventdata structure with the following fields (see UICONTROL)% Key: name of the key that was pressed, in lower case% Character: character interpretation of the key(s) that was pressed% Modifier: name(s) of the modifier key(s) (i.e., control, shift) pressed% handles structure with handles and user data (see GUIDATA)% — If Enable ‘on’, executes on mouse press in 5 pixel border.% — Otherwise, executes on mouse press in 5 pixel border or over pushbutton1.function pushbutton1_ButtonDownFcn(hObject, eventdata, handles)% hObject handle to pushbutton1 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% — Executes on slider movement.function slider2_Callback(hObject, eventdata, handles)% hObject handle to slider2 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% Hints: get(hObject,‘Value’) returns position of slider% get(hObject,‘Min’) and get(hObject,‘Max’) to determine range of slider% — Executes during object creation, after setting all properties.function slider2_CreateFcn(hObject, eventdata, handles)% hObject handle to slider2 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles empty - handles not created until after all CreateFcns called% Hint: slider controls usually have a light gray background.if isequal(get(hObject,‘BackgroundColor’), get(0,‘defaultUicontrolBackgroundColor’))set(hObject,‘BackgroundColor’,[.9 .9 .9]);end⛄三、运行结果⛄四、matlab版本及参考文献1 matlab版本2014a2 参考文献[1]韩纪庆,张磊,郑铁然.语音信号处理第3版[M].清华大学出版社2019.[2]柳若边.深度学习:语音识别技术实践[M].清华大学出版社2019.3 备注简介此部分摘自互联网仅供参考若侵权联系删除 仿真咨询1 各类智能优化算法改进及应用生产调度、经济调度、装配线调度、充电优化、车间调度、发车优化、水库调度、三维装箱、物流选址、货位优化、公交排班优化、充电桩布局优化、车间布局优化、集装箱船配载优化、水泵组合优化、解医疗资源分配优化、设施布局优化、可视域基站和无人机选址优化2 机器学习和深度学习方面卷积神经网络CNN、LSTM、支持向量机SVM、最小二乘支持向量机LSSVM、极限学习机ELM、核极限学习机KELM、BP、RBF、宽度学习、DBN、RF、RBF、DELM、XGBOOST、TCN实现风电预测、光伏预测、电池寿命预测、辐射源识别、交通流预测、负荷预测、股价预测、PM2.5浓度预测、电池健康状态预测、水体光学参数反演、NLOS信号识别、地铁停车精准预测、变压器故障诊断3 图像处理方面图像识别、图像分割、图像检测、图像隐藏、图像配准、图像拼接、图像融合、图像增强、图像压缩感知4 路径规划方面旅行商问题TSP、车辆路径问题VRP、MVRP、CVRP、VRPTW等、无人机三维路径规划、无人机协同、无人机编队、机器人路径规划、栅格地图路径规划、多式联运运输问题、车辆协同无人机路径规划、天线线性阵列分布优化、车间布局优化5 无人机应用方面无人机路径规划、无人机控制、无人机编队、无人机协同、无人机任务分配6 无线传感器定位及布局方面传感器部署优化、通信协议优化、路由优化、目标定位优化、Dv-Hop定位优化、Leach协议优化、WSN覆盖优化、组播优化、RSSI定位优化7 信号处理方面信号识别、信号加密、信号去噪、信号增强、雷达信号处理、信号水印嵌入提取、肌电信号、脑电信号、信号配时优化8 电力系统方面微电网优化、无功优化、配电网重构、储能配置9 元胞自动机方面交通流 人群疏散 病毒扩散 晶体生长10 雷达方面卡尔曼滤波跟踪、航迹关联、航迹融合