標(biāo)題: 語(yǔ)音識(shí)別實(shí)踐(識(shí)別說(shuō)話者、孤立詞、語(yǔ)種)Matlab實(shí)現(xiàn) [打印本頁(yè)]

作者: Kxuan163    時(shí)間: 2023-10-7 22:41
標(biāo)題: 語(yǔ)音識(shí)別實(shí)踐(識(shí)別說(shuō)話者、孤立詞、語(yǔ)種)Matlab實(shí)現(xiàn)
主程序:Recognize.m
% 每次讀入1個(gè)待識(shí)別的mp3語(yǔ)音文件,提取mfcc特征系數(shù),
% 用dtw算法計(jì)算與參考模板作匹配,
% 可識(shí)別出:說(shuō)話者、所說(shuō)的水果名稱,所說(shuō)的語(yǔ)種。
clear ;close ; clc;

load ref_coef_1.mat;
load ref_coef_2.mat;
load ref_coef_3.mat;
load ref_coef_4.mat;
load ref_coef_5.mat;
load data.mat;
N =8;
fprintf('  \n' );

% 讀入待測(cè)試語(yǔ)音:
while  1
i = input('請(qǐng)選擇待測(cè)試語(yǔ)音文件的編號(hào) 1~40: (輸入0 則退出) ') ;
if i == 0
   return;
end   
while (i<1 | i>40 )
  i = input('請(qǐng)選擇待測(cè)試語(yǔ)音文件的編號(hào) 1~40: ') ;
end
f_in = ['.\test_voice\' num2str(i) '.mp3'];
[x,fs]=audioread(f_in);
x = x -mean(x);      
x = x/max(abs(x));   
x = cut(x);
sound(x,fs);

% 提取待測(cè)試語(yǔ)音的特征參數(shù):
test.feature = mfcc(x,fs) ;  

% 匹配 -----------------
for j = 1: N
   dist(1,j) = dtw(test.feature, ref_1(j).feature);
end
for j = 1: N
   dist(2,j) = dtw(test.feature, ref_2(j).feature);
end
for j = 1: N
   dist(3,j) = dtw(test.feature, ref_3(j).feature);
end
for j = 1: N
   dist(4,j) = dtw(test.feature, ref_4(j).feature);
end
for j = 1: N
   dist(5,j) = dtw(test.feature, ref_5(j).feature);
end  
[x y]=find(dist==min(min(dist)));
switch (x)
  case 1
    trainer  = '曉辰 '; language = '國(guó)語(yǔ)';
  case 2
    trainer  = '曉曉 '; language = '國(guó)語(yǔ)';  
  case 3
    trainer  = '云皓 '; language = '國(guó)語(yǔ)';  
  case 4
    trainer  = '曉佳 '; language = '粵語(yǔ)';   
  case 5
    trainer  = '云龍 '; language = '粵語(yǔ)';
end   
fprintf('所說(shuō)水果名稱是:%s\n', char(fruit(y)));
fprintf('說(shuō)話者是:%s', trainer);
fprintf(',語(yǔ)言是%s\n',language);
fprintf('  \n' );
end

%--------------------------------------
運(yùn)行截圖:



其它函數(shù)及語(yǔ)音數(shù)據(jù)在壓縮包中:
fruit_recognize.zip (395.99 KB, 下載次數(shù): 26)



作者: 阿飛7812    時(shí)間: 2023-10-8 08:59
這是個(gè)啥,用在那里的,或者說(shuō)是用在那類片子里的
作者: Kxuan163    時(shí)間: 2023-10-8 13:14
阿飛7812 發(fā)表于 2023-10-8 08:59
這是個(gè)啥,用在那里的,或者說(shuō)是用在那類片子里的

頂樓的內(nèi)容是在電腦運(yùn)行的語(yǔ)音識(shí)別仿真(類似單片機(jī)用Proteus仿真)。
若將matlab程序編譯為C語(yǔ)言程序,可在stm32或別的種類單片機(jī)中運(yùn)行。
或者,參考matlab程序數(shù)據(jù)結(jié)構(gòu)和算法自行編寫單片機(jī)程序,用于語(yǔ)音控制。
例如,用stm32單片機(jī)以語(yǔ)音控制小車:前進(jìn)、后退、左轉(zhuǎn)、右轉(zhuǎn)...另外,亦可用于開門的特定人聲紋識(shí)別。

作者: 量子工業(yè)    時(shí)間: 2023-10-8 13:26
做電鋼琴,據(jù)說(shuō)取樣來(lái)自幾百萬(wàn)的鋼琴聲
作者: clyf    時(shí)間: 2023-12-10 11:56
老師發(fā)布了很多干貨,我們需要學(xué)習(xí)的地方太多了




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1