![]() |
[求助]新手编程求助
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 |
所有时间均为北京时间。现在的时间是 11:20。 |
Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.