這個(gè)是完整的代碼,我自己的賬號(hào)發(fā)不了這么長(zhǎng),希望好心人幫忙注釋啊,非常感謝!!!

創(chuàng)新互聯(lián)服務(wù)項(xiàng)目包括梁平網(wǎng)站建設(shè)、梁平網(wǎng)站制作、梁平網(wǎng)頁制作以及梁平網(wǎng)絡(luò)營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢(shì)、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,梁平網(wǎng)站推廣取得了明顯的社會(huì)效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到梁平省份的部分城市,未來相信會(huì)繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!
(1)端點(diǎn)檢測(cè)部分(vad):
function [x1,x2] = vad(x)
%語音信號(hào)x幅度歸一化到[-1,1]
x = double(x);
x = x / max(abs(x));
%常數(shù)設(shè)置
FrameLen = 240; %幀長(zhǎng)度為240
FrameInc = 80; %幀移為80
amp1 = 10; %短時(shí)能量高門限10
amp2 = 2; %短時(shí)能量低門限為2
zcr1 = 10; %短時(shí)過零率高門限為10
zcr2 = 5; %短時(shí)過零率低門限為5
maxsilence =3;%靜音時(shí)間門限3*10ms= 30ms
minlen= 15;%最小語音時(shí)間長(zhǎng)度15*10ms = 150ms
status= 0; %
count= 0; %語音時(shí)間累計(jì)
silence = 0; %靜音時(shí)間累計(jì)
%計(jì)算過零率
tmp1= enframe(x(1:end-1), FrameLen, FrameInc);
tmp2= enframe(x(2:end), FrameLen, FrameInc);
signs =(tmp1.*tmp2)0;%符號(hào)數(shù)組,用于存儲(chǔ)相鄰兩個(gè)采樣點(diǎn)符號(hào)是否相同,即是否穿越0電平
diffs = (tmp1-tmp2)0.02;%度量相鄰兩個(gè)采樣點(diǎn)之間距離,如果大于門限0.02(經(jīng)驗(yàn)值),則1,否則0
zcr = sum(signs.*diffs,2);%過零率
%計(jì)算短時(shí)能量
amp =sum(abs(enframe(filter([1 -0.9375], 1, x), FrameLen, FrameInc)), 2);
%調(diào)整能量門限
amp1 = min(amp1,max(amp)/4);
amp2 = min(amp2,max(amp)/8);
%開始端點(diǎn)檢測(cè)
x1 = 0;
x2 = 0;
for n=1:length(zcr)
goto = 0;
switch status
case {0,1}% 0 =靜音, 1 =可能開始
if amp(n) amp1%確信進(jìn)入語音段
x1 = max(n-count-1,1);
status= 2;
silence = 0;
count= count + 1;
elseif amp(n) amp2 || ... %可能處于語音段
zcr(n) zcr2
status = 1;
count= count + 1;
else%靜音狀態(tài)
status= 0;
count= 0;
end
case 2,% 2 =語音段
if amp(n) amp2 || ...%保持在語音段
zcr(n) zcr2
count = count + 1;
else%語音將結(jié)束
silence = silence+1;
if silence maxsilence %靜音還不夠長(zhǎng),尚未結(jié)束
count= count + 1;
elseif count minlen%語音長(zhǎng)度太短,認(rèn)為是噪聲
status= 0;
silence = 0;
count= 0;
else%語音結(jié)束
status= 3;
end
end
case 3,
break;
end
end
count = count-silence/2;
x2 = x1 + count -1;
subplot(311)
plot(x)
axis([1 length(x) -1 1])
xlabel('語音信號(hào)');
line([x1*FrameIncx1*FrameInc ],[-1,1],'Color','red');
line([x2*FrameIncx2*FrameInc ],[-1,1],'Color','red');
subplot(312)
plot(amp);
axis([1 length(amp) 0max(amp)])
xlabel('短時(shí)能量');
line([x1,x1],[min(amp),max(amp)],'Color','red');
line([x2,x2],[min(amp),max(amp)],'Color','red');
subplot(313)
plot(zcr);
axis([1 length(zcr) 0max(zcr)])
xlabel('過零率');
line([x1,x1],[min(zcr),max(zcr)],'Color','red');
line([x2,x2],[min(zcr),max(zcr)],'Color','red');
(2)MFCC部分:
function ccc = mfcc(x)
%歸一化mel濾波器組系數(shù)
bank=melbankm(24,256,8000,0,0.5,'m');%24濾波器個(gè)數(shù),8000采樣頻率
bank=full(bank);
bank=bank/max(bank(:));
% DCT系數(shù),12*24
for k=1:12
n=0:23;
dctcoef(k,:)=cos((2*n+1)*k*pi/(2*24));
end
%歸一化倒譜提升窗口
w = 1 + 6 * sin(pi *(1:12) ./ 12);
w = w/max(w);
%預(yù)加重濾波器
xx=double(x);
xx=filter([1-0.9375],1,xx);
%語音信號(hào)分幀,xx是輸入語音信號(hào);256是幀長(zhǎng);80是幀移
xx=enframe(xx,256,80);
%計(jì)算每幀的MFCC參數(shù)
for i=1:size(xx,1)
y = xx(i,:);
s = y' .* hamming(256);%加漢明窗
t = abs(fft(s));%fft變換
t = t.^2;
c1=dctcoef * log(bank * t(1:129));
c2 = c1.*w';
m(i,:)=c2';
end
%差分系數(shù)
dtm = zeros(size(m));
for i=3:size(m,1)-2
dtm(i,:) = -2*m(i-2,:) - m(i-1,:) + m(i+1,:)+ 2*m(i+2,:);
end
dtm = dtm / 3;
%合并mfcc參數(shù)和一階差分mfcc參數(shù)
ccc = [m dtm];
%去除首尾兩幀,因?yàn)檫@兩幀的一階差分參數(shù)為0
ccc =ccc(3:size(m,1)-2,:);
(3)dtw計(jì)算部分:
function dist = dtw2(test, ref)
global x y_min y_max
global t r
global D d
global m n
t = test;
r = ref;
n = size(t,1);
m = size(r,1);
d = zeros(m,1);
D =ones(m,1) *realmax;
D(1) = 0;
%如果兩個(gè)模板長(zhǎng)度相差過多,匹配失敗
if (2*m-n3) || (2*n-m2)
dist =realmax;
return
end
%計(jì)算匹配區(qū)域
xa = round((2*m-n)/3);
xb = round((2*n-m)*2/3);
if xbxa
%xbxa,按下面三個(gè)區(qū)域匹配
%1:xa
%xa+1:xb
%xb+1:N
for x =1:xa
y_max= 2*x;
y_min= round(0.5*x);
warp
end
for x =(xa+1):xb
y_max= round(0.5*(x-n)+m);
y_min= round(0.5*x);
warp
end
for x =(xb+1):n
y_max= round(0.5*(x-n)+m);
y_min= round(2*(x-n)+m);
warp
end
elseif xaxb
%xaxb,按下面三個(gè)區(qū)域匹配
%0:xb
%xb+1:xa
%xa+1:N
for x =1:xb
y_max= 2*x;
y_min= round(0.5*x);
warp
end
for x =(xb+1):xa
y_max= 2*x;
y_min= round(2*(x-n)+m);
warp
end
for x =(xa+1):n
y_max= round(0.5*(x-n)+m);
y_min= round(2*(x-n)+m);
warp
end
elseif xa==xb
%xa=xb,按下面兩個(gè)區(qū)域匹配
%0:xa
%xa+1:N
for x =1:xa
y_max= 2*x;
y_min= round(0.5*x);
warp
end
for x =(xa+1):n
y_max= round(0.5*(x-n)+m);
y_min= round(2*(x-n)+m);
warp
end
end
%返回匹配分?jǐn)?shù)
dist = D(m);
function warp
global x y_min y_max
global t r
global D d
global m n
d = D;
for y = y_min:y_max
D1 = D(y);
if y1
D2= D(y-1);
else
D2 =realmax;
end
if y2
D3= D(y-2);
else
D3 = realmax;
end
d(y) =sum((t(x,:)-r(y,:)).^2) + min([D1,D2,D3]);
end
D = d;
(4)測(cè)試函數(shù)testdtw部分;
disp('正在計(jì)算參考模板的參數(shù)...')
for i=1:10
fname = sprintf('G:\\石東東\\語音\\%da.wav',i-1);
x = wavread(fname);
[x1 x2] = vad(x);
m = mfcc(x);
m = m(x1-2:x2-2,:);
ref(i).mfcc = m;
end
disp('正在計(jì)算測(cè)試模板的參數(shù)...')
for i=1:10
fname = sprintf('G:\\石東東\\語音\\%db.wav',i-1);
x = wavread(fname);
[x1 x2] = vad(x);
m = mfcc(x);
m = m(x1-2:x2-2,:);
test(i).mfcc = m;
end
disp('正在進(jìn)行模板匹配...')
dist = zeros(10,10);
for i=1:10
for j=1:10
dist(i,j) = dtw2(test(i).mfcc, ref(j).mfcc);
end
end
disp('正在計(jì)算匹配結(jié)果...')
for i=1:10
[d,j] = min(dist(i,:));
fprintf('測(cè)試模板%d的識(shí)別結(jié)果為:%d\n', i-1, j-1);
end
亞洲
日本:東京NRT成田國際機(jī)場(chǎng);HND 羽田機(jī)場(chǎng);大阪ITM 大阪伊丹國際機(jī)場(chǎng);KIX大阪關(guān)西國際機(jī)場(chǎng)
韓國:漢城(首爾)ICN 仁川國際機(jī)場(chǎng);釜山PUS釜山金海國際機(jī)場(chǎng)
新加坡:新加坡 SIN新加坡樟宜國際機(jī)場(chǎng)
馬來西亞:吉隆坡 KUL吉隆坡國際機(jī)場(chǎng)
越南:胡志明 SGN胡志明市新山機(jī)場(chǎng)
泰國:曼谷 BKK素萬那普國際機(jī)場(chǎng) 普吉 HKT普吉國際機(jī)場(chǎng)
印度:新德里 DEL 新德里國際機(jī)場(chǎng)
中東:
伊朗:德黑蘭 THR德黑蘭梅赫拉巴德國際機(jī)場(chǎng)
沙特阿拉伯:利雅得RUH哈利德國王國際機(jī)場(chǎng)
阿聯(lián)酋:阿布扎比 AUH 阿布扎比國際機(jī)場(chǎng);迪拜DXB迪拜國際機(jī)場(chǎng)
卡塔爾:多哈 DOH多哈國際機(jī)場(chǎng)
土耳其:伊斯坦布爾 IST 伊斯坦布爾國際機(jī)場(chǎng)
北美
加拿大:渥太華 YOW渥太華國際機(jī)場(chǎng);蒙特利爾 YUL 蒙特利爾多爾瓦國際機(jī)場(chǎng);溫哥華 YVR溫哥華國際機(jī)場(chǎng);多倫多 YYZ 多倫多皮爾森國際機(jī)場(chǎng)
美國:華盛頓 IAD杜勒斯國際機(jī)場(chǎng);JPN五角大樓軍用機(jī);波士頓 BOS 波士頓洛根國際機(jī)場(chǎng);芝加哥 ORD 芝加哥奧黑爾國際機(jī)場(chǎng);紐約 JFK肯尼迪國際機(jī)場(chǎng);舊金山 SFO 三番市舊金山國際機(jī)場(chǎng);洛杉磯 LAX洛杉磯國際機(jī)場(chǎng);邁阿密 MIA 邁阿密國際機(jī)場(chǎng);亞特蘭大ATL 亞特蘭大國際機(jī)場(chǎng);哥倫比亞 CAE 哥倫比亞國際機(jī)場(chǎng);克利夫蘭CLE 克利夫蘭機(jī)場(chǎng);夏洛特CLT 夏洛特國際機(jī)場(chǎng);丹佛 DEN丹佛國際機(jī)場(chǎng);達(dá)拉斯 DFW達(dá)拉斯沃思堡機(jī)場(chǎng);底特律 DTW 底特律都會(huì)機(jī)場(chǎng);休斯敦IAH 布什國際機(jī)場(chǎng);奧蘭多MCO 奧蘭多國際機(jī)場(chǎng);孟菲斯MEM 孟菲斯國際機(jī)場(chǎng);西雅圖SEA西雅圖-塔科馬國際機(jī)場(chǎng)
中南美
墨西哥:墨西哥城 MEX墨西哥城機(jī)場(chǎng)
古巴:哈瓦那 HAV 哈瓦那-何塞馬蒂機(jī)場(chǎng)
巴西:巴西利亞 BSB巴西利亞國際機(jī)場(chǎng);圣保羅 SAO圣保羅國際機(jī)場(chǎng);里約熱內(nèi)盧 RIO/GIG里約熱內(nèi)盧國際機(jī)場(chǎng)
阿根廷:布宜諾斯艾利斯EZE 埃塞薩國際機(jī)場(chǎng)
歐洲
英國:倫敦 LHR倫敦希思羅機(jī)場(chǎng);利物浦 LPL利物浦雷儂國際機(jī)場(chǎng);曼徹斯特 MAN曼徹斯特機(jī)場(chǎng)
比利時(shí):布魯塞爾 BRU布魯塞爾國際機(jī)場(chǎng)
盧森堡:盧森堡 LUX盧森堡國際機(jī)場(chǎng)
荷蘭:阿姆斯特丹 AMS 阿姆斯特丹-史基浦機(jī)場(chǎng);鹿特丹 RTM鹿特丹機(jī)場(chǎng)
丹麥:哥本哈根 CPH哥本哈根凱斯楚普機(jī)場(chǎng)
德國:柏林 TXL 泰格爾機(jī)場(chǎng);慕尼黑 MUC 慕尼黑機(jī)場(chǎng);不萊梅BRE 不萊梅機(jī)場(chǎng);法蘭克福FRA法蘭克福-萊茵-美因國際機(jī)場(chǎng);斯圖加特 STR斯圖加特機(jī)場(chǎng);漢堡 HAM漢堡國際機(jī)場(chǎng);紐倫堡 NUE紐倫堡機(jī)場(chǎng);科隆 CGN科隆機(jī)場(chǎng)
法國:巴黎CDG戴高樂機(jī)場(chǎng);馬賽 MRS馬賽機(jī)場(chǎng);里昂 LYS 里昂機(jī)場(chǎng)
瑞士:伯爾尼 BRN貝爾普伯爾尼機(jī)場(chǎng);日內(nèi)瓦 GVA日內(nèi)瓦國際機(jī)場(chǎng);蘇黎世 ZRH蘇黎世國際機(jī)場(chǎng);巴塞爾 BSL巴塞爾機(jī)場(chǎng)
西班牙:馬德里 MAD馬德里巴拉哈斯機(jī)場(chǎng);巴塞羅那 BCN 巴塞羅那安普拉特機(jī)場(chǎng);巴倫西亞VLC 巴倫西亞機(jī)場(chǎng);塞維利亞SVQ塞維利亞機(jī)場(chǎng)
葡萄牙:里斯本 LIS 里斯本機(jī)場(chǎng) ;波爾圖OPO 奧波多機(jī)場(chǎng)
意大利:羅馬 FCO羅馬菲烏米奇諾機(jī)場(chǎng);米蘭 MXP 米蘭馬爾蓬薩機(jī)場(chǎng);威尼斯 VCE 威尼斯機(jī)場(chǎng);佛羅倫薩 FLR 佛羅倫薩機(jī)場(chǎng);都靈TRN都靈機(jī)場(chǎng)
希臘:雅典 ATH雅典國際機(jī)場(chǎng)
奧地利:維也納 VIE維也納施韋夏特機(jī)場(chǎng)
捷克:布拉格 PRG布拉格魯濟(jì)涅機(jī)場(chǎng)
芬蘭:赫爾辛基 HEL赫爾辛基萬塔機(jī)場(chǎng)
瑞典:斯德哥爾摩 ARN斯德哥爾摩阿蘭達(dá)機(jī)場(chǎng)
挪威:奧斯陸 OSL 奧斯陸加勒穆恩機(jī)場(chǎng)
南斯拉夫:貝爾格萊德 BEG貝爾格萊德機(jī)場(chǎng)
羅馬尼亞:布加勒斯特 BUH 布加勒斯特機(jī)場(chǎng)
克羅地亞:薩格勒布 ZAG薩格勒布機(jī)場(chǎng)
匈牙利:布達(dá)佩斯 BUD布達(dá)佩斯費(fèi)里海吉機(jī)場(chǎng)
波蘭:華沙 WAW華沙奧肯切機(jī)場(chǎng)
俄羅斯:莫斯科 SVO 謝列梅捷沃機(jī)場(chǎng);DME多莫杰多沃機(jī)場(chǎng)
烏克蘭:基輔KBP基輔機(jī)場(chǎng);IEV 基輔茹良尼機(jī)場(chǎng)
非洲
埃及:開羅 CAI開羅國際機(jī)場(chǎng)
塞內(nèi)加爾:達(dá)喀爾 DKR達(dá)喀爾機(jī)場(chǎng)
南非:約翰內(nèi)斯堡 JNB約翰內(nèi)斯堡國際機(jī)場(chǎng)
大洋洲
澳大利亞:堪培拉 CBR 堪培拉機(jī)場(chǎng);墨爾本 MEL 墨爾本國際機(jī)場(chǎng);悉尼SYD悉尼金斯福國際機(jī)場(chǎng)
新西蘭:惠靈頓 WLG惠靈頓機(jī)場(chǎng)
三字代碼 機(jī)場(chǎng)中文名稱 機(jī)場(chǎng)英文名稱 州名 縮寫
LAX 洛杉磯國際機(jī)場(chǎng) Los Angeles 加利福尼亞 CA
BUR 伯班克機(jī)場(chǎng) Burbank 加利福尼亞 CA
ONT 安大略機(jī)場(chǎng) Ontario 加利福尼亞 CA
LGB 長(zhǎng)灘機(jī)場(chǎng) Long Beach 加利福尼亞 CA
SAN 圣地亞哥機(jī)場(chǎng) San Diego 加利福尼亞 CA
SNA 橙縣機(jī)場(chǎng) Orange County 加利福尼亞 CA
SFO 舊金山國際機(jī)場(chǎng) San Francisco 加利福尼亞 CA
OAK 奧克蘭機(jī)場(chǎng) Oakland 加利福尼亞 CA
SJC 圣荷西機(jī)場(chǎng) San Jose 加利福尼亞 CA
SEA 西雅圖國際機(jī)場(chǎng) Seattle 華盛頓 WA
PDX 波特蘭機(jī)場(chǎng) Portland 俄勒岡 OR
PHX 鳳凰城機(jī)場(chǎng) Phoenix 亞利桑那 AZ
TUS 圖森機(jī)場(chǎng) Tueson 亞利桑那 AZ
LAS 拉斯維加斯機(jī)場(chǎng) Las Vegas 內(nèi)華達(dá) NV
RNO 雷諾機(jī)場(chǎng) Reno 內(nèi)華達(dá) NV
SLC 鹽湖城機(jī)場(chǎng) Salt Lake City 猶他 UT
DEN 丹佛機(jī)場(chǎng) Denver 科羅拉多 CO
ELP 埃爾.帕索機(jī)場(chǎng) El Paso 得克薩斯 TX
SAT 圣.安東尼奧機(jī)場(chǎng) San Antonio 得克薩斯 TX
AUS 奧斯汀機(jī)場(chǎng) Austin 得克薩斯 TX
IAH 休斯頓國際機(jī)場(chǎng) Houston(Int’l) 得克薩斯 TX
HOU 休斯頓哈比機(jī)場(chǎng) Houston(Hobby) 得克薩斯 TX
DFW 達(dá)拉斯機(jī)場(chǎng) Dallas 得克薩斯 TX
MSP 明尼阿波利斯機(jī)場(chǎng) Minneapolis 明尼蘇達(dá) MN
MCI 堪薩斯城機(jī)場(chǎng) Kansas 密蘇里 MO
STL 圣.路易斯機(jī)場(chǎng) St. Louis 密蘇里 MO
MSY 新奧爾良機(jī)場(chǎng) New Orleans 路易斯安那 LA
BHM 伯明翰機(jī)場(chǎng) Birmingham 阿拉巴馬 AL
MEM 孟菲斯機(jī)場(chǎng) Memphis 田納西 TN
BNA 納什維爾機(jī)場(chǎng) Nashville 田納西 TN
ORD 芝加哥機(jī)場(chǎng) Chicago 依利諾 IL
DTW 底特律機(jī)場(chǎng) Detroit 密執(zhí)安 MI
IND 印第安那波利斯 Indianapolis 印第安那 IN
CVG 辛辛那提機(jī)場(chǎng) Cincinnati 俄亥俄 OH
DAY 代頓機(jī)場(chǎng) Dayton 俄亥俄 OH
CMH 哥倫布機(jī)場(chǎng) Columbus 俄亥俄 OH
CLE 克利夫蘭機(jī)場(chǎng) Cleveland 俄亥俄 OH
PWM 波特蘭機(jī)場(chǎng) Portland 緬因 ME
BOS 波士頓機(jī)場(chǎng) Boston 馬薩諸塞 MA
ISP 長(zhǎng)島機(jī)場(chǎng) Long Island 紐約 NY
LGA 拉瓜地機(jī)場(chǎng) La Guardia 紐約 NY
JFK 肯尼迪機(jī)場(chǎng) John F Kennedy 紐約 NY
ALB 奧爾巴尼機(jī)場(chǎng) Albany 紐約 NY
BUF 布法羅機(jī)場(chǎng) Buffalo 紐約 NY
EWR 紐瓦克機(jī)場(chǎng) Newark 新澤西 NJ
PIT 匹茲堡機(jī)場(chǎng) Pittsburgh 賓夕法尼亞 PA
PHL 費(fèi)城機(jī)場(chǎng) Philadelphia 賓夕法尼亞 PA
DCA 華盛頓國際機(jī)場(chǎng) National 哥倫比亞特區(qū) DC
BWI 巴爾地磨機(jī)場(chǎng) Baltimore 馬里蘭 MD
IAD 華盛頓達(dá)拉斯機(jī)場(chǎng) Wa Dulles 弗吉尼亞 VA
CLT 夏洛特機(jī)場(chǎng) Charlotte 北卡羅來納 NC
ILM 威爾明頓機(jī)場(chǎng) Wilmington 北卡羅來納 NC
CAE 哥倫比亞機(jī)場(chǎng) Columbia 南卡羅來納 SC
CHS 查爾斯頓機(jī)場(chǎng) Charleston 南卡羅來納 SC
ATL 亞特蘭大機(jī)場(chǎng) Atlanta 佐治亞 GA
MCO 奧蘭多機(jī)場(chǎng) Orlando 佛羅里達(dá) FL
TPA 坦帕機(jī)場(chǎng) Tampa 佛羅里達(dá) FL
MIA 邁阿密機(jī)場(chǎng) Miami 佛羅里達(dá) FL
HNL 火奴魯魯機(jī)場(chǎng) Honolulu 夏威夷 HI
OMA 奧馬哈機(jī)場(chǎng) Omaha 內(nèi)布瑞斯卡 NE
分享文章:dtw代碼java,DTW三字代碼
本文鏈接:http://chinadenli.net/article37/dsgoesj.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供Google、移動(dòng)網(wǎng)站建設(shè)、網(wǎng)站內(nèi)鏈、定制網(wǎng)站、商城網(wǎng)站、響應(yīng)式網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)