找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2086|回復: 4
收起左側

語音識別實踐(識別說話者、孤立詞、語種)Matlab實現(xiàn)

[復制鏈接]
ID:858964 發(fā)表于 2023-10-7 22:41 | 顯示全部樓層 |閱讀模式
主程序:Recognize.m
% 每次讀入1個待識別的mp3語音文件,提取mfcc特征系數(shù),
% 用dtw算法計算與參考模板作匹配,
% 可識別出:說話者、所說的水果名稱,所說的語種。
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' );

% 讀入待測試語音:
while  1
i = input('請選擇待測試語音文件的編號 1~40: (輸入0 則退出) ') ;
if i == 0
   return;
end   
while (i<1 | i>40 )
  i = input('請選擇待測試語音文件的編號 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);

% 提取待測試語音的特征參數(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 = '國語';
  case 2
    trainer  = '曉曉 '; language = '國語';  
  case 3
    trainer  = '云皓 '; language = '國語';  
  case 4
    trainer  = '曉佳 '; language = '粵語';   
  case 5
    trainer  = '云龍 '; language = '粵語';
end   
fprintf('所說水果名稱是:%s\n', char(fruit(y)));
fprintf('說話者是:%s', trainer);
fprintf(',語言是%s\n',language);
fprintf('  \n' );
end

%--------------------------------------
運行截圖:
運行截圖.jpg


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


評分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

回復

使用道具 舉報

ID:65237 發(fā)表于 2023-10-8 08:59 | 顯示全部樓層
這是個啥,用在那里的,或者說是用在那類片子里的
回復

使用道具 舉報

ID:858964 發(fā)表于 2023-10-8 13:14 | 顯示全部樓層
阿飛7812 發(fā)表于 2023-10-8 08:59
這是個啥,用在那里的,或者說是用在那類片子里的

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

使用道具 舉報

ID:1083996 發(fā)表于 2023-10-8 13:26 | 顯示全部樓層
做電鋼琴,據(jù)說取樣來自幾百萬的鋼琴聲
回復

使用道具 舉報

ID:1085081 發(fā)表于 2023-12-10 11:56 | 顯示全部樓層
老師發(fā)布了很多干貨,我們需要學習的地方太多了
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表