最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

基于matlab MFCC+GMM的安全事件聲學(xué)檢測系統(tǒng)

 更新時間:2022年02月07日 11:34:20   作者:紫極神光  
這篇文章主要為大家介紹了基于matlab MFCC+GMM的安全事件聲學(xué)檢測系統(tǒng)實現(xiàn)及源碼示例分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助

一、安全事件聲學(xué)檢測簡介(附lunwen)

1 選題背景

公共安全問題是社會安全穩(wěn)定所聚焦的話題之一。近年來,檢測技術(shù)與監(jiān)控自動化正深刻地改變著人們的生活。尤其在安防領(lǐng)域,閉路電視CCTV(Closed Circuit Television)、視頻流分析、智能監(jiān)控等新技術(shù)得到了廣泛應(yīng)用,大大提高了安防監(jiān)控的管理效率。然而值得注意的是,基于視頻流的監(jiān)控手段不可避免地也具有一定的先天性缺漏,例如存在視野盲區(qū)、易受光照影響等問題,對于事件檢測,還可能存在語義不明的問題,監(jiān)控手段不夠全面。純視頻手段在槍擊、爆炸、暴恐襲擊、人群恐慌等具有較強(qiáng)語義性的突發(fā)公共安全事件中,往往不如聲學(xué)檢測分析手段敏感和有效。聲學(xué)事件檢測主要是使用一些聲學(xué)處理方法,刻畫現(xiàn)場音頻流的聲學(xué)特征,再結(jié)合適當(dāng)?shù)姆诸惼鬟M(jìn)行檢測分類,從而實現(xiàn)對音頻流中出現(xiàn)的聲學(xué)事件進(jìn)行檢測分析?;诼晫W(xué)的公共安全事件檢測在反恐、維穩(wěn)、社會治安等多個領(lǐng)域具有廣泛的使用價值和應(yīng)用前景。本課題重點針對槍擊與爆炸兩類突發(fā)公共安全事件,對相應(yīng)的聲學(xué)檢測方法進(jìn)行了研究。

2 研究現(xiàn)狀

對于槍聲的研究聚焦在對于膛口波和彈道波的研究分析上。吳松林等深基于彈丸的空氣動力學(xué)模型,深入分析了彈道激波的成因和理論波形;蔣灝等分析了小口徑武器發(fā)射的膛口波和彈道激波,并設(shè)計了基于膛口激波的DOA模型對彈丸彈道軌跡進(jìn)行估計;盧慧洋分析了彈道波和膛口波在槍聲檢測與定位中的作用,并設(shè)計了一套基于正三角形麥克風(fēng)陣列的槍聲定位與測距軟硬件系統(tǒng)。
對于聲信號處理和聲學(xué)特征的研究,趙力等給出了常用的信號加窗成幀、端點檢測以及常用聲學(xué)特征的計算方法;韓紀(jì)慶等對聲學(xué)事件檢測技術(shù)與常用模型做了綜述性介紹。徐大為等對比了基于不同聲信號特征的端點檢測方法,并分析了他們對噪聲的抵制能力和運算實時性。
針對槍聲的信號處理與聲學(xué)事件檢測研究中,蔣小為和張文等[7]通過低通濾波和譜減法針對膛口波進(jìn)行去噪處理,在實驗中得到了與理論波形高度相近的膛口波信號波形,如圖1.22所示,并提出可以使用相關(guān)分析進(jìn)行槍聲檢測。張克剛等人研究了基于短時能量分析對槍聲信號進(jìn)行端點檢測的方法,并提出使用持續(xù)時間處理來剔除瞬時大能量噪聲。張濤、張文、朱強(qiáng)強(qiáng)等人的研究中指出,可以采用MFCC作為目標(biāo)片段的特征,用于進(jìn)一步給分類器進(jìn)行分類檢測。
對于聲學(xué)事件檢測的分類器,Clavel等討論了監(jiān)控環(huán)境中的槍聲檢測,并通過PCA選擇13維特征作為GMM模型的輸入特征;劉力維等提出使用10階中值濾波處理端點檢測中的能量序列,并用GMM對目標(biāo)片段的按MFCC特征進(jìn)行分類;朱強(qiáng)強(qiáng)分析了Logo、FFS、Adaboost三種特征選擇算法,用特征選擇算法對時域特征、頻域特征、感知域特征、基于自相關(guān)函數(shù)的特征等共計9個特征組成的特征全集進(jìn)行特征選擇,并最后輸入到GMM中進(jìn)行分類;Pimentel等人提出了通過分析聚類過程中的WSS指標(biāo)來確定聚類算法中聚類中心數(shù)目的方法。
關(guān)于聲學(xué)事件數(shù)據(jù)庫,F(xiàn)onseca等人所在的龐培法布拉大學(xué)(Universitat Pompeu Fabra, Barcelona)音樂技術(shù)研究小組為了解決目前數(shù)據(jù)驅(qū)動型(data-driven)聲學(xué)計算研究所遇到的瓶頸和困難,發(fā)起了Freesound Datasets項目,并建立了一個基于眾包(crowdsourcing)、規(guī)模宏大、音頻種類較齊全的大型公開數(shù)據(jù)庫Freesound;坦佩雷理工大學(xué)(Tampere University of Technology,TUT)信號處理學(xué)系Mesaro等人發(fā)起了事件檢測挑戰(zhàn)TUT Sound Events Challenge與聲學(xué)場景檢測挑戰(zhàn)Acoustic Scene Classification Challenge,加速了基于聲學(xué)的事件檢測和場景分析的相關(guān)研究。

