❶ 誰有語音端點檢測演算法程序如何在matlab中運行
基於Matlab編寫的語音端點檢測程序
function [x1,x2] = vad(x)
%幅度歸一化到[-1,1]
x = double(x);
x = x / max(abs(x));
%常數設置
FrameLen = 240;
FrameInc = 80;
amp1 = 10;
amp2 = 2;
zcr1 = 10;
zcr2 = 5;
maxsilence = 8; % 6*10ms = 30ms
minlen = 15; % 15*10ms = 150ms
status = 0;
count = 0;
silence = 0;
%計算過零率
tmp1 = enframe(x(1:end-1), FrameLen, FrameInc);
tmp2 = enframe(x(2:end) , FrameLen, FrameInc);
signs = (tmp1.*tmp2)<0;
diffs = (tmp1 -tmp2)>0.02;
zcr = sum(signs.*diffs, 2);
%計算短時能量
amp = sum(abs(enframe(filter([1 -0.9375], 1, x), FrameLen, FrameInc)), 2);
%調整能量門限
amp1 = min(amp1, max(amp)/4);
amp2 = min(amp2, max(amp)/8);
%開始端點檢測
x1 = 0;
x2 = 0;
for n=1:length(zcr)
goto = 0;
switch status
case {0,1}
% 0 = 靜音,
1 = 可能開始
if amp(n) > amp1
% 確信進入語音段
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
% 靜音狀態
status = 0;
count = 0;
end
case 2,
% 2 = 語音段
if amp(n) > amp2 | ... % 保持在語音段
zcr(n) > zcr2
count = count + 1;
else
% 語音將結束
silence = silence+1;
if silence < maxsilence % 靜音還不夠長,尚未結束
count = count + 1;
elseif count < minlen % 語音長度太短,認為是雜訊
status = 0;
silence = 0;
count = 0;
else
% 語音結束
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])
ylabel('Speech');
line([x1*FrameInc x1*FrameInc], [-1 1], 'Color', 'red');
line([x2*FrameInc x2*FrameInc], [-1 1], 'Color', 'red');
subplot(312)
plot(amp);
axis([1 length(amp) 0 max(amp)])
ylabel('Energy');
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) 0 max(zcr)])
ylabel('ZCR');
line([x1 x1], [min(zcr),max(zcr)], 'Color', 'red');line([x2 x2], [min(zcr),max(zcr)], 'Color', 'red');
❷ 音頻端點render什麼意思
轉化成某種狀態,生成某種東西的意思。
render這個詞翻譯成中文是提供給予的意思,語音端點檢測一般用於鑒別音頻信號當中的語音出現和語音消失。
語音信號的端點檢測方法有很多種,簡單的方法可以直接通過計算出聲音的音量大小,找到音量大於某個閾值的部分,認為該部分為需要的語音信號,該部分與閾值的交點即為端點,其餘部分認為非語音幀。
❸ 語音端點檢測的方法有頻帶方程法嗎
背景技術:
有效語音的起止端點檢測是語音處理中重要的一環。在實際運用中,特別是在語音識別中,系統的使用效果不僅僅限於識別演算法,能否既快又准確的檢測到語音端點,很大程度上影響著語音系統實際應用的成功與否。在實際運用中,運用最多的斷點檢測方法是基於能量和短時過零率雙門限的檢測方法。該方法實現簡單,計算復雜度小,實時性好,在背景干凈的環境下性能良好。但在信噪比較低的環境中該方法的性能已無法達到實用要求。
發明內容
本發明涉及一種頻帶方差端點檢測方法,可以在信噪比較低的環境中較精確的檢測到語音端點。為實現上述的發明目的,本發明採取的實施方式如下:一種頻帶方差端點檢測方法,包括如下步驟,預處理,加窗分幀處理,所述的預處理是對語音信號進行參數分析之前對該信號用一預加重濾波器進行濾波,該濾波器為:H(Z) = 1-UZ-1 ;所述的加窗分幀處理,選擇漢明窗作為窗函數,漢明窗表達式如下:
權利要求
1.一種頻帶方差端點檢測方法,其特徵在於:包括如下步驟,預處理,加窗分幀處理,所述的預處理是對語音信號進行參數分析之前對該信號用一預加重濾波器進行濾波,該濾波器為:H(Z) = 1-UZ-1 ;所述的加窗分幀處理,選擇漢明窗作為窗函數,漢明窗表達式如下:
2.根據權利要求1所述的頻帶方差端點檢測方法,其特徵在於:在端點檢測時,在利用頻帶方差的基礎上,包含了語音的諧波譜線和其他頻段的差異,公式如下:Dl =D+a*[ (x(Wj)-E)2+(x(Wj)-E)2],其中D是頻帶方差值,a為權值,取正值,E為頻帶能量均值。
全文摘要
本發明涉及一種頻帶方差端點檢測方法,該方法基於語圖譜的分析,突出了語音信號與電信號的區別,在低信噪比環境下能准確檢測出語音端點,並保障了實時性。保證了在低信噪比環境下,一些在高信噪比環境下具有良好性能的方法無法有效工作。
❹ 端點檢測容易受什麼影響
語音識別技術就是讓機器通過識別和理解過程把語音信號轉變為相應的文本或命令的高技術。在實際應用中,語音識別系統的性能會受到各種因素的影響。影響語音識別能力的一個重要因素是語音端點檢測的准確性。在實驗室條件下普通的語音識別系統能達到較高的識別率,但如果有一定的背景雜訊,特別是強背景雜訊存在的應用場合,性能將會急劇下降。因此,如何提高語音識別系統在雜訊環境下的魯棒性,是語音識別研究中的一個重要的課題。
本文就雜訊環境下語音端點檢測技術的開發進行了探討,提出了一種基於信號的相關函數的語音端點檢測法,它採用了極性相關法進行計算並提供了相應的關鍵演算法,通過對語音識別實驗的比較,考察了該演算法的有效性和實用性。與傳統的語音端點檢測法相比,本文提出的端點檢測法能使語音/非語音成份估計及分離變得更為有效和方便,同時由於極性相關法採用取小累加處理法從而使得端點檢測運算量可大為減少。
本文由四部分組成:
第一章引言。闡述了課題的研究背景與意義,
第二章語音信號處理和端點檢測。介紹了語音信號處理和端點檢測中的一些基本概念、原理和方法。
第三章基於信號的極性相關函數的語音端點檢測法。這是本文的核心部分,著重對基於極性相關法的帶噪語音端點檢測進行了討論,具體探討了極性相關法的關鍵演算法,給出部分統計數據和結果總結。
❺ 語音識別技術的基本方法
一般來說,語音識別的方法有三種:基於聲道模型和語音知識的方法、模板匹配的方法以及利用人工神經網路的方法。 該方法起步較早,在語音識別技術提出的開始,就有了這方面的研究,但由於其模型及語音知識過於復雜,現階段沒有達到實用的階段。
通常認為常用語言中有有限個不同的語音基元,而且可以通過其語音信號的頻域或時域特性來區分。這樣該方法分為兩步實現:
第一步,分段和標號
把語音信號按時間分成離散的段,每段對應一個或幾個語音基元的聲學特性。然後根據相應聲學特性對每個分段給出相近的語音標號
第二步,得到詞序列
根據第一步所得語音標號序列得到一個語音基元網格,從詞典得到有效的詞序列,也可結合句子的文法和語義同時進行。 模板匹配的方法發展比較成熟,目前已達到了實用階段。在模板匹配方法中,要經過四個步驟:特徵提取、模板訓練、模板分類、判決。常用的技術有三種:動態時間規整(DTW)、隱馬爾可夫(HMM)理論、矢量量化(VQ)技術。
1、動態時間規整(DTW)
語音信號的端點檢測是進行語音識別中的一個基本步驟,它是特徵訓練和識別的基礎。所謂端點檢測就是在語音信號中的各種段落(如音素、音節、詞素)的始點和終點的位置,從語音信號中排除無聲段。在早期,進行端點檢測的主要依據是能量、振幅和過零率。但效果往往不明顯。60年代日本學者Itakura提出了動態時間規整演算法(DTW:DynamicTimeWarping)。演算法的思想就是把未知量均勻的升長或縮短,直到與參考模式的長度一致。在這一過程中,未知單詞的時間軸要不均勻地扭曲或彎折,以使其特徵與模型特徵對正。
2、隱馬爾可夫法(HMM)
隱馬爾可夫法(HMM)是70年代引入語音識別理論的,它的出現使得自然語音識別系統取得了實質性的突破。HMM方法現已成為語音識別的主流技術,目前大多數大詞彙量、連續語音的非特定人語音識別系統都是基於HMM模型的。HMM是對語音信號的時間序列結構建立統計模型,將之看作一個數學上的雙重隨機過程:一個是用具有有限狀態數的Markov鏈來模擬語音信號統計特性變化的隱含的隨機過程,另一個是與Markov鏈的每一個狀態相關聯的觀測序列的隨機過程。前者通過後者表現出來,但前者的具體參數是不可測的。人的言語過程實際上就是一個雙重隨機過程,語音信號本身是一個可觀測的時變序列,是由大腦根據語法知識和言語需要(不可觀測的狀態)發出的音素的參數流。可見HMM合理地模仿了這一過程,很好地描述了語音信號的整體非平穩性和局部平穩性,是較為理想的一種語音模型。
3、矢量量化(VQ)
矢量量化(VectorQuantization)是一種重要的信號壓縮方法。與HMM相比,矢量量化主要適用於小詞彙量、孤立詞的語音識別中。其過程是:將語音信號波形的k個樣點的每一幀,或有k個參數的每一參數幀,構成k維空間中的一個矢量,然後對矢量進行量化。量化時,將k維無限空間劃分為M個區域邊界,然後將輸入矢量與這些邊界進行比較,並被量化為「距離」最小的區域邊界的中心矢量值。矢量量化器的設計就是從大量信號樣本中訓練出好的碼書,從實際效果出發尋找到好的失真測度定義公式,設計出最佳的矢量量化系統,用最少的搜索和計算失真的運算量,實現最大可能的平均信噪比。
核心思想可以這樣理解:如果一個碼書是為某一特定的信源而優化設計的,那麼由這一信息源產生的信號與該碼書的平均量化失真就應小於其他信息的信號與該碼書的平均量化失真,也就是說編碼器本身存在區分能力。
在實際的應用過程中,人們還研究了多種降低復雜度的方法,這些方法大致可以分為兩類:無記憶的矢量量化和有記憶的矢量量化。無記憶的矢量量化包括樹形搜索的矢量量化和多級矢量量化。 利用人工神經網路的方法是80年代末期提出的一種新的語音識別方法。人工神經網路(ANN)本質上是一個自適應非線性動力學系統,模擬了人類神經活動的原理,具有自適應性、並行性、魯棒性、容錯性和學習特性,其強的分類能力和輸入-輸出映射能力在語音識別中都很有吸引力。但由於存在訓練、識別時間太長的缺點,目前仍處於實驗探索階段。
由於ANN不能很好的描述語音信號的時間動態特性,所以常把ANN與傳統識別方法結合,分別利用各自優點來進行語音識別。
❻ 語音識別的前端處理
前端處理是指在特徵提取之前,先對原始語音進行處理,部分消除雜訊和不同說話人帶來的影響,使處理後的信號更能反映語音的本質特徵。最常用的前端處理有端點檢測和語音增強。端點檢測是指在語音信號中將語音和非語音信號時段區分開來,准確地確定出語音信號的起始點。經過端點檢測後,後續處理就可以只對語音信號進行,這對提高模型的精確度和識別正確率有重要作用。語音增強的主要任務就是消除環境雜訊對語音的影響。目前通用的方法是採用維納濾波,該方法在雜訊較大的情況下效果好於其它濾波器。
❼ matlab語音處理時進行分幀,怎麼確定給出幀長和幀移的量,wlen=, inc=
一般時域分幀10-30ms(這是我在中科院一本《說話人識別的書》上看到的數據),根據你的采樣率就可以確定wlen的長度,inc一般取wlen的20%-30%左右,基於短時平穩特性具體我沒有查到量化資料,看別人工程猜測的。
端點檢測的方法很多,一般常用短時能量和短時過零率檢測, 確定漢語音節,都是以幀為單位,具體是設定閾值,查找起止,不過這種方法對信噪比要求稍高,我最近正在做,感覺效果不是很好,具體的方法你可以查宋知用老師的一本書,《matlab在語音信號分析與合成中的應用》,寫得非常,非常,非常,非常好!!!!!!!!!!!!!!!!
宋老師是國內語音分析最早的研究人員,從事40餘年,致敬!
他在matlab論壇的回復:(原話復制,就忽略我說的。。。。)
」請LZ細看一下該書的第二章。不論用哪一種方法都要對幀長wlen和幀移inc進行賦值。書中處理語音信號,語音信號是一種准周期性的信號,一般認為語音在10-30ms之內是穩態的,所以取幀長也在10-30ms之內,有取20ms,也有取30或40ms。而幀移常取5-15ms之間。「
❽ 請教一下,基於matlab用雙門限和信息譜熵兩種方法實現語音信號端點檢測,非常感謝!qq812432264,謝謝!
建議把文件保存目錄均改為英文
❾ 求教用matlab如何錄音,去噪,端點檢測。。。求高手
你好!
消噪和語音增強的方法很多,例如譜減法、維納濾波、MMSE、MMSE-LSA、先驗信噪比估算、最小雜訊功率估算、掩蔽效應、無語音概率等等,不過常會用多種方法綜合在一起來消噪。
如有疑問,請追問。
❿ 求端點檢測方法研究的論文
具體格
式啊,具體格
式啊,