اطلاعیه

Collapse
No announcement yet.

پردازش گفتار در مطلب

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    پردازش گفتار در مطلب

    سلام دوستان و مهندسین گرامی
    من دارم ی پروژه در زمینه پردازش گفتار انجام میدم
    چنتاسوال از خدمت دوستان دارم
    اول اینکه با توجه به اینکه در برنامه متلب HMM وجود داره میخوام پردازش MFCC رو کار کنم و خودم با برنامه C کد نویسی میکنم بنظر شما برنامه نویسی در کدوم محیط بهتره سی یا متلب :redface: ؟؟واینکه میخوام اخر کار این برنامه تو سخت افزار پیاده سازی کنم چه میکرو یا میکرو کنترلر یا FPGA...برای این پروژه بهتره؟؟ :read:
    آنقدر شکست میآ‌خورم تا راه شکست دادن را بیاموزم

    #2
    پاسخ : پردازش گفتار در مطلب

    % American Sign Language Detection-Speech
    % Gives output for real-time audio input
    clc
    clear all
    close all

    %% Add training and test directories to path
    addpath('./Training/A'
    addpath('./Training/B'
    addpath('./Training/C'
    addpath('./Training/Five'
    addpath('./Training/Point'
    cAlpha = [{'A'},{'B'},{'C'},{& #039;Five'},{'Point'},{'V&#039 ;}];%No of alphabet used

    %% Load Training set
    load Fan_all.mat
    load Neeraj_all.mat
    load Zhang_all.mat
    display('Record your sound saying one of these (A,B,C,Five,Point,V)'
    in = input('Press any char when you are ready-','s'
    fs = 44100;
    InputIn = wavrecord(fs,fs);

    %% Set variables
    NoOfSamples = 25;
    Users = {'Fan','Neeraj','Zhang&#0 39;};
    Letters = {'A','B','C','F ive','Point','V'};

    %MFCC parameters
    OverlapSize = 0.5;
    MFCCNo = 45;
    NoOfWindows = 25;
    NoOfFilters = floor(MFCCNo/NoOfWindows+1);
    mfcc = zeros(size(Letters,2),size(Users,2)*NoOfSamples,MF CCNo);

    %% MFCC Training for all letters
    for ii = 1:size(Letters,2);
    for jj = 1:size(Users,2);
    for kk = 1:NoOfSamples
    file_name = strcat(Users(jj),'_',Letters(ii),int2str (kk));
    Samples = eval(char(file_name));
    zz = find(Samples) < max(Samples/3);%Threshold speech regions
    Samples(zz) = 0;
    zz = find(Samples);
    Speech_Region = Samples(zz)/norm(Samples(zz));
    WindowSize = floor((size(Speech_Region,1))/(NoOfWindows+1));
    ww = 0;
    for ll = 0:OverlapSize:(NoOfWindows-1)/2
    bb = Speech_Region(floor(ll*WindowSize)+1:floor(ll*Wind owSize)+WindowSize).*hamming(WindowSize);
    fb = fft(bb);
    mb = 2595 * log10(1 + fb./700);
    mfout = dct(log(abs(mb)),NoOfFilters);
    mfcc(ii,kk,ww*NoOfFilters+1:ww*NoOfFilters+NoOfFil ters) = mfout;
    ww = ww + 1;
    end
    end
    end
    end


    %% Perform Gaussian Modelling for MFCC
    Windows = size(mfcc,3);
    tempStorage = zeros(size(Users,2)*NoOfSamples,Windows);
    tempStorage(:, = mfcc(1,:,;
    obj_A = gmdistribution.fit(tempStorage,1,'Regularize& #039;,0.01);
    tempStorage(:, = mfcc(2,:,;
    obj_B = gmdistribution.fit(tempStorage,1,'Regularize& #039;,0.01);
    tempStorage(:, = mfcc(3,:,;
    obj_C = gmdistribution.fit(tempStorage,1,'Regularize& #039;,0.01);
    tempStorage(:, = mfcc(4,:,;
    obj_Five = gmdistribution.fit(tempStorage,1,'Regularize& #039;,0.01);
    tempStorage(:, = mfcc(5,:,;
    obj_Point = gmdistribution.fit(tempStorage,1,'Regularize& #039;,0.01);
    tempStorage(:, = mfcc(6,:,;
    obj_V = gmdistribution.fit(tempStorage,1,'Regularize& #039;,0.01);

    %% Extract MFCC for test data
    Samples = InputIn;
    zz = find(Samples) < max(Samples/3);%Threshold speech regions
    Samples(zz) = 0;
    zz = find(Samples);
    Speech_Region = Samples(zz);
    mfcc_test = zeros(1,MFCCNo);
    WindowSize = floor((size(Speech_Region,1))/(NoOfWindows+1));
    ww = 0;
    for ll = 0:OverlapSize:(NoOfWindows-1)/2
    bb = Speech_Region(floor(ll*WindowSize)+1:floor(ll*Wind owSize)+WindowSize).*hamming(WindowSize);
    fb = fft(bb);
    mb = 2595 * log10(1 + fb./700);
    mfout = dct(log(abs(mb)),NoOfFilters);
    mfcc_test(1,ww*NoOfFilters+1:ww*NoOfFilters+NoOfFi lters) = mfout;
    ww = ww + 1;
    end

    %% Classify MFCC test data on Mahanalobis distance
    D1(1) = mahal(obj_A,mfcc_test);
    D1(2) = mahal(obj_B,mfcc_test);
    D1(3) = mahal(obj_C,mfcc_test);
    D1(4) = mahal(obj_Five,mfcc_test);
    D1(5) = mahal(obj_Point,mfcc_test);
    D1(6) = mahal(obj_V,mfcc_test);
    [m Ind] = min(D1);

    % LPC parameters
    NoOfLPCFilters = 50;
    lpccoeff = zeros(size(Letters,2),size(Users,2)*NoOfSamples,No OfLPCFilters+1);

    %% LPC Training for all letters
    % Training for all letters
    for ii = 1:size(Letters,2);
    ll = 1;
    for jj = 1:size(Users,2);
    for kk = 1:NoOfSamples
    file_name = strcat(Users(jj),'_',Letters(ii),int2str (kk));
    Samples = eval(char(file_name));
    zz = find(Samples) < max(Samples/3);%Threshold speech regions
    Samples(zz) = 0;
    zz = find(Samples);
    Speech_Region = Samples(zz)/norm(Samples(zz));
    lpccoeff(ii,ll, = lpc(Speech_Region,NoOfLPCFilters);
    ll = ll + 1;
    end
    end
    end

    %% Perform Gaussian Modelling for LPC
    tempStorage = zeros(size(Users,2)*NoOfSamples,NoOfLPCFilters);
    tempStorage(:, = lpccoeff(1,:,2:end);
    obj_A2 = gmdistribution.fit(tempStorage,1);
    tempStorage(:, = lpccoeff(2,:,2:end);
    obj_B2 = gmdistribution.fit(tempStorage,1);
    tempStorage(:, = lpccoeff(3,:,2:end);
    obj_C2 = gmdistribution.fit(tempStorage,1);
    tempStorage(:, = lpccoeff(4,:,2:end);
    obj_Five2 = gmdistribution.fit(tempStorage,1);
    tempStorage(:, = lpccoeff(5,:,2:end);
    obj_Point2 = gmdistribution.fit(tempStorage,1);
    tempStorage(:, = lpccoeff(6,:,2:end);
    obj_V2 = gmdistribution.fit(tempStorage,1);

    %% Perform Gaussian Modelling for LPC
    tempStorage = zeros(size(Users,2)*NoOfSamples,NoOfLPCFilters);
    tempStorage(:, = lpccoeff(1,:,2:end);
    obj_A2 = gmdistribution.fit(tempStorage,1);
    tempStorage(:, = lpccoeff(2,:,2:end);
    obj_B2 = gmdistribution.fit(tempStorage,1);
    tempStorage(:, = lpccoeff(3,:,2:end);
    obj_C2 = gmdistribution.fit(tempStorage,1);
    tempStorage(:, = lpccoeff(4,:,2:end);
    obj_Five2 = gmdistribution.fit(tempStorage,1);
    tempStorage(:, = lpccoeff(5,:,2:end);
    obj_Point2 = gmdistribution.fit(tempStorage,1);
    tempStorage(:, = lpccoeff(6,:,2:end);
    obj_V2 = gmdistribution.fit(tempStorage,1);

    %% Extract LPC for test data
    Samples = InputIn;
    zz = find(Samples) < max(Samples/3);%Threshold speech regions
    Samples(zz) = 0;
    zz = find(Samples);
    Speech_Region = Samples(zz);
    ww = 1;
    lpc_test = lpc(Speech_Region,NoOfLPCFilters);

    %% Classify LPC test data on Mahanalobis distance
    D2(1) = mahal(obj_A2,lpc_test(2:end));
    D2(2) = mahal(obj_B2,lpc_test(2:end));
    D2(3) = mahal(obj_C2,lpc_test(2:end));
    D2(4) = mahal(obj_Five2,lpc_test(2:end));
    D2(5) = mahal(obj_Point2,lpc_test(2:end));
    D2(6) = mahal(obj_V2,lpc_test(2:end));
    [m Ind2] = min(D2);

    %% Display output
    f = figure();
    set(gca, 'fontsize', 28);
    set(f,'name','Recognized Letter&#039
    subplot (1,2,1)
    RecongImg = strcat(cAlpha(Ind),'-train1.jpg'
    imshow(char(RecongImg));
    title(strcat('Recognized Letter using MFCC-',cAlpha(Ind)),'fontsize',20);
    subplot (1,2,2)
    RecongImg = strcat(cAlpha(Ind2),'-train1.jpg'
    imshow(char(RecongImg));
    title(strcat('Recognized Letter using LPC-',cAlpha(Ind2)),'fontsize',20);

    display('Input is'
    wavplay(InputIn,fs);
    آنقدر شکست میآ‌خورم تا راه شکست دادن را بیاموزم

    دیدگاه


      #3
      پاسخ : پردازش گفتار در مطلب

      % American Sign Language Detection-Speech
      % Performs testing one 1 sample of the speech database.
      clc
      clear all
      close all

      %% Add training and test directories to path
      addpath('./Training/&#039
      cAlpha = [{'A'},{'B'},{'C'},{& #039;Five'},{'Point'},{'V&#039 ;}];%No of alphabet used

      %% Load Training set
      load Fan_all.mat
      load Neeraj_all.mat
      load Zhang_all.mat
      InputP = input('Enter person whose voice you want to use for input{Neeraj,Fan,Zhang)-','s'
      InputC = input('Enter Symbol for input No(A,B,C,Point,Five,V)-','s'
      InputN = input('Enter Sample No(1-25)-','s'
      InputIn = strcat(InputP,'_',InputC,InputN);

      %% Set variables
      NoOfSamples = 25;
      Users = {'Fan','Neeraj','Zhang&#0 39;};
      Letters = {'A','B','C','F ive','Point','V'};

      %MFCC parameters
      OverlapSize = 0.5;
      MFCCNo = 45;
      NoOfWindows = 25;
      NoOfFilters = floor(MFCCNo/NoOfWindows+1);
      mfcc = zeros(size(Letters,2),size(Users,2)*NoOfSamples,MF CCNo);

      %% MFCC Training for all letters
      for ii = 1:size(Letters,2);
      for jj = 1:size(Users,2);
      for kk = 1:NoOfSamples
      file_name = strcat(Users(jj),'_',Letters(ii),int2str (kk));
      Samples = eval(char(file_name));
      zz = find(Samples) < max(Samples/3);%Threshold speech regions
      Samples(zz) = 0;
      zz = find(Samples);
      Speech_Region = Samples(zz)/norm(Samples(zz));
      WindowSize = floor((size(Speech_Region,1))/(NoOfWindows+1));
      ww = 0;
      for ll = 0:OverlapSize:(NoOfWindows-1)/2
      bb = Speech_Region(floor(ll*WindowSize)+1:floor(ll*Wind owSize)+WindowSize).*hamming(WindowSize);
      fb = fft(bb);
      mb = 2595 * log10(1 + fb./700);
      mfout = dct(log(abs(mb)),NoOfFilters);
      mfcc(ii,kk,ww*NoOfFilters+1:ww*NoOfFilters+NoOfFil ters) = mfout;
      ww = ww + 1;
      end
      end
      end
      end


      %% Perform Gaussian Modelling for MFCC
      Windows = size(mfcc,3);
      tempStorage = zeros(size(Users,2)*NoOfSamples,Windows);
      tempStorage(:, = mfcc(1,:,;
      obj_A = gmdistribution.fit(tempStorage,1,'Regularize& #039;,0.01);
      tempStorage(:, = mfcc(2,:,;
      obj_B = gmdistribution.fit(tempStorage,1,'Regularize& #039;,0.01);
      tempStorage(:, = mfcc(3,:,;
      obj_C = gmdistribution.fit(tempStorage,1,'Regularize& #039;,0.01);
      tempStorage(:, = mfcc(4,:,;
      obj_Five = gmdistribution.fit(tempStorage,1,'Regularize& #039;,0.01);
      tempStorage(:, = mfcc(5,:,;
      obj_Point = gmdistribution.fit(tempStorage,1,'Regularize& #039;,0.01);
      tempStorage(:, = mfcc(6,:,;
      obj_V = gmdistribution.fit(tempStorage,1,'Regularize& #039;,0.01);

      %% Extract MFCC for test data
      Samples = eval(char(InputIn));
      zz = find(Samples) < max(Samples/3);%Threshold speech regions
      Samples(zz) = 0;
      zz = find(Samples);
      Speech_Region = Samples(zz);
      mfcc_test = zeros(1,MFCCNo);
      WindowSize = floor((size(Speech_Region,1))/(NoOfWindows+1));
      ww = 0;
      for ll = 0:OverlapSize:(NoOfWindows-1)/2
      bb = Speech_Region(floor(ll*WindowSize)+1:floor(ll*Wind owSize)+WindowSize).*hamming(WindowSize);
      fb = fft(bb);
      mb = 2595 * log10(1 + fb./700);
      mfout = dct(log(abs(mb)),NoOfFilters);
      mfcc_test(1,ww*NoOfFilters+1:ww*NoOfFilters+NoOfFi lters) = mfout;
      ww = ww + 1;
      end

      %% Classify MFCC test data on Mahanalobis distance
      D1(1) = mahal(obj_A,mfcc_test);
      D1(2) = mahal(obj_B,mfcc_test);
      D1(3) = mahal(obj_C,mfcc_test);
      D1(4) = mahal(obj_Five,mfcc_test);
      D1(5) = mahal(obj_Point,mfcc_test);
      D1(6) = mahal(obj_V,mfcc_test);
      [m Ind] = min(D1);

      % LPC parameters
      NoOfLPCFilters = 50;
      lpccoeff = zeros(size(Letters,2),size(Users,2)*NoOfSamples,No OfLPCFilters+1);

      %% LPC Training for all letters
      % Training for all letters
      for ii = 1:size(Letters,2);
      ll = 1;
      for jj = 1:size(Users,2);
      for kk = 1:NoOfSamples
      file_name = strcat(Users(jj),'_',Letters(ii),int2str (kk));
      Samples = eval(char(file_name));
      zz = find(Samples) < max(Samples/3);%Threshold speech regions
      Samples(zz) = 0;
      zz = find(Samples);
      Speech_Region = Samples(zz)/norm(Samples(zz));
      lpccoeff(ii,ll, = lpc(Speech_Region,NoOfLPCFilters);
      ll = ll + 1;
      end
      end
      end

      %% Perform Gaussian Modelling for LPC
      tempStorage = zeros(size(Users,2)*NoOfSamples,NoOfLPCFilters);
      tempStorage(:, = lpccoeff(1,:,2:end);
      obj_A2 = gmdistribution.fit(tempStorage,1);
      tempStorage(:, = lpccoeff(2,:,2:end);
      obj_B2 = gmdistribution.fit(tempStorage,1);
      tempStorage(:, = lpccoeff(3,:,2:end);
      obj_C2 = gmdistribution.fit(tempStorage,1);
      tempStorage(:, = lpccoeff(4,:,2:end);
      obj_Five2 = gmdistribution.fit(tempStorage,1);
      tempStorage(:, = lpccoeff(5,:,2:end);
      obj_Point2 = gmdistribution.fit(tempStorage,1);
      tempStorage(:, = lpccoeff(6,:,2:end);
      obj_V2 = gmdistribution.fit(tempStorage,1);

      %% Perform Gaussian Modelling for LPC
      tempStorage = zeros(size(Users,2)*NoOfSamples,NoOfLPCFilters);
      tempStorage(:, = lpccoeff(1,:,2:end);
      obj_A2 = gmdistribution.fit(tempStorage,1);
      tempStorage(:, = lpccoeff(2,:,2:end);
      obj_B2 = gmdistribution.fit(tempStorage,1);
      tempStorage(:, = lpccoeff(3,:,2:end);
      obj_C2 = gmdistribution.fit(tempStorage,1);
      tempStorage(:, = lpccoeff(4,:,2:end);
      obj_Five2 = gmdistribution.fit(tempStorage,1);
      tempStorage(:, = lpccoeff(5,:,2:end);
      obj_Point2 = gmdistribution.fit(tempStorage,1);
      tempStorage(:, = lpccoeff(6,:,2:end);
      obj_V2 = gmdistribution.fit(tempStorage,1);

      %% Extract LPC for test data
      Samples = eval(char(InputIn));
      zz = find(Samples) < max(Samples/3);%Threshold speech regions
      Samples(zz) = 0;
      zz = find(Samples);
      Speech_Region = Samples(zz);
      ww = 1;
      lpc_test = lpc(Speech_Region,NoOfLPCFilters);

      %% Classify LPC test data on Mahanalobis distance
      D2(1) = mahal(obj_A2,lpc_test(2:end));
      D2(2) = mahal(obj_B2,lpc_test(2:end));
      D2(3) = mahal(obj_C2,lpc_test(2:end));
      D2(4) = mahal(obj_Five2,lpc_test(2:end));
      D2(5) = mahal(obj_Point2,lpc_test(2:end));
      D2(6) = mahal(obj_V2,lpc_test(2:end));
      [m Ind2] = min(D2);


      %% Display output
      f = figure();
      set(gca, 'fontsize', 28);
      set(f,'name','Recognized Letter&#039
      subplot (1,2,1)
      RecongImg = strcat(cAlpha(Ind),'-train1.jpg'
      imshow(char(RecongImg));
      title(strcat('Recognized Letter using MFCC-',cAlpha(Ind)),'fontsize',20);
      subplot (1,2,2)
      RecongImg = strcat(cAlpha(Ind2),'-train1.jpg'
      imshow(char(RecongImg));
      title(strcat('Recognized Letter using LPC-',cAlpha(Ind2)),'fontsize',20);

      display('Input is'
      wavplay(eval(char(InputIn)),fs);
      آنقدر شکست میآ‌خورم تا راه شکست دادن را بیاموزم

      دیدگاه


        #4
        پاسخ : پردازش گفتار در مطلب

        % American Sign Language Detection-Speech
        % Performs testing on the testing samples of the speech database.
        clc
        clear all
        close all

        %% Add training and test directories to path
        addpath('./Training/&#039
        cAlpha = [{'A'},{'B'},{'C'},{& #039;Five'},{'Point'},{'V&#039 ;}];%No of alphabet used

        %% Load Training set
        load Fan_all.mat
        load Neeraj_all.mat
        load Zhang_all.mat

        %% Set variables
        NoOfSamples = 20;
        NoOfTestSamples = 5;
        Users = {'Fan','Neeraj','Zhang&#0 39;};
        Letters = {'A','B','C','F ive','Point','V'};

        %MFCC parameters
        OverlapSize = 0.5;
        MFCCNo = 45;
        NoOfWindows = 25;
        NoOfFilters = floor(MFCCNo/NoOfWindows+1);
        mfcc = zeros(size(Letters,2),size(Users,2)*NoOfSamples,MF CCNo);

        %% MFCC Training for all letters
        for ii = 1:size(Letters,2);
        for jj = 1:size(Users,2);
        for kk = 1:NoOfSamples
        file_name = strcat(Users(jj),'_',Letters(ii),int2str (kk));
        Samples = eval(char(file_name));
        zz = find(Samples) < max(Samples/3);%Threshold speech regions
        Samples(zz) = 0;
        zz = find(Samples);
        Speech_Region = Samples(zz)/norm(Samples(zz));
        WindowSize = floor((size(Speech_Region,1))/(NoOfWindows+1));
        ww = 0;
        for ll = 0:OverlapSize:(NoOfWindows-1)/2
        bb = Speech_Region(floor(ll*WindowSize)+1:floor(ll*Wind owSize)+WindowSize).*hamming(WindowSize);
        fb = fft(bb);
        mb = 2595 * log10(1 + fb./700);
        mfout = dct(log(abs(mb)),NoOfFilters);
        mfcc(ii,kk,ww*NoOfFilters+1:ww*NoOfFilters+NoOfFil ters) = mfout;
        ww = ww + 1;
        end
        end
        end
        end


        %% Perform Gaussian Modelling for MFCC
        Windows = size(mfcc,3);
        tempStorage = zeros(size(Users,2)*NoOfSamples,Windows);
        tempStorage(:, = mfcc(1,:,;
        obj_A = gmdistribution.fit(tempStorage,1,'Regularize& #039;,0.01);
        tempStorage(:, = mfcc(2,:,;
        obj_B = gmdistribution.fit(tempStorage,1,'Regularize& #039;,0.01);
        tempStorage(:, = mfcc(3,:,;
        obj_C = gmdistribution.fit(tempStorage,1,'Regularize& #039;,0.01);
        tempStorage(:, = mfcc(4,:,;
        obj_Five = gmdistribution.fit(tempStorage,1,'Regularize& #039;,0.01);
        tempStorage(:, = mfcc(5,:,;
        obj_Point = gmdistribution.fit(tempStorage,1,'Regularize& #039;,0.01);
        tempStorage(:, = mfcc(6,:,;
        obj_V = gmdistribution.fit(tempStorage,1,'Regularize& #039;,0.01);

        % LPC parameters
        NoOfLPCFilters = 50;
        lpccoeff = zeros(size(Letters,2),size(Users,2)*NoOfSamples,No OfLPCFilters+1);

        %% LPC Training for all letters
        % Training for all letters
        for ii = 1:size(Letters,2);
        ll = 1;
        for jj = 1:size(Users,2);
        for kk = 1:NoOfSamples
        file_name = strcat(Users(jj),'_',Letters(ii),int2str (kk));
        Samples = eval(char(file_name));
        zz = find(Samples) < max(Samples/3);%Threshold speech regions
        Samples(zz) = 0;
        zz = find(Samples);
        Speech_Region = Samples(zz)/norm(Samples(zz));
        lpccoeff(ii,ll, = lpc(Speech_Region,NoOfLPCFilters);
        ll = ll + 1;
        end
        end
        end

        %% Perform Gaussian Modelling for LPC
        tempStorage = zeros(size(Users,2)*NoOfSamples,NoOfLPCFilters);
        tempStorage(:, = lpccoeff(1,:,2:end);
        obj_A2 = gmdistribution.fit(tempStorage,1);
        tempStorage(:, = lpccoeff(2,:,2:end);
        obj_B2 = gmdistribution.fit(tempStorage,1);
        tempStorage(:, = lpccoeff(3,:,2:end);
        obj_C2 = gmdistribution.fit(tempStorage,1);
        tempStorage(:, = lpccoeff(4,:,2:end);
        obj_Five2 = gmdistribution.fit(tempStorage,1);
        tempStorage(:, = lpccoeff(5,:,2:end);
        obj_Point2 = gmdistribution.fit(tempStorage,1);
        tempStorage(:, = lpccoeff(6,:,2:end);
        obj_V2 = gmdistribution.fit(tempStorage,1);

        %% Perform Gaussian Modelling for LPC
        tempStorage = zeros(size(Users,2)*NoOfSamples,NoOfLPCFilters);
        tempStorage(:, = lpccoeff(1,:,2:end);
        obj_A2 = gmdistribution.fit(tempStorage,1);
        tempStorage(:, = lpccoeff(2,:,2:end);
        obj_B2 = gmdistribution.fit(tempStorage,1);
        tempStorage(:, = lpccoeff(3,:,2:end);
        obj_C2 = gmdistribution.fit(tempStorage,1);
        tempStorage(:, = lpccoeff(4,:,2:end);
        obj_Five2 = gmdistribution.fit(tempStorage,1);
        tempStorage(:, = lpccoeff(5,:,2:end);
        obj_Point2 = gmdistribution.fit(tempStorage,1);
        tempStorage(:, = lpccoeff(6,:,2:end);
        obj_V2 = gmdistribution.fit(tempStorage,1);

        LPCCorrect_Test = zeros(size(Users,2),size(Letters,2));
        MFCCCorrect_Test = zeros(size(Users,2),size(Letters,2));
        for ii = 1:size(Letters,2);
        for jj = 1:size(Users,2);
        for kk = 1:NoOfTestSamples
        %% Extract MFCC for test data
        InputIn = strcat(Users(jj),'_',Letters(ii),int2str (kk));
        Samples = eval(char(InputIn));
        zz = find(Samples) < max(Samples/3);%Threshold speech regions
        Samples(zz) = 0;
        zz = find(Samples);
        Speech_Region = Samples(zz);
        mfcc_test = zeros(1,MFCCNo);
        WindowSize = floor((size(Speech_Region,1))/(NoOfWindows+1));
        ww = 0;
        for ll = 0:OverlapSize:(NoOfWindows-1)/2
        bb = Speech_Region(floor(ll*WindowSize)+1:floor(ll*Wind owSize)+WindowSize).*hamming(WindowSize);
        fb = fft(bb);
        mb = 2595 * log10(1 + fb./700);
        mfout = dct(log(abs(mb)),NoOfFilters);
        mfcc_test(1,ww*NoOfFilters+1:ww*NoOfFilters+NoOfFi lters) = mfout;
        ww = ww + 1;
        end

        %% Classify MFCC test data on Mahanalobis distance
        D1(1) = mahal(obj_A,mfcc_test);
        D1(2) = mahal(obj_B,mfcc_test);
        D1(3) = mahal(obj_C,mfcc_test);
        D1(4) = mahal(obj_Five,mfcc_test);
        D1(5) = mahal(obj_Point,mfcc_test);
        D1(6) = mahal(obj_V,mfcc_test);
        [m Ind] = min(D1);

        if(Ind == ii)
        MFCCCorrect_Test(jj,ii) = MFCCCorrect_Test(jj,ii) + 1;
        end
        %% Extract LPC for test data
        Samples = eval(char(InputIn));
        zz = find(Samples) < max(Samples/3);%Threshold speech regions
        Samples(zz) = 0;
        zz = find(Samples);
        Speech_Region = Samples(zz);
        ww = 1;
        lpc_test = lpc(Speech_Region,NoOfLPCFilters);

        %% Classify LPC test data on Mahanalobis distance
        D2(1) = mahal(obj_A2,lpc_test(2:end));
        D2(2) = mahal(obj_B2,lpc_test(2:end));
        D2(3) = mahal(obj_C2,lpc_test(2:end));
        D2(4) = mahal(obj_Five2,lpc_test(2:end));
        D2(5) = mahal(obj_Point2,lpc_test(2:end));
        D2(6) = mahal(obj_V2,lpc_test(2:end));
        [m Ind2] = min(D2);
        if(Ind2 == ii)
        LPCCorrect_Test(jj,ii) = LPCCorrect_Test(jj,ii) + 1;
        end
        end
        end
        end
        display('% LPC got correct is-'
        sum(sum(LPCCorrect_Test))/(size(Letters,2)*size(Users,2)*NoOfTestSamples)
        display('% MFCC got correct is-'
        sum(sum(MFCCCorrect_Test))/(size(Letters,2)*size(Users,2)*NoOfTestSamples)
        آنقدر شکست میآ‌خورم تا راه شکست دادن را بیاموزم

        دیدگاه


          #5
          پاسخ : پردازش گفتار در مطلب

          :sad: کسی نمیدونه؟
          آنقدر شکست میآ‌خورم تا راه شکست دادن را بیاموزم

          دیدگاه


            #6
            پاسخ : پردازش گفتار در مطلب

            سلام. بهتره اول با متلب نتیجه بگیری بعد بری سراغ C. برای HMM هم یک تولباکس آماده هست که سرچ کنی HMM Toolbox Murphy پیداش می کنی که از HMM خود متلب خیلی بهتره.
            لطفاً برای انجام پروژه های دانشجویی پیام خصوصی نفرستید.
            لطفاً سوالاتی که در انجمن قابل طرح شدن هستند پیام خصوصی نکنید.
            با تمام وجود گناه کردیم اما نه نعمتش را از ما گرفت نه گناهان ما را فاش کرد اطاعتش کنیم چه می کند؟"دکتر شریعتی"
            اگر جایی که ایستاده اید را نمی پسندید، عوضش کنید شما درخت نیستید!! "پاسکال"
            یا به اندازه ی آرزوهایت تلاش کن یا به اندازه تلاشت آرزو کن. "شکسپیر"

            دیدگاه


              #7
              پاسخ : پردازش گفتار در مطلب

              با سلام
              اگه می خوای با سی پیاده کنی مثلا arm من هم متلب سی رو پیشنهاد می کنم
              ولی اگه می خوای رو fpga پیاده کنی بنظرم مستقیم برو vhdl
              http://www.4shared.com/office/wspNnTsI/AMUZESH_JAMEE_MATLAB.html

              دیدگاه


                #8
                پاسخ : پردازش گفتار در مطلب

                نوشته اصلی توسط متلب
                با سلام
                اگه می خوای با سی پیاده کنی مثلا arm من هم متلب سی رو پیشنهاد می کنم
                ولی اگه می خوای رو fpga پیاده کنی بنظرم مستقیم برو vhdl
                الا دنبال MFCC هستم
                برنامه تو متلب نوشتم(البته تو اینترنت پیداکردم یکم تغییر تحول دادم :icon_razz ولی تو اجرا مشکل داره :angry:
                کسی میتونه کمک کنه :redface:
                میخوام تو هر خروجی بلوک پردازشش سیگنال رو بشه دید که چه بلاهایی سرش میاد :nerd:
                آنقدر شکست میآ‌خورم تا راه شکست دادن را بیاموزم

                دیدگاه


                  #9
                  پاسخ : پردازش گفتار در مطلب

                  نوشته اصلی توسط متلب
                  با سلام
                  اگه می خوای با سی پیاده کنی مثلا arm من هم متلب سی رو پیشنهاد می کنم
                  ولی اگه می خوای رو fpga پیاده کنی بنظرم مستقیم برو vhdl
                  بنظر شما کدومش بهتر؟
                  از دور دستی بر آتش به هردو دارم هم Arm هم FPGA :nerd:
                  آنقدر شکست میآ‌خورم تا راه شکست دادن را بیاموزم

                  دیدگاه


                    #10
                    پاسخ : پردازش گفتار در مطلب

                    نوشته اصلی توسط mechatronic90semnan
                    الا دنبال MFCC هستم
                    برنامه تو متلب نوشتم(البته تو اینترنت پیداکردم یکم تغییر تحول دادم :icon_razz ولی تو اجرا مشکل داره :angry:
                    کسی میتونه کمک کنه :redface:
                    میخوام تو هر خروجی بلوک پردازشش سیگنال رو بشه دید که چه بلاهایی سرش میاد :nerd:
                    میتونی از برنامه ای که در آخر این لینک هست استفاده کنی.
                    لطفاً برای انجام پروژه های دانشجویی پیام خصوصی نفرستید.
                    لطفاً سوالاتی که در انجمن قابل طرح شدن هستند پیام خصوصی نکنید.
                    با تمام وجود گناه کردیم اما نه نعمتش را از ما گرفت نه گناهان ما را فاش کرد اطاعتش کنیم چه می کند؟"دکتر شریعتی"
                    اگر جایی که ایستاده اید را نمی پسندید، عوضش کنید شما درخت نیستید!! "پاسکال"
                    یا به اندازه ی آرزوهایت تلاش کن یا به اندازه تلاشت آرزو کن. "شکسپیر"

                    دیدگاه


                      #11
                      پاسخ : پردازش گفتار در مطلب

                      نوشته اصلی توسط هـادی
                      میتونی از برنامه ای که در آخر این لینک هست استفاده کنی.
                      کسی هست که قبلا این کار رو انجام داده باشه بتونیم از تجربش استفاده کنیم
                      آنقدر شکست میآ‌خورم تا راه شکست دادن را بیاموزم

                      دیدگاه


                        #12
                        پاسخ : پردازش گفتار در مطلب

                        نوشته اصلی توسط mechatronic90semnan
                        کسی هست که قبلا این کار رو انجام داده باشه بتونیم از تجربش استفاده کنیم
                        کسی نیست؟
                        آنقدر شکست میآ‌خورم تا راه شکست دادن را بیاموزم

                        دیدگاه


                          #13
                          پاسخ : پردازش گفتار در مطلب

                          با تشکر از دوستان بخاطر راهنمایی هاشون
                          من الان یه برنامه تو متلب نوشتم که بلوک MFCC رو اجرا میکنه
                          حالا میخام با HMM چنتا کلمه بهش یاد بدم که بتونه اینارو یادبگیره ووقتی کاربر اینارو میگه صحت گفتن کاربر رو اعلام کنه
                          بنظر شما باید از کجا شروع کنم؟ :read:
                          آنقدر شکست میآ‌خورم تا راه شکست دادن را بیاموزم

                          دیدگاه

                          لطفا صبر کنید...
                          X