实例介绍
【实例简介】
【实例截图】
【核心代码】
function varargout = fenxi(varargin) % FENXI M-file for fenxi.fig % FENXI, by itself, creates a new FENXI or raises the existing % singleton*. % % H = FENXI returns the handle to a new FENXI or the handle to % the existing singleton*. % % FENXI('CALLBACK',hObject,eventData,handles,...) calls the local % function named CALLBACK in FENXI.M with the given input arguments. % % FENXI('Property','Value',...) creates a new FENXI or raises the % existing singleton*. Starting from the left, property value pairs are % applied to the GUI before fenxi_OpeningFcn gets called. An % unrecognized property name or invalid value makes property application % stop. All inputs are passed to fenxi_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 fenxi % Last Modified by GUIDE v2.5 12-Oct-2013 17:27:29 % Begin initialization code - DO NOT EDIT gui_Singleton = 1; gui_State = struct('gui_Name', mfilename, ... 'gui_Singleton', gui_Singleton, ... 'gui_OpeningFcn', @fenxi_OpeningFcn, ... 'gui_OutputFcn', @fenxi_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 fenxi is made visible. function fenxi_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 fenxi (see VARARGIN) % Choose default command line output for fenxi handles.output = hObject; % Update handles structure guidata(hObject, handles); % UIWAIT makes fenxi wait for user response (see UIRESUME) % uiwait(handles.figure1); % --- Outputs from this function are returned to the command line. function varargout = fenxi_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 varargout{1} = handles.output; % --- Executes on button press in luyin. function luyin_Callback(hObject, eventdata, handles) % hObject handle to luyin (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) if get(hObject,'Value') set(handles.luyinpinlv,'Enable','on'); set(handles.dakai,'Value',0); set(handles.luyinshijian,'Enable','on'); set(handles.luyinqueding,'Enable','on'); set(handles.dakaiqueding,'Enable','off'); set(handles.bofang,'Value',0); set(handles.bofangpinlv,'Enable','off'); set(handles.bofangqueding,'Enable','off'); set(handles.luyinqueding,'string','开始'); else end; % Hint: get(hObject,'Value') returns toggle state of luyin % --- Executes on button press in dakai. function dakai_Callback(hObject, eventdata, handles) % hObject handle to dakai (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) if get(hObject,'Value') set(handles.luyin,'Value',0); set(handles.luyinshijian,'Enable','off'); set(handles.luyinqueding,'Enable','off'); set(handles.dakaiqueding,'Enable','on'); set(handles.bofang,'Value',0); set(handles.bofangpinlv,'Enable','off'); set(handles.bofangqueding,'Enable','off'); set(handles.luyinpinlv,'Enable','off'); else end; % Hint: get(hObject,'Value') returns toggle state of dakai % --- Executes on button press in radiobutton3. function radiobutton3_Callback(hObject, eventdata, handles) % hObject handle to radiobutton3 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hint: get(hObject,'Value') returns toggle state of radiobutton3 % --- Executes on button press in luyinqueding. function luyinqueding_Callback(hObject, eventdata, handles) % hObject handle to luyinqueding (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) set(hObject,'string','录音中'); pause(0.4); Fs=str2double(get(handles.luyinpinlv,'String')); t=str2double(get(handles.luyinshijian,'String')); ai=analoginput('winsound',0);%初始化录音麦克 chanel=addchannel(ai,1);%1表示单声道 set(ai,'SampleRate',Fs); duration=t; %录音时间 set(ai,'SamplesPerTrigger',duration*Fs); start(ai); y=0;time=0; [y,time]=getdata(ai);%读出相应的数据 handles.y=y; handles.Fs=Fs; guidata(hObject,handles); plot(handles.huitu,time,handles.y)%画出声音波形 title(handles.huitu,'时域图'); %ysize=size(handles.y); set(hObject,'string','完毕'); set(handles.baocun,'Enable','on'); % --- Executes on button press in dakaiqueding. function dakaiqueding_Callback(hObject, eventdata, handles) % hObject handle to dakaiqueding (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) [filename pathname]=uigetfile({'*.wav','ALL FILES(*.*)'},'选择声音文件'); if isequal([filename pathname],[0,0]) return; end str=[pathname filename];%选择的声音文件路径和文件名 [temp Fs]=wavread(str);%temp表示声音数据 Fs表示频率 handles.y=temp;handles.Fs=Fs; guidata(hObject,handles); N=length(handles.y); f1=0:1/Fs:(N-1)/Fs; plot(handles.huitu,f1,handles.y)%画出声音波形 title(handles.huitu,'时域图'); xlabel(handles.huitu,'时间/s'); ylabel(handles.huitu,'幅度'); set(handles.baocun,'Enable','on'); set(handles.bofang,'Enable','on'); % --- Executes on button press in pushbutton3. function pushbutton3_Callback(hObject, eventdata, handles) % 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) function luyinshijian_Callback(hObject, eventdata, handles) % hObject handle to luyinshijian (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,'String') returns contents of luyinshijian as text % str2double(get(hObject,'String')) returns contents of luyinshijian as a double % --- Executes during object creation, after setting all properties. function luyinshijian_CreateFcn(hObject, eventdata, handles) % hObject handle to luyinshijian (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: edit 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 button press in bofang. function bofang_Callback(hObject, eventdata, handles) % hObject handle to bofang (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) if get(hObject,'Value') set(handles.luyin,'Value',0); set(handles.luyinshijian,'Enable','off'); set(handles.luyinqueding,'Enable','off'); set(handles.dakaiqueding,'Enable','off'); set(handles.dakai,'Value',0); set(handles.bofangpinlv,'Enable','on'); set(handles.bofangqueding,'Enable','on'); set(handles.luyinpinlv,'Enable','off'); else end; % Hint: get(hObject,'Value') returns toggle state of bofang function bofangpinlv_Callback(hObject, eventdata, handles) % hObject handle to bofangpinlv (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,'String') returns contents of bofangpinlv as text % str2double(get(hObject,'String')) returns contents of bofangpinlv as a double % --- Executes during object creation, after setting all properties. function bofangpinlv_CreateFcn(hObject, eventdata, handles) % hObject handle to bofangpinlv (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: edit 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 button press in bofangqueding. function bofangqueding_Callback(hObject, eventdata, handles) % hObject handle to bofangqueding (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) c=handles.Fs; Fs=handles.Fs; d=handles.y; yy=handles.y; contents = cellstr(get(handles.bofangpinlv,'String')) ;%获取listbox1中的细胞矩阵 bj=contents{get(handles.bofangpinlv,'Value')};%获取listbox中的值 if strcmp(bj,'音效') Fs=c; elseif strcmp(bj,'快播') Fs=1.5*c; elseif strcmp(bj,'倒放') yy = flipud(d); elseif strcmp(bj,'回音') % for i=1:length(handles.y) yy(i)=d(length(handles.y)-i 1); end a=[zeros(5000,1);d;zeros(5000,1)];%声音延时 e=[zeros(10000,1);d]; b=[d;zeros(10000,1)];%使原声音长度与延时后相等 yy=(a e)*0.6 b; elseif strcmp(bj,'双声道左右穿行') for i=1:length(handles.y) yy(i,1)=d(i)*i/162000.0; end for i=1:length(handles.y) yy(i,2)=d(i)*(length(handles.y)-i)/162000.0; end %for i=1:length(handles.y) yy(i)=d(length(handles.y)-i 1); end % Fs=0.5*c; elseif strcmp(bj,'机器人声') n1 = 441; n2 = n1; WLen= 1024; w1= hanning(WLen); w2 = w1; DAFx_in=d; FS=Fs; L= length(DAFx_in); DAFx_in= [zeros(WLen, 1); DAFx_in; zeros(WLen-mod(L,n1),1)] / max(abs(DAFx_in)); DAFx_out=[zeros(length(DAFx_in),1)]; pin=0; pout = 0; pend = length(DAFx_in)-WLen; while pin<pend grain = DAFx_in(pin 1:pin WLen).* w1; f= fft(grain); r= abs(f); grain = fftshift(real(ifft(r))).*w2; DAFx_out(pout 1:pout WLen) = DAFx_out(pout 1:pout WLen) grain; pin= pin n1; pout= pout n2; end DAFx_out = DAFx_out(WLen 1:WLen L) / max(abs(DAFx_out)); yy= DAFx_out; elseif strcmp(bj,'男女变声') Fs=1.5*c; end; wavplay(yy,Fs); %; 162422, num2str(n) y=fft(yy,length(yy)); % ysize=size(y);检测他的维度 % plot(handles.huitu2,abs(y));原来的 [m,n]=size(d);N=length(yy); f1=0:Fs/N:Fs*(N-1)/N; plot(handles.huitu2,f1(1:N/80),y(1:N/80));%f1(1:N/80),y(1:N/80) xlabel(handles.huitu2,'频率/Hz'); ylabel(handles.huitu2,'幅度'); title(handles.huitu2,'频率特性'); f1=0:1/Fs:(N-1)/Fs; plot(handles.huitu,f1,yy)%画出声音波形 title(handles.huitu,'时域图'); xlabel(handles.huitu,'时间/s'); ylabel(handles.huitu,'幅度'); grid on; function luyinpinlv_Callback(hObject, eventdata, handles) % hObject handle to luyinpinlv (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,'String') returns contents of luyinpinlv as text % str2double(get(hObject,'String')) returns contents of luyinpinlv as a double % --- Executes during object creation, after setting all properties. function luyinpinlv_CreateFcn(hObject, eventdata, handles) % hObject handle to luyinpinlv (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: edit 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 function xianshi_Callback(hObject, eventdata, handles) % hObject handle to xianshi (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,'String') returns contents of xianshi as text % str2double(get(hObject,'String')) returns contents of xianshi as a double % --- Executes during object creation, after setting all properties. function xianshi_CreateFcn(hObject, eventdata, handles) % hObject handle to xianshi (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: edit 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 button press in baocun. function baocun_Callback(hObject, eventdata, handles) % hObject handle to baocun (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) Fs=handles.Fs; [filename]=uiputfile({'*.wav'},'文件保存'); wavwrite(handles.y,Fs,filename);%data表示声音数据 function b2g_Callback(hObject, eventdata, handles) % hObject handle to b2g_pushbutton (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) %读取音频信息(双声道,16位,频率44100Hz) % 定义常数 FL = 80; % 帧长 WL = 240; % 窗长 P = 10; % 预测系数个数 data=handles.y;fs=handles.Fs; % 载入语音数据 data= data/max(data); %归一化 L = length(data); % 读入语音长度 FN = floor(L/FL)-2; % 计算帧数 % 预测和重建滤波器 exc = zeros(L,1); % 激励信号(预测误差) zi_pre = zeros(P,1); % 预测滤波器的状态 s_rec = zeros(L,1); % 重建语音 zi_rec = zeros(P,1); % 合成滤波器 exc_syn = zeros(L,1); % 合成的激励信号(脉冲串) s_syn = zeros(L,1); % 合成语音 last_syn = 0; %存储上一个(或多个)段的最后一个脉冲的下标 zi_syn = zeros(P,1); % 合成滤波器的状态 % 变调不变速滤波器 exc_syn_t = zeros(L,1); % 合成的激励信号(脉冲串) s_syn_t = zeros(L,1); % 合成语音 last_syn_t = 0; %存储上一个(或多个)段的最后一个脉冲的下标 zi_syn_t = zeros(P,1); % 合成滤波器的状态 % 变速不变调滤波器(假设速度减慢一倍) hw = hamming(WL); % 汉明窗 % 依次处理每帧语音 for n = 3:FN % 计算预测系数(不需要掌握) s_w = data(n*FL-WL 1:n*FL).*hw; %汉明窗加权后的语音 [A E] = lpc(s_w, P); %用线性预测法计算P个预测系数 % A是预测系数,E会被用来计算合成激励的能量 s_f = data((n-1)*FL 1:n*FL); % 本帧语音,下面就要对它做处理 % (4) 用filter函数s_f计算激励,注意保持滤波器状态 [exc1,zi_pre] = filter(A,1,s_f,zi_pre); exc((n-1)*FL 1:n*FL) = exc1; %计算得到的激励 % (5) 用filter函数和exc重建语音,注意保持滤波器状态 [s_rec1,zi_rec] = filter(1,A,exc1,zi_rec); s_rec((n-1)*FL 1:n*FL) = s_rec1; %计算得到的重建语音 % 注意下面只有在得到exc后才会计算正确 s_Pitch = exc(n*FL-222:n*FL); PT = findpitch(s_Pitch); % 计算基音周期PT(不要求掌握) G = sqrt(E*PT); % 计算合成激励的能量G(不要求掌握) %方法3:本段激励只能修改本段长度 tempn_syn = [1:n*FL-last_syn]'; exc_syn1 = zeros(length(tempn_syn),1); exc_syn1(mod(tempn_syn,PT)==0) = G; %某一段算出的脉冲 exc_syn1 = exc_syn1((n-1)*FL-last_syn 1:n*FL-last_syn); [s_syn1,zi_syn] = filter(1,A,exc_syn1,zi_syn); exc_syn((n-1)*FL 1:n*FL) = exc_syn1; %计算得到的合成激励 s_syn((n-1)*FL 1:n*FL) = s_syn1; %计算得到的合成语音 last_syn = last_syn PT*floor((n*FL-last_syn)/PT); % (13) 将基音周期减小一半,将共振峰频率增加150Hz,重新合成语音,听听是啥感受~ PT1 =floor(PT/2); %减小基音周期 poles = roots(A); deltaOMG =150*2*pi/fs; for p=1:10 %增加共振峰频率,实轴上方的极点逆时针转,下方顺时针转 if imag(poles(p))>0 poles(p) = poles(p)*exp(j*deltaOMG); elseif imag(poles(p))<0 poles(p) = poles(p)*exp(-j*deltaOMG); end end A1=poly(poles); tempn_syn_t = [1:n*FL-last_syn_t]'; exc_syn1_t = zeros(length(tempn_syn_t),1); exc_syn1_t(mod(tempn_syn_t,PT1)==0) = G; %某一段算出的脉冲 exc_syn1_t = exc_syn1_t((n-1)*FL-last_syn_t 1:n*FL-last_syn_t); [s_syn1_t,zi_syn_t] = filter(1,A1,exc_syn1_t,zi_syn_t); exc_syn_t((n-1)*FL 1:n*FL) = exc_syn1_t; %计算得到的合成激励 s_syn_t((n-1)*FL 1:n*FL) = s_syn1_t; %计算得到的合成语音 last_syn_t = last_syn_t PT1*floor((n*FL-last_syn_t)/PT1); end plot(handles.axes3,s_syn_t), set(handles.axes3,'Xgrid','on'); set(handles.axes3,'Ygrid','on'); xlabel(handles.axes3,'数据序列'); ylabel(handles.axes3,'频率'); title(handles.axes3,'变音后的时域图'),XLim([0,length(s_syn_t)]); handles.y=s_syn_t; guidata(hObject,handles); Fs=handles.foriginal; N=length(handles.y); y1=fft(handles.y,N); f1=0:Fs/N:Fs*(N-1)/N; plot(handles.axes1,f1,handles.yoriginal); title(handles.axes1,'原始时域图'); xlabel(handles.axes1,'时间'); ylabel(handles.axes1,'频率'); set(handles.axes1,'Xgrid','on'); set(handles.axes1,'Ygrid','on'); plot(handles.axes2,f1(1:N/2),y1(1:N/2)); set(handles.axes2,'Xgrid','on'); set(handles.axes2,'Ygrid','on'); title(handles.axes2,'频谱图'); xlabel( handles.axes2,'频率'); ylabel( handles.axes2,'幅度'); pause(3); sound(handles.yoriginal); sound(handles.y); % --- Executes on button press in g2b_pushbutton. function g2b_Callback(hObject, eventdata, handles) % hObject handle to g2b_pushbutton (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) y=handles.y; fs=handles.Fs;%读取音频信息(双声道,16位,频率44100Hz) N=length(y) f=0:fs/N:fs*(N-1)/N; Y=fft(y,N); %进行傅立叶变换 plot(handles.axes2,f(1:N/2),Y(1:N/2)); title(handles.axes2,'声音信号的频谱'); xlabel(handles.axes2,'频率'); ylabel(handles.axes2,'振幅'); f1=0:(fs*0.7)/N:(fs*0.7)*(N-1)/N; syms t; t=[0,9]; R=y*exp(2*pi*300*t); P=fft(R,N); Z=ifft(P); z=real(Z); handles.y=y; plot(handles.axes3,f1(1:N/2),Z(1:N/2)); title(handles.axes3,'变声后的时域图'); xlabel(handles.axes3,'时间序列'); ylabel(handles.axes3,'频率') set(handles.axes3,'Xgrid','on'); set(handles.axes3,'Ygrid','on'); Fs=handles.foriginal; N=length(handles.y); y1=fft(handles.y,N); f1=0:Fs/N:Fs*(N-1)/N; plot(handles.axes1,f1,handles.yoriginal); title(handles.axes1,'原始时域图'); xlabel(handles.axes1,'时间'); ylabel(handles.axes1,'频率'); set(handles.axes1,'Xgrid','on'); set(handles.axes1,'Ygrid','on'); plot(handles.axes2,f1(1:N/2),y1(1:N/2)); set(handles.axes2,'Xgrid','on'); set(handles.axes2,'Ygrid','on'); title(handles.axes2,'频谱图'); xlabel( handles.axes2,'频率'); ylabel( handles.axes2,'幅度'); pause(3); guidata(hObject,handles); sound(handles.yoriginal); sound(handles.y,handles.foriginal*0.7); % --- Executes on button press in bijiao_pushbutton. function bijiao_pushbutton_Callback(hObject, eventdata, handles) % hObject handle to bijiao_pushbutton (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) handles.y=handles.yoriginal; handles.Fs=handles.foriginal; guidata(hObject,handles); % 计算一段语音的基音周期 function PT = findpitch(s) [B, A] = butter(5, 700/4000); s = filter(B,A,s); R = zeros(143,1); for k=1:143 R(k) = s(144:223)'*s(144-k:223-k); end [R1,T1] = max(R(80:143)); T1 = T1 79; R1 = R1/(norm(s(144-T1:223-T1)) 1); [R2,T2] = max(R(40:79)); T2 = T2 39; R2 = R2/(norm(s(144-T2:223-T2)) 1); [R3,T3] = max(R(20:39)); T3 = T3 19; R3 = R3/(norm(s(144-T3:223-T3)) 1); Top = T1; Rop = R1; if R2 >= 0.85*Rop Rop = R2; Top = T2; end if R3 > 0.85*Rop Rop = R3; Top = T3; end PT = Top; return % --- Executes on key press with focus on bofangpinlv and none of its controls. function bofangpinlv_KeyPressFcn(hObject, eventdata, handles) % hObject handle to bofangpinlv (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) % --- Executes during object creation, after setting all properties. function axes4_CreateFcn(hObject, eventdata, handles) % hObject handle to axes4 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: place code in OpeningFcn to populate axes4
好例子网口号:伸出你的我的手 — 分享!
小贴士
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
- 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
- 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
- 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
- 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明
网友评论
我要评论