end
%=====转换关键点,精确定位 dot=zeros(100,1); len=length(num);
dot(1)=0; %dot是存储精确定位点的数组 dot(2)=num(1); b=3;
for i=3:len
if((num(i)-num(i-1))>3000) dot(b)=num(i); b=b+1; end end
dot(b)=length(x);
%=======对语音序列逆序操作
new=[]; %存放逆序后的矩阵 for i=1:b-1
singlelen=dot(b-i+1)-dot(b-i);
temp=zeros(singlelen,1); %temp临时矩阵,存放片段序列 for h=1: singlelen
temp(h)=y(h+dot(b-i)); end
new=[new;temp]; %片段拼接 temp=[]; end
%=========对拼接做平滑处理 for i=2:b-1
new(dot(i))=(new(dot(i)-3)+new(dot(i)-2)+new(dot(i)-1)+new(dot(i)+1)+new(dot(i)+2)+new(dot(i)+3))*1/6; end
第六章 项目实施过程
时 间 第一周 第二周 第三周 第四周 第五周 第六周 第七周 人 员 项目小组 项目小组 项目小组 事 件 项目研讨及调研 系统设计与实施 程序编写与调试 邀请测试员参与测试 备 注 项目小组、测试员 程序测试与完善 项目小组 项目小组 项目小组 项目报告撰写 项目回顾、总结与提高 答辩准备
第七章 总结与展望
7.1 项目总结
此次项目的顺利圆满完成,离不开项目小组各位成员的团结协作与刻苦攻关,也离不开老师们的帮助与指导。在这七周的时间里,我们从一开始的查找资料,到项目的设计,再到实施、调试、改进,每一个阶段,都包含了我们每个人的辛劳与汗水。在项目实施的过程中,我们每个人的能力都得到了极大的锻炼,不学到了许多与数字信号处理相关的知识,更是一种学习能力的提升,同时也是自学能力的培养。
通过这次的项目的,我们数字信号处理有了更深刻的理解,对在矩阵运算的层面上的数字信号处理有了一定的认识与掌握。为将来更深入的学习数字信号处理打了的基础。
7.2 项目展望
此次数字信号处理的对项目虽然已经完成,但是我们所完成的项目毕竟是很小的成果,将来还有很多东西要学习。
我们在将来的学习与工作中要把我们完成的这些效果的原理运用于实践。例如我们的“自适应语音分割、倒序”效果,在自适应语音分割技术的基础上,我们可以做语音提取、语音识别、语音控制等。
学习的过程永远不是一蹴而就的,我们要牢牢把握现在,放眼未来,打好基础,才能在未来的道路上走的更远。
附录
源程序:
function varargout = MagicVoice(varargin) % MAGICVOICE M-file for MagicVoice.fig
% MAGICVOICE, by itself, creates a new MAGICVOICE or raises the existing
% singleton*. %
% H = MAGICVOICE returns the handle to a new MAGICVOICE or the handle to
% the existing singleton*. %
% MAGICVOICE('CALLBACK',hObject,eventData,handles,...) calls the local
% function named CALLBACK in MAGICVOICE.M with the given input arguments. %
% MAGICVOICE('Property','Value',...) creates a new MAGICVOICE or raises the
% existing singleton*. Starting from the left, property value pairs are
% applied to the GUI before MagicVoice_OpeningFcn gets called. An
% unrecognized property name or invalid value makes property application
% stop. All inputs are passed to MagicVoice_OpeningFcn via varargin. %
% *See GUI Options on GUIDE's Tools menu. Choose \only one
% instance to run (singleton)\ %
% See also: GUIDE, GUIDATA, GUIHANDLES
% Edit the above text to modify the response to help MagicVoice
% Last Modified by GUIDE v2.5 11-Jan-2013 06:56:54
% Begin initialization code - DO NOT EDIT gui_Singleton = 1;
gui_State = struct('gui_Name', mfilename, ...
'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @MagicVoice_OpeningFcn, ... 'gui_OutputFcn', @MagicVoice_OutputFcn, ... 'gui_LayoutFcn', [] , ... 'gui_Callback', []); if nargin && ischar(varargin{1})
gui_State.gui_Callback = str2func(varargin{1}); end
if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:}); else
gui_mainfcn(gui_State, varargin{:}); end
% End initialization code - DO NOT EDIT
% --- Executes just before MagicVoice is made visible.
function MagicVoice_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 MagicVoice (see VARARGIN)
% Choose default command line output for MagicVoice handles.output = hObject;
% Update handles structure guidata(hObject, handles);
% UIWAIT makes MagicVoice wait for user response (see UIRESUME) % uiwait(handles.figure1);
% --- Outputs from this function are returned to the command line. function varargout = MagicVoice_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 structure