B? GIÁO D?C VÀ ĐÀO T?O
Đ?I H?C ĐÀ N?NG
oOo
BÁO CÁO LAB
XỬ LÝ TIẾNG NÓI
Đ? TÀI
NÂNG CAO CHẤT LƯỢNG TIẾNG NÓI
Giáo viên h??ng d?n : TS. PH?M VĂN TU?N
H?c viên th?c hi?n : KS. NGUY?N T?N PHONG
KS. CHÂU VĂN THÀNH
KS. VÕ TH? C?M NHUNG
KS. TR?N XUÂN PH? ?NG
L?p : Cao h?c K? thu?t đi?n t?
Khóa h?c : 02-2009
Đà nẵng, tháng 12/2009
Báo cáo: Lab x? lý ti?ng nói
Nâng cao chất lượng tiếng nói liên quan đến việc cải thiện cảm nhận đối với tiếng nói
bị suy giảm chất lượng do sự có mặt của nhiễu trong tiếng nói. Mục đích của nâng cao
chất lượng tiếng nói là sự cải thiện chất lượng và tính dễ nghe của tiếng nói đã bị suy
giảm do nhiễu. Các thuật toán nâng cao chất lượng tiếng nói làm giảm và nén nhiễu nền
đến một mức độ nào đó và nó được xem như là các thuật toán nén nhiễu.
Ở đây xét 2 thuật toán cải thiện tiếng nói là: trừ phổ và Wiener Filter.
1. Nguyên lý và lưu đồ thuật toán
1.1. Sơ đồ chung
1.1.1. Trừ phổ
Trừ phổ là thuật toán dựa trên một nguyên tắc cơ bản, thừa nhận sự có mặt của nhiễu,
nó có thể đạt được mục đích ước lượng phổ của tiếng nói sạch bằng cách trừ đi phổ của
nhiễu với phổ của tiếng nói đã bị nhiễu. Phổ của nhiễu có thể được ước lượng, cập nhật
trong nhiều chu kỳ khi không có mặt của tín hiệu. Sự thừa nhận đó chỉ được thực hiện đối
với nhiễu không đổi hoặc biến đổi chậm, và khi đó phổ của nhiễu sẽ không thay đổi đáng
kể giữa các khoảng thời gian cập nhật. Việc tăng cường tín hiệu đạt được bằng cách tính
IDFT (biến đổi Fourier rời rạc ngược) của phổ tín hiệu đã được ước lượng có sử dụng pha
của tín hiệu có nhiễu. Thuật toán này là một phép tính ước lượng đơn giản vì nó chỉ gồm
biến đổi DFT thuận và DFT ngược.
Với quá trình xử lý hiệu đơn giản này, nếu không được thực hiện một cách cẩn thận
thì tiếng nói sau xử lý sẽ bị méo. Nếu như việc lấy hiệu quá lớn thì có thể loại bỏ đi một
phần thông tin của tiếng nói, còn nếu việc thực hiện lấy hiệu đó nhỏ thì nhiễu sẽ vẫn còn
được giữ lại trong tín hiệu.
a. Trừ phổ biên độ
Giả thiết rằng y[n] là tín hiệu vào đã bị nhiễu, nó bằng tổng của tín hiệu sạch x[n] và
tín hiệu nhiễu d[n] (ở đây ta xét trong một cửa sổ):
y[n] = x[n] + d[n]
Thực hiện biến đổi Fourier rời rạc cả 2 vế, ta được:
)()()(
ωωω
DXY
+=
Nhóm 3 – CHKTĐT 02-2009
2
Phân tích tín hi?u
thành các frame
FFT
? ?c l??ng
nhi?u
Hàm x? lý gi?m
nhi?u
Tín hi?u
b? nhi?u
IDFT
Overlap và
adding
Tín hi?u
s?ch
Tín hi?u b?
nhi?u
FFT
|.|
γ
? ?c l??ng, c?p
nh?t nhi?u
Pha c?a
tín hi?u
|.|
1/
γ
IFFT
Tín hi?u sau khi
tăng c??ng
+
Y(
ω
)
-
γ
ω
|)(|
^
D
Báo cáo: Lab x? lý ti?ng nói
Chúng ta có thể biểu diễn Y(
ω
) dưới dạng phức như sau:
)(
|)(|)(
ωφ
ωω
y
j
eYY =
Khi đó |Y(
ω
)| là biên độ phổ, và
)(
ωφ
y
là pha của tín hiệu đã bị nhiễu.
Phổ của tín hiệu nhiễu D(
ω
) có thể được biểu diễn dạng biên độ và pha:
)(
|)(|)(
ωφ
ωω
d
j
eDD
=
Biên độ phổ của nhiễu |D(
ω
)| không xác định được, nhưng có thể thay thế bằng giá
trị trung bình của nó được tính trong khi không có tiếng nói (tiếng nói bị dừng), và pha
của tín hiệu nhiễu có thể thay thế bằng pha của tín hiệu bị nhiễu
)(
ωφ
y
, vấn đề này không
ảnh hưởng đến tính dễ nghe của tiếng nói, có thể ảnh hưởng đến chất lượng của tiếng nói
là làm thay đổi pha của tiếng nói nhưng cũng chỉ vài độ.
Khi đó chúng ta có thể ước lượng được phổ của tín hiệu sạch:
)(
|])(||)([|)(
ωφ
ωωω
y
j
eDYX
∧∧
−=
ở đây |
)(
ω
∧
D
| là biên độ phổ ước lượng của nhiễu được tính trong khi không có tiếng nói
hoạt động. Ký hiệu
""
∧
để chỉ rằng giá trị đó là giá trị ước tính gần đúng. Tín hiệu tiếng nói
được tăng cường có thể đạt được bằng cách rất đơn giản là biến đổi IDFT của
)(
ω
∧
X
.
Cần chú ý rằng biên độ phổ của tín hiệu đã được tăng cường là
|)(||)(||)(|
ωωω
DYX
−=
,
có thể bị âm do sự sai sót trong việc ước lượng phổ của nhiễu. Tuy nhiên, biên độ của phổ
thì không thể âm, nên chúng cần phải đảm bảo rằng khi thực trừ hai phổ thì phổ của tín
hiệu tăng cường |X(
ω
)| luôn luôn không âm. Giải pháp được đưa ra để khắc phục điều
này là chỉnh lưu bán sóng hiệu của phổ, nếu thành phần phổ nào mà âm thì chúng ta sẽ
gán nó bằng 0:
≠
>−
=
,0
|)(||)(|,|)(|)(
)(
^^
ωωωω
ω
DYDY
X
Phương pháp xử lý bằng chỉnh lưu bán sóng là một trong những cách để đảm bảo cho
|X(
ω
)| không bị âm.
b. Trừ phổ công suất
Thuật toán trừ phổ đối với phổ biên độ có thể được mở rộng sang miền phổ công suất.
Vì trong một vài trường hợp, nó có thể làm việc tốt với phổ công suất hơn là với phổ biên
độ. Lấy phổ công suất của tín hiệu bị nhiễu trong một khoảng ngắn, chúng ta bình phương
|Y(
ω
)|, ta được:
{ }
)()(Re.2)()(
)()()(.)()()()(
*
22
**
222
ωωωω
ωωωωωωω
DXDX
DXDXDXY
++=
+++=
|
)(
ω
D
|
2
, X(
ω
).
)(
ω
∗
D
và
)().(
ωω
DX
∗
không thể tính được một cách trực tiếp và xấp xỉ
bằng E{|
)(
ω
D
|
2
}, E{ X(
ω
).
)(
ω
∗
D
} và E{
)().(
ωω
DX
∗
}, khi đó E[.] là toán tử kỳ vọng.
Bình thường thì E{|
)(
ω
D
|
2
} được ước lượng khi không có tiếng nói hoạt động và được
biểu thị là |
)(
ω
∧
D
|
2
. Nếu chúng ta thừa nhận d[n] = 0 và không có một sự tương quan nào
với tín hiệu sạch x[n], thì E{ X(
ω
).
)(
ω
∗
D
} và E{
)().(
ωω
DX
∗
} xem là 0. Khi đó phổ
công suất của tín hiệu sạch có thể tính được như sau
2
^
22
^
|)(||)(||)(|
ωωω
DYX
−=
Công thức trên biểu diễn thuật toán trừ phổ công suất. Như công thức trên, thì phổ
Nhóm 3 – CHKTĐT 02-2009
3
Báo cáo: Lab x? lý ti?ng nói
công suất được ước lượng
2
|)(|
ω
∧
X
không được đảm bảo luôn là một số dương, nhưng có
thể sử dụng phương pháp chỉnh lưu bán sóng như đã trình bày ở trên. Tín hiệu được tăng
cường sẽ thu được bằng cách tính IDFT của
|)(|
ω
∧
X
(bằng cách lấy căn bậc hai của
|)(|
ω
∧
X
2
), có sử dụng pha của tín hiệu tiếng nói bị nhiễu.
Ta có công thức:
222
^
|)(|)(|)(|
ωωω
YHX
=
Khi đó:
2
2
^
|)(|
|)(|
1)(
ω
ω
ω
Y
D
H −=
Trong lý thuyết hệ thống tuyến tính, H(
ω
) là hàm truyền đạt của hệ thống. Trong lý
thuyết của Speech enhancement, ta xem H(
ω
) là hàm độ lợi hay hàm nén. Và H(
ω
) là
một số thực và luôn luôn dương, và có giá trị nằm trong phạm vi
1)(0
≤≤
ω
H
. Nếu nó có
giá trị âm là do có sai sót trong quá trình ước lượng phổ của nhiễu. H(
ω
) được gọi là hàm
nén là vì nó cho ta biết tỷ số giữa phổ công suất của tín hiệu được tăng cường với phổ
công suất của tín hiệu bị nhiễu. Hình dạng của hàm nén là một đặc trưng duy nhất của
mỗi thuật toán Speech enhancement.
Trường hợp chung thì thuật toán trừ phổ có thể được biểu diễn:
ppp
DYX |)(||)(||)(|
^^
ωωω
−=
Trong đó p là số mũ công suất, với p = 1 là đó là phương pháp trừ phổ biên độ điển hình,
p = 2 là phương pháp trừ phổ công suất.
1.1.2 Wiener Filter
Thuật toán trừ phổ dựa chủ yếu vào trực giác và kinh nghiệm. Chính xác hơn thuật
toán này được phát triển dựa trên một nhiễu có thật được cộng vào và tín hiệu sạch được
ước lượng một cách đơn giản bằng cách trừ đi phổ của nhiễu từ phổ của tín hiệu tiếng nói
có nhiễu. Với cách làm này tín hiệu tiếng nói sạch không thể có được bằng cách tối ưu
nhất. Để khắc phục nhược điểm này ta sử dụng thuật toán Wiener Filtering (WF).
WF là thuật toán được sử dụng rộng rãi trong nâng cao chất lượng tiếng nói. Nguồn gốc
cơ bản của thuật toán WF là tạo ra tín hiệu tiếng nói sạch bằng cách nén nhiễu. Ước lượng
được thực hiện bằng cách hạ thấp sai số bình phương trung bình giữa tín hiệu mong muốn
và tín hiệu ước lượng.
Nguyên lý cơ bản
Giả thiết rằng y[n] là tín hiệu vào đã bị nhiễu, nó là tổng của tín hiệu sạch x[n] và tín
hiệu nhiễu d[n] (ở đây ta xét trong một cửa sổ):
Nhóm 3 – CHKTĐT 02-2009
4
Tín hi?u b?
nhi?u
FFT
|.|
2
? ?c l??ng, c?p nh?t
nhi?u
Pha c?a tín
hi?u
|.|
1/2
IFFT
Tín hi?u sau khi
tăng c??ng
)(
ω
Y
Priori SNR
Hàm x? lý
gi?m nhi?u
WF
SNR
pri
2
^
|)(|
ω
D
Báo cáo: Lab x? lý ti?ng nói
y[n]=x[n]+d[n]
Thực hiện biến đổi Fourier rời rạc cả 2 vế,ta được
)()()(
ωωω
DXY
+=
Chúng ta có thể biểu diễn Y(
ω
) dưới dạng phức như sau:
)(
|)(|)(
ωφ
ωω
y
j
eYY =
Khi đó |Y(
ω
)| là biên độ phổ, và
)(
ωφ
y
là pha của tín hiệu đã bị nhiễu.
Phổ của tín hiệu nhiễu D(
ω
) có thể được biểu diễn dạng biên độ và pha:
)(
|)(|)(
ωφ
ωω
d
j
eDD
=
Biên độ phổ của nhiễu |D(
ω
)| không xác định được, nhưng có thể thay thế bằng giá
trị trung bình của nó được tính trong khi không có tiếng nói (tiếng nói bị dừng), và pha
của tín hiệu nhiễu có thể thay thế bằng pha của tín hiệu bị nhiễu
)(
ωφ
y
, việc làm này
không ảnh hưởng đến tính dễ nghe của tiếng nói, có thể ảnh hưởng đến chất lượng của
tiếng nói là làm thay đổi pha của tiếng nói nhưng cũng chỉ vài độ.
Ta có thể ước lượng được biên độ của phổ tín hiệu sạch
)(
ω
∧
X
từ Y(
ω
) bằng một hàm
phi tuyến được xác định như sau :
)(/)()(
ωωω
YXG
∧
=
)(
ω
G
có thể được áp dụng theo Wiener Filtering:
})({})({
})({
)(
22
2
ωω
ω
ω
DEXE
XE
G
+
=
Đặt Priori SNR và Posteriori SNR như sau:
})({
})({
2
2
ω
ω
DE
XE
SNR
pri
=
})({
})({
2
2
ω
ω
DE
YE
SNR
post
=
Một khó khăn trong các thuật toán nâng cao chất lượng tiếng nói là ta không có tín
hiệu trước tín hiệu sạch s[n] nên ta không thể biết phổ của nó. Do đó ta không thể tính
được
pri
SNR
mà trong các hệ thống nâng cao chất lượng giọng nói thì
pri
SNR
là tham số
rất cần thiết để ước lượng tín hiệu sạch. Trong các hệ thống nâng cao chất lượng giọng
nói có thể ước lượng được
pri
SNR
và
post
SNR
bằng cách cho các thông số thích hợp vào
các phương trình sau:
)(
ˆ
)()(
,0))max(SNR-(1)(SNR
1
)(
ˆ
)(
)(SNR
2
11
postprio
2
post
ω
ωω
ααω
ω
ω
ω
D
YG
D
Y
ii
i
−−
+=
−=
Và chỉ số
i
[.]
để tín hiệu tại khoảng thời gian đang xử lý.
Trong phương trình nếu cho hệ số
α
ta có thể ước lượng được
pri
SNR
bằng
post
SNR
.
Trong thực tế hệ số
α
=0.98 rất tốt cho các tín hiệu có SNR<4dB.
Từ các phương trình trên dễ thấy
)(
ω
G
theo WF như sau:
pri
pri
SNR
SNR
G
+
=
1
)(
ω
Nhóm 3 – CHKTĐT 02-2009
5
Báo cáo: Lab x? lý ti?ng nói
1.2 Thuật toán
1.2.1 Trừ phổ (SS)
Nhóm 3 – CHKTĐT 02-2009
6
C?p nh?t nhi?u N và NRM
V?i khung ti?p theo i=i+1
Kh?i t?o nhi?u (N)
(trung bình công su?t nhi?u ban đ?u)
Nén tín hi?u X(:,i)=Beta*Y(:,i)
Tr? ph? D=YS(:,i)-N
Tín hi?u ra X(:,i)=max(D,0);
Bi?n đ?i FFT t?ng segment (Y)
X
=
=
X
=
X
=
S
Đ
SpeechFlag=0?
I<s? khung
BEGI
N
Phân chia tín hi?u đ?u vào thành các
segment, s? d?ng c?a s? Hamming
Tính pha và biên đ? t?ng segment
Gán nhi?u d? NRM=0
Gán tín hi?u ra X=0
H? s? nén Beta=0.03
Tính biên đ? trung bình (YS)
V?i khung đ?u tiên i=0
VAD
D<NRM?
D= min c?a 3 m?u thu?c 3
segment k? nhau (có tr? nhi?u)
Đ
S
Đ
S
Khôi ph?c tín hi?u đ?y đ?
Th?c hiên IFFT và n?i các frame
END
Báo cáo: Lab x? lý ti?ng nói
1.2.2. Wiener Filter (WF)
Nhóm 3 – CHKTĐT 02-2009
7
Tín hi?u ra X(:,i)=G.*Y(:,i)
Kh?i t?o nhi?u (N, LambdaD)
Bi?n đ?i FFT t?ng segment (Y)
BEGI
N
Phân chia tín hi?u đ?u vào thành các
segment, s? d?ng c?a s? Hamming
Tính pha và biên đ? t?ng segment (1/2)
alpha=0.99
Gán đ? l?i G=1
Gán tín hi?u ra X=0
SNRpost=Gamma=1
V?i khung đ?u tiên i=0
VAD
(B? qua nh?ng khung đ?u)
S
Đ
SpeechFlag=0?
C?p nh?t nhi?u N và LambdaD
Tính l?i SNRpost
Tính SNRpri theo SNRpost
Tính đ? l?i G=SNRpri/(1+SNRpri)
V?i khung ti?p theo i=i+1
X
=
X
=
I<s? khung
Đ
S
Khôi ph?c tín hi?u đ?y đ?
Th?c hiên IFFT và n?i các frame
END
X
=
=
Báo cáo: Lab x? lý ti?ng nói
2. Kiểm tra thuật toán và đánh giá
Mẫu 1: Tín hiệu với SNR=5dB
Mẫu 2: Tín hiệu với SNR=15dB
Nhóm 3 – CHKTĐT 02-2009
8
Báo cáo: Lab x? lý ti?ng nói
Với các thông số đầu vào như hình trên, ta có các đánh giá như sau:
-3 -2 -1 0 1 2 3
Much worse Worse Slightly
worse
About the
same
Slightly
better
Better Much better
Mẫu 1 – SS
Mẫu 1 – WF
Mẫu 2 – SS
Mẫu 2 – WF
3. Các thông số ảnh hưởng đến thuật toán
3.1 Đối với phương pháp trừ phổ
- SP: Phần trăm dịch của cửa sổ
- IS: Khoảng thời gian không có tín hiệu thoại ban đầu.
- Gamma: Bằng 1 là trừ phổ biên độ, 2 là trừ phổ công suất.
- Beta: Hệ số nén tín hiệu trong vùng không thoại.
- NoiseLength: Hệ số xác định nhiễu (xác định mức độ tin tưởng vào nhiễu ước
lượng quá khứ hay nhiễu hiện tại)
- NoiseMargin: Ngưỡng xác định nhiễu (chọn 2.5dB hoặc 3dB)
- Hangover: Số segment nhiễu sau khi cờ SpeechFlag được reset để xác định vùng
nhiễu.
- Loại cửa số: Sử dụng cửa sổ mặc định là Hamming.
* Nhận xét:
- Sử dụng cửa số Hamming là tối ưu, so với các cửa sổ khác.
- Xác định giá trị IS nằm trong khoảng giá trị từ 0.1 s đến 0.3 s, và với các giá trị này
thì nhận thấy kết quả ngõ ra không thay đổi nhiều.
- Thay đổi SP với các giá trị từ 0.4 đến 0.6 thì kết quả không thay đổi nhiều.
- Nếu Gamma = 2 (trừ phổ công suất) thì ngõ ra bị nhiễu tác động lớn. Chọn
Gamma=1.
- Thay đổi Beta bằng 0.01 triệt được nhiễu hai đầu tín hiệu nhưng tín hiệu bị méo,
với giá trị là 0.05 thì tín hiệu khá tốt. Với giá trị 0.03 thì kết quả tốt nhất.
- Noiselength được thay đổi từ 3 đến 10 thì kết quả ngõ ra không thay đổi nhiều.
- NoiseMargin: với giá trị bằng 1dB thì tín hiệu ngõ ra gần giống với tín hiệu sạch
nhưng vẫn còn nhiễu. Nếu bằng 2 thì đoạn cuối của tín hiệu ngõ ra bị nhiễu lớn. Với giá
trị bằng 4 dB thì triệt được nhiễu hai đầu nhưng tín hiệu vẫn còn nhiễu. Với giá trị bằng
5 dB thì một số đoạn tín hiệu bị mất.
- Hangover: với giá trị bằng 6 hoặc 4 thì giảm nhiễu đáng kể. Nếu bằng 1 hoặc 2 thì
giảm nhiễu nhưng một số đoạn tín hiệu ra bị nén xuống (nghe nhỏ hơn).
Tóm lại ta thấy tín hiệu ngõ ra của bộ lọc nhạy nhất với thông số là
NoiseMargin.
3.2. Đối với phương pháp Wiener Filter
Ngoài các thông số SP, IS, NoiseLength, NoiseMargin, Hangover, cửa số
Hamming giống như phương pháp trừ phổ, còn có thêm thông số alpha là h? s? làm tr?n
trong ph??ng pháp ??c l??ng t? s? SNR
pri
.
Nhóm 3 – CHKTĐT 02-2009
9
Báo cáo: Lab x? lý ti?ng nói
* Nhận xét:
- Sử dụng cửa số Hamming vẫn là lựa chọn tối ưu.
- Thay đổi IS với các giá trị từ 0.1 s đến 0.2 s thì nhận được tín hiệu với phần đầu tốt
hơn.
- Thay đổi SP với các giá trị từ 0.2 đến 0.6 thì kết quả không thay đổi nhiều.
- alpha thường chọn 0.99 thì loại bỏ hoàn toàn nhiễu.
- Noiselength được thay đổi từ 3 đến 10 thì kết quả ngõ ra không thay đổi nhiều.
- NoiseMargin: với giá trị bằng 1dB thì công suất của tín hiệu ngõ ra gần giống
với tín hiệu sạch nhưng vẫn còn nhiễu. Nếu bằng 2 thì đoạn cuối của tín hiệu ngõ ra bị
nhiễu lớn. Với giá trị bằng 4 dB thì triệt được nhiễu hai đầu nhưng tín hiệu vẫn còn
nhiễu. Với giá trị bằng 5 dB thì một số đoạn tín hiệu bị mất. Và tín hiệu tốt nhất khi giá
trị này bằng 2.5dB hoặc 3dB.
- Hangover: với giá trị bằng 6 hoặc 4 thì giảm nhiễu đáng kể. Nếu bằng 1 hoặc 2 thì
giảm nhiễu nhưng một số đoạn tín hiệu ra bị nén xuống (nghe nhỏ hơn).
3.3 Nhận xét chung
Sau khi nghe các file âm thanh của tín hiệu sạch, tín hiệu sau khi xử lý nhiễu, dựa trên
dạng sóng và spectrogram của tín hiệu sạch, tín hiệu sau khi xử lý triệt nhiễu bằng 2 thuật
toán SS và WF, ta có thể đưa ra một số nhận xét như sau:
• Cả hai thuật toán đều có thể xử lý triệt nhiễu tốt hơn ở môi trường có SNR cao hơn,
và xử lý tốt hơn đối với tín hiệu bị nhiễu biến đổi chậm và có phân bố đều.
• Cả hai thuật toán đều có tính hiệu quả giống nhau đối với nhiễu ở mức SNR thấp,
nhưng đối với môi trường có SNR cao hơn thi thuật toán Wiener xử lý triệt nhiễu tốt
hơn.
Nhìn chung thì thuật toán WF xử lý triệt nhiễu tốt hơn so với SS.
Ngoài ra, do thu?t toán VAD v?i các thông s? đ? ra là IS = 0.2 và NoiseMargin = 3 là
không t?t nên m?t ph?n âm thanh b? ??c l??ng là nhi?u nên đã b? thu?t toán nén đi d?n t?i
vi?c m?t năng l??ng c?a ph?n âm thanh s?ch.
• Đ?i v?i thông s? IS ta ph?i thay đ?i nh? sau : Do đo?n l?ng trong file s?ch ch? n?m
trong kho?ng 0.15s đ?n 0.2s. N?u ta đ? 0.2 là quá l?n đ?i v?i m?t s? file nên m?t
ph?n năng l??ng ti?ng nói trong nh?ng file nay s? đ??c thu?t toán VAD xem là nhi?u
vì th? m?t ph?n ti?ng nói s? b? lo?i b?. Đó là m?t h?n ch? c?a thu?t toán VAD.
• Đ?i v?i thông s? NoiseMargin: Vì ta ch?n m?c ng??ng đ? nh?n bi?t nhi?u là 3dB là
khá l?n nên t??ng t? nh? giá tr? IS v?i m?c ng??ng nh? v?y m?t ph?n tín hi?u s?ch s?
b? lo?i b? g?n v?i nhi?u dù IS có t?i ?u th? nào đi n?a. Qua th?c nghi?m ta có h? s?
NoiseMargin t?i ?u là 2.5 dB. Đó là giá tr? mà tín hi?u s?ch không b? ??c l??ng là
nhi?u.
V?y các giá tr? t?i ?u cho thu?t toán VAD là : h? s? IS ph?i đi?u ch?nh l?i là 0.15 s, h? s?
NoiseMargin là 2.5 dB.
Nhóm 3 – CHKTĐT 02-2009
10
Báo cáo: Lab x? lý ti?ng nói
3.4 Đánh giá
Mẫu 1: Tín hiệu với SNR=5dB
Mẫu 2: Tín hiệu với SNR=15dB
Nhóm 3 – CHKTĐT 02-2009
11
Báo cáo: Lab x? lý ti?ng nói
Sau khi thay đổi các thông số đầu vào thích hợp, ta có các đánh giá như sau:
-3 -2 -1 0 1 2 3
Much
worse
Worse Slightly
worse
About the
same
Slightly
better
Better Much better
Mẫu 1 – SS
Mẫu 1 – WF
Mẫu 2 – SS
Mẫu 2 – WF
4. Đề xuất
Thuật toán trừ phổ xử lý nhiễu không tốt bằng thuật toán WF và nó còn gây ra hiện
tượng “musical noise”. Còn trong thuật toán WF, do quá trình khử nhiễu tốt nên đối với
các tín hiệu gần nhiễu cũng bị triệt nên sẽ bị mất một phần tín hiệu.
Do đó, dựa vào hai thuật toán trên ta điều chỉ độ lợi G để được phương pháp tối thiểu
sai hóa sai lệch trung bình bình phương (MMSE):
( )
+
+×
+
+
=
prio
prio
post
prio
prio
post
SNR1
SNR
SNR1
SNR1
SNR
SNR1
1
2
)(
M
G
i
π
ω
trong đó
)(
ˆ
)()(
,0))max(SNR-(1)(SNR
1
)(
ˆ
)(
)(SNR
)
2
()
2
()1(][
2
11
postprio
2
post
10
2
ω
ωω
ααω
ω
ω
ω
θ
θ
θ
θθ
θ
D
YG
D
Y
IIeM
ii
i
−−
−
+=
−=
++=
(I là hàm Bessel)
Thuật toán MMSE cho ra tín hiệu tương đối tốt và ít bị mất tín hiệu. Thuật toán này
tương tự thuật toán WF chỉ khác phần tính toán độ lợi ở trên.
Nhóm 3 – CHKTĐT 02-2009
12
Báo cáo: Lab x? lý ti?ng nói
5. Kiểm tra
Mẫu 1: Tín hiệu với SNR=5dB
Mẫu 2: Tín hiệu với SNR=15dB
Nhóm 3 – CHKTĐT 02-2009
13