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

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 三分类机器学习模型可视化分析
  • ¥15 本地测试网站127.0.0.1 已拒绝连接,如何解决?(标签-ubuntu)
  • ¥50 Qt在release捕获异常并跟踪堆栈(有Demo,跑一下环境再回答)
  • ¥30 python,LLM 文本提炼
  • ¥15 关于将inet引入的相关问题
  • ¥15 关于一个倒计时的操作和显示设计
  • ¥15 提问STK的问题,哪位航天领域的同学会啊
  • ¥15 苹果系统的mac m1芯片的笔记本使用ce修改器使用不了
  • ¥15 单相逆变的电压电流双闭环中进行低通滤波PID算法改进
  • ¥15 关于#java#的问题,请各位专家解答!