3 算法流程設(shè)計

在這里插入圖片描述

二、部分源代碼

for ii = 1:24 % 7 8 wav分別為背景聲和背景+槍聲,21-24是爆炸聲
    if 8 < ii &&  ii < 21
        continue;
    end
    % 取信號
    file_name = strcat('gun',num2str(ii));
    file_name = strcat(file_name,'.wav');
    fprintf('reading %s...\n',file_name);
    [y,fs] = audioread(file_name);   
    sz = size(y);
    gun = (y(:,1))'; % 單聲道
    % 原信號
    figure(ii);
    p2 = abs(fft(gun)/length(gun));
    % size(gun)
    % size(1:length(gun)/2+1)
    gun_fft = p2(1:length(gun)/2+1);
    gun_fft(2:end-1) = 2*gun_fft(2:end-1);
    f = fs*(0:(length(gun)/2))/length(gun);
    subplot(3,2,1);plot(gun);xlabel('t / s');title('signal');
    subplot(3,2,2);plot(f,gun_fft);title('spectrum');xlabel('frequency / Hz');
    % 短時能量分析
    N = 300; % 窗寬(張克剛)
    inc = 100; % 幀移(張克剛)
    win = hamming(N);
    % frameout: num x N 
    % t: num x 1, centers of frames
    % energy: 1 x num
    [frameout,t,energy]=enframe(y,win,inc);
    t = t';
    % 自適應(yīng)短時能量閾值分割
    %size(energy)
    threshold = min(energy)+0.2*(max(energy)-min(energy));
    processed_energy = energy;
    for i = 1:length(energy)
        processed_energy(i) = 0;
        if energy(i) >= threshold 
            processed_energy(i) = 1;
        end
        %fprintf('%d: %f > %f = %d\n',ii,energy(i),threshold,processed_energy(i));
    end
    subplot(3,2,3); plot(energy,'b');title('energy');
    hold on;plot(threshold*ones(size(energy)),'g');
    subplot(3,2,5); plot(processed_energy);title('binarized energy')
    % 持續(xù)時間分析
    thr = 30; % 持續(xù)采樣點
    cnt = 0;
    for i = 1:length(processed_energy)
        if processed_energy(i) == 1
            if cnt > 0
                cnt = cnt+1; %計數(shù)器累加
            elseif cnt == 0
                cnt = 1; %初始化計數(shù)器
            end
            if i == length(processed_energy) && cnt < thr
                processed_energy((i-cnt):i) = 0;
            end
        elseif processed_energy(i) == 0
            if cnt > 0
                if cnt < thr
                    processed_energy((i-cnt):i) = 0;
                end
            end
            cnt = 0;
        end
        %fprintf('%f, %f\n',i,processed_energy(i));
    end
    
    subplot(3,2,3);hold on;plot(processed_energy*max(energy),'r');hold off;
    subplot(3,2,5);hold on;plot(processed_energy,'r');hold off;
end
function [f,t,eng,zcr]=enframe(x,win,inc)
%ENFRAME split signal up into (overlapping) frames: one per row. [F,T]=(X,WIN,INC)
%
%	F = ENFRAME(X,LEN) splits the vector X(:) up into
%	frames. Each frame is of length LEN and occupies
%	one row of the output matrix. The last few frames of X
%	will be ignored if its length is not divisible by LEN.
%	It is an error if X is shorter than LEN.
%
%	F = ENFRAME(X,LEN,INC) has frames beginning at increments of INC
%	The centre of frame I is X((I-1)*INC+(LEN+1)/2) for I=1,2,...
%	The number of frames is fix((length(X)-LEN+INC)/INC)
%
%	F = ENFRAME(X,WINDOW) or ENFRAME(X,WINDOW,INC) multiplies
%	each frame by WINDOW(:)
%
%   The second output argument, T, gives the time in samples at the centre
%   of each frame. T=i corresponds to the time of sample X(i). 
%
nx=length(x);
nwin=length(win);
if (nwin == 1)
   len = win;
else
   len = nwin;
end
if (nargin < 3)
   inc = len;
end
len = nwin;
nf = fix((nx-len+inc)/inc);
f=zeros(nf,len);
indf= inc*(0:(nf-1)).';
inds = (1:len);
f(:) = x(indf(:,ones(1,len))+inds(ones(nf,1),:));
if (nwin > 1)
    w = win(:)';
    f = f .* w(ones(nf,1),:);
end
t = floor((1+len)/2)+indf;
%fprintf('size of f\n');
szf = size(f);
% ff = f(:).*f(:);
for i = 1:szf(1)
    %ff = f(i,:).*f(i,:)
