声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 777|回复: 0

[编程技巧] 求助大虾matlab 编程问题

[复制链接]
发表于 2008-12-2 18:00 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
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);
   
    [s, fs] = 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=[a b].
这是我改的:
(刚接触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);
   
    [s, fs] = wavread(file);
    s{i}=s
   
end
   s=[s{i}...s{n}]
   v = mfcc(s, fs);            % Compute MFCC's
    code{i} = vqlbg(v, k);      % Train VQ codebook

train.m

872 Bytes, 下载次数: 4

回复
分享到:

使用道具 举报

您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-11-17 18:31 , Processed in 0.084359 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表