xiaopeng1823 发表于 2008-12-2 18:00

求助大虾matlab 编程问题

function code = train(traindir, n)
% 计算wav文件的VQ码码本
% Speaker Recognition: Training Stage
%
% Input:
%       traindir : string name of directory contains all train sound files
%       n      : number of train files in traindir
%
% Output:
%       code   : trained VQ codebooks, code{i} for i-th speaker
%
% Note:
%       Sound files in traindir is supposed to be:
%                     s1.wav, s2.wav, ..., sn.wav
% Example:
%       >> code = train('C:\data\train\', 8);
k = 16;                         % number of centroids required
for i = 1:n                     % train a VQ codebook for each speaker
    file = sprintf('%ss%d.wav', traindir, i);         
    disp(file);
   
    = wavread(file);
   
    v = mfcc(s, fs);            % Compute MFCC's
   
    code{i} = vqlbg(v, k);      % Train VQ codebook
end

此为一段对n个说话人的录音生成n个码本的程序,我想该为几个说话人的录音生成1个码本的程序。
觉得应该从,提取的采样值s,入手,把每个人的采样值s连起来,如第一个人s=a,第二个人s=b,表示两个人特征的
采样值s=.
这是我改的:
(刚接触matlab,对于编程不太了解,程序根本就运行不了,放在这里就是想让把自己的想法明确一点)
k = 16;                         % number of centroids required
for i = 1:n                     % train a VQ codebook for each speaker
    file = sprintf('%ss%d.wav', traindir, i);         
    disp(file);
   
    = wavread(file);
    s{i}=s
   
end
   s=
   v = mfcc(s, fs);            % Compute MFCC's
    code{i} = vqlbg(v, k);      % Train VQ codebook
页: [1]
查看完整版本: 求助大虾matlab 编程问题