%     ff = abs(f(i,:));
%     eng(i) = sum(ff);
    eng(i) = 0;
    zcr(i) = 0;
    for j = 1:szf(2)
        eng(i) = eng(i)+abs(f(i,j));
        if j+1 <= szf(2)
            zcr(i) = zcr(i)+abs(sign(f(i,j+1))-sign(f(i,j)));
        end
    end
    zcr(i) = 0.5*zcr(i);
end

三、運行結(jié)果

在這里插入圖片描述

 

在這里插入圖片描述

 

在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

四、matlab版本及參考文獻(xiàn)

1 matlab版本
2014a

2 參考文獻(xiàn)
[1]韓紀(jì)慶,張磊,鄭鐵然.語音信號處理(第3版)[M].清華大學(xué)出版社,2019.
[2]柳若邊.深度學(xué)習(xí):語音識別技術(shù)實踐[M].清華大學(xué)出版社,2019.

以上就是基于matlab MFCC+GMM的安全事件聲學(xué)檢測系統(tǒng)的詳細(xì)內(nèi)容,更多關(guān)于matlab MFCC+GMM安全事件聲學(xué)檢測的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • C語言的冒泡排序和快速排序算法使用實例

    C語言的冒泡排序和快速排序算法使用實例

    這篇文章主要介紹了C語言的冒泡排序和快速排序算法使用實例,示例題目也是ACM練習(xí)當(dāng)中的基礎(chǔ)習(xí)題,需要的朋友可以參考下
    2015-08-08
  • C語言 數(shù)據(jù)存儲方式知識點詳解

    C語言 數(shù)據(jù)存儲方式知識點詳解

    在本篇文章里小編給大家整理的是關(guān)于C語言 數(shù)據(jù)存儲方式知識點詳解,有需要的朋友們可以學(xué)習(xí)參考下。
    2020-02-02
  • rapidjson解析json代碼實例以及常見的json core dump問題

    rapidjson解析json代碼實例以及常見的json core dump問題

    今天小編就為大家分享一篇關(guān)于rapidjson解析json代碼實例以及常見的json core dump問題,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-04-04
  • C語言數(shù)據(jù)結(jié)構(gòu)順序表的進(jìn)階講解

    C語言數(shù)據(jù)結(jié)構(gòu)順序表的進(jìn)階講解

    程序中經(jīng)常需要將一組數(shù)據(jù)元素作為整體管理和使用,需要創(chuàng)建這種元素組,用變量記錄它們,傳進(jìn)傳出函數(shù)等。一組數(shù)據(jù)中包含的元素個數(shù)可能發(fā)生變化,順序表則是將元素順序地存放在一塊連續(xù)的存儲區(qū)里,元素間的順序關(guān)系由它們的存儲順序自然表示
    2022-04-04
  • C語言實現(xiàn)貪吃蛇游戲(單人版)

    C語言實現(xiàn)貪吃蛇游戲(單人版)

    這篇文章主要為大家詳細(xì)介紹了C語言實現(xiàn)貪吃蛇游戲單人版,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-06-06
  • c++中的system(

    c++中的system("pause")的作用和含義解析

    這篇文章主要介紹了c++中system("pause")的作用和含義,非常不錯,具有參考借鑒價值,需要的朋友參考下吧
    2018-03-03
  • CFileDialog設(shè)置多選的問題解決

    CFileDialog設(shè)置多選的問題解決

    前幾天同事問我在CFileDialog中多選時按確定按鈕后DoModal函數(shù)的返回值是IDCANCEL的問題解決
    2013-02-02
  • C語言通過gets和gets_s分別實現(xiàn)讀取含空格的字符串

    C語言通過gets和gets_s分別實現(xiàn)讀取含空格的字符串

    在遇到包含空格的字符串輸入時該如何讀取呢?如果使用scanf以%s格式去讀取輸入的字符串,遇到空格就讀取結(jié)束了,顯然這樣是讀取不了的。本文就將介紹兩個可以對含空格字符串讀取的庫函數(shù)------gets和gets_s函數(shù),感興趣的可以了解一下
    2021-12-12
  • C++讀寫Excel的實現(xiàn)方法詳解

    C++讀寫Excel的實現(xiàn)方法詳解

    本篇文章是對C++讀寫Excel的實現(xiàn)方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-05-05
  • C++實現(xiàn)字符串刪除字符后逆序輸出

    C++實現(xiàn)字符串刪除字符后逆序輸出

    這篇文章主要為大家詳細(xì)介紹了C++實現(xiàn)字符串刪除字符后逆序輸出,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-05-05

最新評論

赞皇县| 河北区| 镇坪县| 卫辉市| 增城市| 宜川县| 大埔区| 高雄市| 长海县| 邢台县| 承德县| 刚察县| 凤山县| 定南县| 阿拉善左旗| 揭东县| 井冈山市| 方城县| 曲阜市| 泰来县| 岳普湖县| 施甸县| 衡东县| 宜兰市| 成武县| 龙岩市| 南安市| 城市| 昌宁县| 牡丹江市| 台东县| 攀枝花市| 怀集县| 临泉县| 三穗县| 肥东县| 肇庆市| 革吉县| 延寿县| 兴山县| 乐至县|