XửLýNgônNgữNói
ĐẠIHỌCQUỐCGIATHÀNHPHỐHỒCHÍMINH
TRƯỜNGĐẠIHỌCKHOAHỌCTỰNHIÊN
——————————
XỬLÝNGÔNNGỮNÓI
BÀITẬP2:NHẬNDẠNGTIẾNGNÓIRỜIRẠC
Giáoviên:PGS.TS.VŨHẢIQUÂN
Họvàênhọcviên:NguyễnBáCông
Mãsốhọcviên:0209480107
Ngành:Khoahọcmáytính–K19
NguyễnBáCôngKHMTK19
1
XửLýNgônNgữNói
I.Tổngquan
Nhận dạng tiếng nói là một quá trình nhận dạng mẫu, với mục đích là phân lớp
(classify) thông tin đầu vào là tín hiệu tiếng nói thành một dãy tuần tự các mẫu đã
được học trước đó và lưu trữ trong bộ nhớ. Các mẫu là các đơn vị nhận dạng,
chúng có thể là các từ, hoặc các âm vị. Nếu các mẫu này là bất biến và không thay
đổi thì công việc nhận dạng tiếng nói trở nên đơn giản bằng cách so sánh dữ liệu
tiếng nói cần nhận dạng với các mẫu đã được học và lưu trữ trong bộ nhớ. Khó
khăn cơ bản của nhận dạng tiếng nói đó là tiếng nói luôn biến thiên theo thời gian
và có sự khác biệt lớn giữa tiếng nói của những người nói khác nhau, tốc độ nói,
ngữ cảnh và môi trường âm học khác nhau. Xác định những thông tin biến thiên nào
của tiếng nói là có ích và những thông tin nào là không có ích đối với nhận dạng
tiếng nói là rất quan trọng. Đây là một nhiệm vụ rất khó khăn mà ngay cả với các kỹ
thuật xác suất thống kê mạnh cũng khó khăn trong việc tổng quát hoá từ các mẫu
tiếngnóinhữngbiếnthiênquantrọngcầnthiếttrongnhậndạngtiếngnói.
Cácnghiêncứuvềnhậndạngtiếngnóidựatrênbanguyêntắccơbản:
● Tín hiệu tiếng nói được biểu diễn chính xác bởi các giá trị phổ trong một
khung thời gian ngắn (shortterm amplitude spectrum). Nhờ vậy ta có thể
trích ra các đặc điểm tiếng nói từ những khoảng thời gian ngắn và dùng các
● Phânkhung(frameblocking):Chiatínhiệuđầuvàothànhcác
đoạnnhỏkhoảng20ms30ms.Phânkhungtínhiệumỗikhung
Nmẫu,haikhungkềnhaulệchMmẫu.
● Lấycửasổ(Windowing):Lấycửasổnhằmgiảmsựgiánđoạn
củatínhiệuởđầuvàcuốimỗikhungvừađượcchia(vídụ
dùngcủasởHamming,…).
● BiếnđổiFFT(FastFourierTransform):Chuyểnđổimỗikhung
vớiNmẫutừmiềnthớigiansangmiềntầnsố.
● BiếnđổisangthangđoMel(MelfrequencyWrapping)
● HệsốCepstrum(CepstrumCoefficients)
2.MôhìnhMarkovẩn(HMM)
a.MôhìnhMarkov
i.Cáckháiniệmcơbản
Mô hình Markov là mô hình dựa trên thống kê để mô hình hóa các tín
hiệu dạng chuỗi (theo thời gian) được sử dụng rất tốt trong các lĩnh
vựcnhậndạng.
Cáctínhiệudạngchuỗi:
○ Chữviếttay
○ Tínhiệuâmthanh,ánhsáng
○ ChuỗiDNA
○ …
Phânloạimôhìnhchuỗitrạngthái
● Môhìnhchuỗiđơnđịnh
NguyễnBáCôngKHMTK19
4
XửLýNgônNgữNói
Làmôhìnhcáctrạngtháitrongđóliênkếtchuyểntừtrạngthái
nàysangtrạitháikháclàhoàntoànxácđịnh.Vídụ:môhình
chuyểntrạngtháicủađèngiaothông(đỏxanhvàng)
● Môhìnhchuỗixácsuất
t
P (q |q , q , , q )P(q , q , , q )=
t t−1
t−2
.
1 t−1
t−2
.
1
=
P (q |q )P(q |q ) P (q |q )P (q )=
t t−1 t−1 t−2 2 1 1
iii.MôhìnhMarkov
MôhìnhMarkovđượcđịnhnghĩalà1môhìnhbaogồmcácthành
phần:
● Cáctrạngtháitrongmôhình
, 2, …, N1
● Chuỗitrạngtháiquansátđược
, q , , q , , qq
1
2
t
T
● MatrậnchuyểnvịtrạngtháiAthểhiệnxácsuấtchuyểnvịtừ
i
< i < N
1∀i∑
N
i=1
π
i
=
TómgọnlạimôhìnhMarkovcóthểđượcgọilà1bộ (A, π)λ
iv.VídụmôhìnhMarkov
Môhìnhnghiêncứuthờitiết
● Cáctrạngtháithờitiết:
Sun, Cloudy, Rain), N 3( =
● Xácsuấtbanđầu :π
π , π , π ) (1.0, 0.0, 0.0)(
Sun
Cloudy
Rain
=
● MatrậnchuyểnvịtrạngtháiA:
b.MôhìnhMarkovẩn
■ Cáctrạngtháiẩn
MôhìnhMarkovđượctrìnhbàyởphầntrướctồntại1sốkhuyếtđiểm
NguyễnBáCôngKHMTK19
6
XửLýNgônNgữNói
trongtrườnghợptổngquát,khicáctrạngtháiquansátđượckhông
đồngthờilàcáctrạngtháimàmôhìnhđangthểhiện.Vớivídụmô
trongđó
P (q |q )1 ,a
ij
=
j i
< i j < N
0∀i,a
ij
> j
1∀i∑
N
j=1
a
ij
=
● Xácsuấtbanđầuπ
, π , , ππ
1
2
N
trongđó
(q )1π
i
= P
i
< i < N
1∀i∑
N
Chotrướcchuỗiquansát tươngứngvớimôhìnho , , , }O = {
1
o
2
. o
T
,xácđịnhxácsuấttươngứngcóđiềukiện .(A, B, π)λ (O|λ)P
Vídụkhônghìnhthức:
○ Chotrước2môhìnhthờitiết và cùngvới1chuỗiλ
Summer
λ
Winter
quansáttrạngtháitảobiển trongthờigian1tuần.ChúngtaO
cầnxácđịnhxemtuầnđượcquansátthuộcvềmôhìnhnào
tươngứngvớimùanàotrongnămbằngcáchtínhđiểmchuỗi
Ochocả2môhìnhvàchọnmôhìnhcóđiểmcaonhất.
Bàitoán2:Sokhớp(Matching)
Chotrướcchuỗiquansát tươngứngvớimôhìnho , , , }O = {
1
o
2
. o
T
,xácđịnhchuỗitrạngtháinghiêncứutươngứng(A, B, π)λ
saochoxácsuấttương đạtcựcđại.q, , , }Q = { q
2
. q
T
(O|λ)P
Vídụkhônghìnhthức:
Copyvàthứchiệnviệcrúttríchđặctrưngtùythuộcvàofilecấuhình.
○ HCompV
Côngcụkhởitạothamsốchocáchàmphânbốxácsuấtcótrongtừngtrạng
tháicủamôhìnhMarkovẩntươngứngvớidữliệuhuấnluyện.
○ HRest
Côngcụhuấnluyệnmôhìnhbằngviệctínhtoán,ướclượnglạicácthamsố
củamôhình.
○ HParse
Côngcụchuyểnđổi(parse)từdữliệuđầuvàothànhdữliệutheoformat
HTK.
○ HVite
Côngcụsokhớp/nhậndạngvớiđầuvàolàdữliệucầnnhậndạng,vàtrảvề
môhìnhtốtnhất/khớpnhấtmànóthuộcvào.
○ HResults
Côngcụthốngkê,đánhgiákếtquảnhậndạng.
2.Chuẩnbịdữliệu
Dữliệuthựcnghiệmđượclấytừdữliệuthuâmtrênlab:
■ K22_SV34(250filestươngứng250câu)
a.Tậpdữliệuhuấnluyện(train)
200files
b.Tậpdữliệutest
Gồm327files,làcáctừđượctáchratừ50câu.
Chúngtacũngcầnchuẩnbịcácfilesauchoviệccàiđặtmôhinh:
NguyễnBáCôngKHMTK19
10
XửLýNgônNgữNói
Cácfilepromptstươngứngvớicácfileâmthanh(wav),
Filetừđiểnbaogồmtấtcảcáctừtrongbộdữliệuthựcnghiệm,
ChuẩnbịcácfilechoviệchuấnluyệnmôhìnhdùngcôngcụHTK:
■ proto(prototypemodel)
■ Tạo2file"phones0.mlf"và"phones1.mlf":phones0chỉcó"sil"nhưng
phones1cóthêm"sp"
HLEdl*ddict.txtiphones0.mlfmkphones0.ledwords.mlf
HLEdl*ddict.txtiphones1.mlfmkphones1.ledwords.mlf
■ RúttríchđặctrưngMFCC_0_D_A
perlpl\listwavmfc.pltrain\wavtrain\mfc.scp
HcopyCconfigStrain\mfc.scp
■ Tạofileliệtkêdữliệuhuấnluyện
perlpl\mkTrainFile.pltrain\mfctrain\train.scp
■ Bước2.Khởitạomôhình
HCompVADT1CHCompV.cfgf0.01mStrain\train.scpMhmm\hmm0proto
■ Bước3.Tạomôhìnhchuẩn
perlpl\mkMacrosFile.plhmm\hmm0\vFloorshmm\hmm0\macros
perlpl\mkHmmdefsFile.plhmm\hmm0\protomonophones0hmm\hmm0\hmmdefs
■ Bước4.Huấnluyện3vòng>hmm3
HERestADT1CHERest.cfgIphones0.mlft250.0150.01000.0Strain\train.scp
Hhmm\hmm0\macrosHhmm\hmm0\hmmdefsMhmm\hmm1monophones0
HERestADT1CHERest.cfgIphones0.mlft250.0150.01000.0Strain\train.scp
Hhmm\hmm1\macrosHhmm\hmm1\hmmdefsMhmm\hmm2monophones0
HERestADT1CHERest.cfgIphones0.mlft250.0150.01000.0Strain\train.scp
Hhmm\hmm2\macrosHhmm\hmm2\hmmdefsMhmm\hmm3monophones0
■ Bước5.Thêm“sp”vàodanhsáchmôhình
NguyễnBáCôngKHMTK19
12
XửLýNgônNgữNói
perlpl\makesp.plhmm\hmm3\hmmdefshmm\hmm4\hmmdefshmm\hmm3\macros
hmm\hmm4\macros
■ Bước6.Liênkếtsilsp
HHEdHhmm\hmm4\macrosHhmm\hmm4\hmmdefsMhmm\hmm5sil.hed
monophones1
XửLýNgônNgữNói
■ Bước12.Huấnluyện2vòng>hmm15(môhìnhcuốicùng)
HERestBCHERest.cfgIwintri.mlfsstatsStrain\train.scpHhmm\hmm13\macros
Hhmm\hmm13\hmmdefsMhmm\hmm14tiedlist
HERestBCHERest.cfgIwintri.mlfsstatsStrain\train.scpHhmm\hmm14\macros
Hhmm\hmm14\hmmdefsMhmm\hmm15tiedlist
b.Nhậndạng
■ Chuẩnbịdữliệukiểmthửđúng/truthfile
Perlpl\prompts2mlf.pltest\truth.mlftest\prompts.txt
■ Chuẩnbịdữliệunhậndạng
perlpl\listwavmfc.pltest\wavtest\mfc.scp
HCopyT1CconfigStest\mfc.scp
perlpl\mkTrainFile.pltest\mfctest\test.scp
■ Parsegramthànhwdnet
HParsegram.txtwdnet
■ Thựchiệnnhậndạng
HViteT1CHVite.cfgHhmm\hmm15\macrosHhmm\hmm15\hmmdefsS
test\test.scpitest\recout.mlfwwdnetp0.0s5.0gram_dict.txttiedlist
■ Thựchiệnthốngkêkếtquảnhậndạng
HResultsItest\truth.mlftiedlisttest\recout.mlf>test\result.txt
4.Kếtquả
Kếtquảđượcthốngkêdựatrêntậpdữliệutest:
■ K22_SV34(327mẫulàcáctừđượctáchratừ50câu)
======================HTKResultsAnalysis=======================
Date:SatJun0113:23:122013
Ref:test\truth.mlf
Rec:test\recout.mlf
OverallResults
SENT:%Correct=35.38[H=115,S=210,N=325]
WORD:%Corr=35.38,Acc=31.38[H=115,D=0,S=210,I=13,N=325]