資源簡(jiǎn)介
本程序基于線性預(yù)測(cè)編碼(LPC)來實(shí)現(xiàn)對(duì)輸入語音信號(hào)的線性編碼(尋找預(yù)測(cè)器參數(shù))以及通過預(yù)測(cè)器參數(shù)完成對(duì)信號(hào)的重組回復(fù)
代碼片段和文件信息
%%?清空運(yùn)行環(huán)境
clear
clc
close?all
%%?讀取語音信號(hào)
I?=?audioread(‘錄音文件.wav‘);%讀入原始語音
%對(duì)指定幀位置進(jìn)行加窗處理
Q?=?I‘;
N?=?256;???????????%?窗長(zhǎng)
Hamm?=?hamming(N);?%?生成漢明窗,加窗之后僅處理窗中的數(shù)據(jù)
frame?=?70;????????%?需要處理的幀位置
M?=?Q(((frame?-?1)?*?(N?/?2)?+?1):((frame?-?1)?*?(N?/?2)?+?N));?%?截取指定位置的語音數(shù)據(jù)
frame?=?M?.*?Hamm‘;%?加窗后的語音
P?=?input(‘請(qǐng)輸入預(yù)測(cè)器階數(shù)?=?‘);?
ai?=?lpc(frame‘P);???????????????????%?計(jì)算lpc系數(shù)
LP?=?filter([0?-ai(2:end)]1frame);?%?建立語音幀的正則方程數(shù)據(jù)為frame濾波器參數(shù)為[0?-ai(2:end)]
E?=?frame?-?LP;?%?預(yù)測(cè)誤差
figure(1)
subplot(211)plot(1:Nframe1:NLP‘-r‘);grid;
title(‘原始語音和預(yù)測(cè)語音波形(經(jīng)過漢明窗截取)‘)
subplot(212)plot(E);grid;
title(‘預(yù)測(cè)誤差(經(jīng)過漢明窗截取)‘);
%%?畫出語譜圖
ai1?=?lpc(IP);?%?計(jì)算原始語音lpc系數(shù)
LP1?=?filter([0?-ai(2:end)]1I);?%?建立
評(píng)論
共有 條評(píng)論