越封 2021-12-26 22:26 采纳率: 66.7%
浏览 189
已结题

MATLAB 未定义变量 "tdata" 或类 "tdata"

问题遇到的现象和发生背景

自己创建了一个mat文件,用这个代码就不行

问题相关代码,请勿粘贴截图
clear all;
Spk_num=6; %说话人个数
Tra_num=5;  %每个说话人用于训练的语音数目,可修改

ncentres=16; %混合成分数目,可修改,需要同时修改识别程序
fs=16000; %采样频率

% -- 训练 ---
load y.mat; 
for spk_cyc=1:Spk_num    % 遍历说话人
  fprintf('训练第%i个说话人\n',spk_cyc);
  tag1=1;tag2=1; %用于汇总存储mfcc
  for sph_cyc=1:Tra_num  % 遍历语音
     speech = tdata{spk_cyc}{sph_cyc}; 
      %---预处理,特征提取--
     pre_sph=filter([1 -0.97],1,speech); % 预加重
     win_type='M'; %汉明窗
     cof_num=20; %倒谱系数个数
     frm_len=fs*0.02; %帧长:20ms
     fil_num=20; %滤波器组个数
     frm_off=fs*0.01; %帧移:10ms
     c=melcepst(pre_sph,fs,win_type,cof_num,fil_num,frm_len,frm_off); % mfcc特征提取
     cc=c(:,1:end-1)';
     tag2=tag1+size(cc,2);
     cof(:,tag1:tag2-1)=cc;
     tag1=tag2;
  end
   
  %--- 训练GMM模型---
  kiter=5; %Kmeans的最大迭代次数
  emiter=30;         %EM算法的最大迭代次数,可修改
  mix=gmm_init(ncentres,cof',kiter,'full'); % GMM的初始化
  [mix,post,errlog]=gmm_em(mix,cof',emiter); % GMM的参数估计
  speaker{spk_cyc}.pai=mix.priors;
  speaker{spk_cyc}.mu=mix.centres;
  speaker{spk_cyc}.sigma=mix.covars;
   
  clear cof mix;
end
fprintf('训练完成!\n',spk_cyc);
save speaker.mat speaker;


运行结果及报错内容

img

我的解答思路和尝试过的方法

附上y.mat文件的内容

img

以及可以正常运行的.mat文件的内容

img

我想要达到的结果
  • 写回答

1条回答 默认 最新

  • joel_1993 2021-12-27 11:08
    关注

    你好,把正常运行的那些数据,你也需要一个个生成好,比如tdata这种,当然还有其他的变量,都保存成y.mat即可

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 1月6日
  • 已采纳回答 12月29日
  • 修改了问题 12月26日
  • 创建了问题 12月26日

悬赏问题

  • ¥15 数学的三元一次方程求解
  • ¥20 iqoo11 如何下载安装工程模式
  • ¥15 本题的答案是不是有问题
  • ¥15 关于#r语言#的问题:(svydesign)为什么在一个大的数据集中抽取了一个小数据集
  • ¥15 C++使用Gunplot
  • ¥15 这个电路是如何实现路灯控制器的,原理是什么,怎么求解灯亮起后熄灭的时间如图?
  • ¥15 matlab数字图像处理频率域滤波
  • ¥15 在abaqus做了二维正交切削模型,给刀具添加了超声振动条件后输出切削力为什么比普通切削增大这么多
  • ¥15 ELGamal和paillier计算效率谁快?
  • ¥15 蓝桥杯单片机第十三届第一场,整点继电器吸合,5s后断开出现了问题