- Tìm hiểu và nghiên cứu các phương pháp cải thiện chất lượng tiếng
nói, nhưng tập trung vào 2 thuật toán đã có trong Speech enhancement
là : Spectral Subtraction và Wiener Filtering
- Xây dựng được chương trình thực hiện xửlý nhiễu trong các file âm
thanh đã bịnhiễu dựa trên 2 thuật toán : Spectral Subtraction và
Wiener Filtering.
- Thực hiện và đánh giá tính hiệu quảcủa 2 thuật toán trong các môi
trường nhiễu và mức độnhiễu khác nhau, từ đó đưa ra các biện pháp
tối ưu hóa các thuật toán. Kết quả đạt được cho thấy WF là thuật toán
giảm nhiễu tốt hơn SS. Các thuật toán giảm nhiễu có hiệu quảkhác
nhau đối với từng môi trường nhiễu khác nhau
77 trang |
Chia sẻ: lylyngoc | Lượt xem: 4336 | Lượt tải: 3
Bạn đang xem trước 20 trang tài liệu Đồ án Thuật toán xử lý tiếng nói trong Speech Enhancement và đánh giá tính hiệu quả của thuật toán, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
thể là hạn chế của đánh giá IS, sự khác nhau giữa các mức phổ có tác
động nhỏ đến chất lượng[18]
Hệ số LPC cũng có thể xuất phát từ khoảng cách đo được dựa trên hệ số
cepstrum. Khoảng cách này quy định sự ước lượng khoảng cách log của phổ của
giữa hai phổ tín hiệu. Hệ số cepstrum có thể thu được từ phép đệ quy hệ số LPC
{aj} sử dụng công thức sau
(2.10)
Với p là bậc của phân tích LPC .Phép đo dựa trên hệ số cepstrum có thể
được tính như sau [19]
(2.11)
Chương 2 : Đánh giá chất lượng tiếng nói
SVTH: Nguyễn Thị Ngọc Diệp Trang 37
Với và lần lượt là hệ số của tín hiệu sạch và tín hiệu đã được
tăng cường
2.3.3 Đánh giá mô phỏng theo cảm nhận nghe của con người
Những phương pháp đánh giá đã được đề cập trên được ưa dùng vì tính đơn
giản để thực hiện và dễ dàng đánh giá. Tuy nhiên, khả năng dự đoán chất lượng
chủ quan của chúng thì hạn chế khi mà các phương pháp xử lý tín hiệu đó không
tính đến phạm vi nghe của con người.
2.3.3.1 Phương pháp đo Weighted Spectral Slope
Phương pháp đánh giá này được tính bởi dốc phổ đầu tiên được tìm thấy
của mỗi dải phổ. Xét Cx(k) là phổ dải tới hạn của tín hiệu sạch và là của tín
hiệu tăng cường, xét trong đơn vị dB. Phương trình sai phân bậc nhất được dùng
để tính độc dốc phổ được cho như sau:
(2.12)
Với và lần lượt biểu diễn cho độ dốc dải tần thứ k của tín hiệu
sạch và tín hiệu tăng cường. Sự khác nhau giữa các độ dốc phổ phụ thuộc vào
trọng số một là dải tần gần với đỉnh hoặc rãnh, hai là đỉnh là đỉnh lớn nhất của
phổ. Trọng số của dải thứ k, ký hiệu W(k) được tính như sau
[12] (2.13)
độ rộng loga lớn nhất của phổ trong tất cả các băng, là giá trị
của đỉnh gần với băng k nhất, và , là hằng số có được bằng phép
phân tích hồi quy để cực đại hóa sự tương quan giữa đánh giá chủ quan và giá trị
của đánh giá khách quan. Với những thí nghiệm đã được thực hiện thì người ta
tìm được sự tương quan lớn nhất sẽ có được với =20 và =1[18]
Chương 2 : Đánh giá chất lượng tiếng nói
SVTH: Nguyễn Thị Ngọc Diệp Trang 38
Phép đo WSS tính cho mỗi khung của tín hiệu thoại:
(2.14)
Với L là số lượng dải tới hạn
Giá trị WSS được tính bằng cách lấy trung bình các giá trị WSS thu được từ
các khung trong câu
WSS là phương pháp đánh giá khá hấp dẫn bởi vì nó không đòi hỏi phải có
formant rõ ràng. Nó chú ý tới vị trí đỉnh phổ và ít nhạy cảm với các đỉnh xung
quanh cũng như các chi tiết của phổ ở các vùng thấp. Đánh giá LPC cơ bản (ví dụ
như đánh giá LLR) nhạy với các tần số formant khác, nhưng cũng nhạy với sự
thay đổi biên độ và sự thay đổi độ nghiêng phổ. Không có gì là bất ngờ khi đánh
giá WSS mang lại một sự tương quan lớn (ρ=0.74) hơn đánh giá LPC, với sự
đánh giá chất lượng chủ quan của tiếng nói bị giảm chất lượng bởi sự mã hóa[20]
2.3.3.2 Phương pháp đo Bark Distortion
Phương pháp đánh giá WSS là bước đầu làm mẫu cho việc làm thế nào để
con người nhận biết được tiếng nói, đặc biệt là nguyên âm. Các phương pháp
đánh giá sau này càng dựa vào sự xử lý âm thanh của tai người, cách mà thính
giác con người xử lý âm thanh và nhiễu. Những phương pháp đánh giá mới này
đã dựa trên những lập luận sau:
1. Sự phân tích tần số của tai người là không thay đổi, tức là sự phân
tích tần số của tín hiệu âm thanh không dựa trên phạm vi tần số
tuyến tính
2. Độ nhạy của tai người phụ thuộc vào tần số âm thanh
3. Âm thanh to tương ứng với độ mạnh của tín hiệu trong miền phi
tuyến tính
Thính giác con người phỏng theo một loạt biến đổi của tín hiệu âm thanh.
Cả tín hiệu gốc và tín hiệu đã qua xử lý phải trải qua hàng loạt các biến đổi này,
dẫn đến cái gọi là phổ âm lượng. Đánh giá BSD sử dụng khoảng cách giữa các
phổ này như là đánh giá chất lượng chủ quan
Chương 2 : Đánh giá chất lượng tiếng nói
SVTH: Nguyễn Thị Ngọc Diệp Trang 39
2.3.3.3 Phương pháp đánh giá cảm nhận chất lượng thoại PESQ
Trong các phương pháp đánh giá OE thì PESQ là phương pháp đánh giá
phức tạp nhất và được khuyến nghị bởi ITU_T cho đánh giá chất lượng thoại
băng hẹp (3,2KHz) và là một phương pháp đánh giá khách quan có tính tương
quan cao với đánh giá theo cảm nhận của người nghe
2.4 Kết luận chương
Chương này đã trình bày một số phương pháp đánh giá chất lượng tiếng nói
sau khi xử lý giảm nhiễu bằng các thuật toán tăng cường tiếng nói. Các đánh giá
SE được giới thiệu gồm có các phương pháp đánh giá tuyệt đối và đánh giá tương
đối. Các phương pháp đánh giá OE được trình bày chính trong chương này gồm :
Đo SNRseg, đánh giá LLR, IS và WSS, trong phần này cũng đã giới thiệu sơ bộ
về BSD và PESQ
Chương 2 : Đánh giá chất lượng tiếng nói
SVTH: Nguyễn Thị Ngọc Diệp Trang 40
Chương 3 : Thuật toán Spectral Subtraction và Wiener Filtering
SVTH: Nguyễn Thị Ngọc Diệp Trang 41
CHƯƠNG 3: THUẬT TOÁN SPECTRAL–SUBTRACTION VÀ WIENER
FILTERING
3.1 Giới thiệu chương
Nội dung của chương này trình bày nguyên lý chung của thuật toán Spectral
– subtraction và Wiener filtering,nguyên lý cơ bản của từng thuật toán, các bước
thực hiện cần thiết để phân tích liên kết tín hiệu, đề cập đến vấn đề ước luợng
nhiễu, vấn đề này ảnh hưởng rất lớn đến quá trình xử lý
3.2 Sơ đồ khối chung của Spectral Subtraction và Wiener Filtering
Trong đồ án này, chúng tôi đã dựa trên các cở sở lý thuyết của các thuật toán đã
có trong speech enhancement, và đã lựa chọn ra 2 thuật toán đó là : Spectral
subtraction và Wiener filter để sử dụng làm thuật toán xử lý triệt nhiễu.
Sơ đồ khối chung cho cả 2 thuật toán :
Hình 3.1 Sơ đồ khối cho hai thuật toán SS và WF
Cả 2 thuật toán Spectral subtraction và Wiener filter chỉ khác nhau ở khối
hàm xử lý triệt nhiễu, tất cả các khối còn lại thì giống nhau.
3.3 Thuật toán Spectral Subtraction
3.3.1 Giới thiệu chung
Spectral – subtraction là thuật toán được đề xuất sớm nhất trong các thuật
toán được sử dụng để giảm nhiễu trong tín hiệu. Đã có rất nhiều bài luận mô tả
các biến thể của thuật toán này so với các thuật toán khác. 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
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
Chương 3 : Thuật toán Spectral Subtraction và Wiener Filtering
SVTH: Nguyễn Thị Ngọc Diệp Trang 42
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 có tốc độ xử lý 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.
Quá trình xử lý hiệu đơn giản như vậy phải trả một cái giá, nếu quá trình xử
lý không được thực hiện một cách cẩn thận thì tiếng nói của chúng ta 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. Có rất nhiều phương pháp được đề xuất để giảm đi hầu hết méo
trong quá trình xử lý tiếng nói bằng spectral subtraction[21], và trong số đó cũng
có một vài trường hợp bị loại bỏ.
3.3.2 Spectral subtraction đối với phổ biên độ
Giả thiết rằng y[n] là tín hiệu vào đã bị nhiễu, nó tổng của tín hiệu sạch x[n]
và tín hiệu nhiễu d[n]:
y[n] = x[n] + d[n] (3.1)
Thực hiện biến đổi Fourier rời rạc cả 2 vế,ta được
)()()( ωωω DXY += (3.2)
Chúng ta có thể biểu diễn Y(ω ) dưới dạng phức như sau:
)(|)(|)( ωφωω yjeYY = (3.3)
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:
)(|)(|)( ωφωω djeDD = (3.4)
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
Chương 3 : Thuật toán Spectral Subtraction và Wiener Filtering
SVTH: Nguyễn Thị Ngọc Diệp Trang 43
)(ωφy , việc làm này không ảnh hưởng đến tính dễ nghe của tiếng nói [22], 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:
)(|])(||)([|)( ωφωωω yjeDYX
∧∧
−= (3.5)
ở đâ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
|)(||)(|,|)(|)()(
^^
ωωωωω DYDYX (3.6)
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.
3.3.3 Spectral subtraction đối với phổ công suất
Thuật toán Spectral subtraction đố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
++=
+++=
(3.7)
Chương 3 : Thuật toán Spectral Subtraction và Wiener Filtering
SVTH: Nguyễn Thị Ngọc Diệp Trang 44
| )(ω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 −= (3.8)
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ổ 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. Chú ý rằng, nếu chúng ta lấy IDFT cả hai vế của công thức
(4.8) trên thì ta có một phương trình tương tự trong miền tự tương quan:
)()()( ^^^^ mrmrmr
dd
yy
xx
−= (3.9)
Khi đó )(^^ mr
xx
, )(mryy , )(^^ mr
dd
là các hệ số tự tương quan của tín hiệu sạch,
tín hiệu tiếng nói bị nhiễu, và tín hiệu nhiễu đã được ước lượng [23,24].
Công thức (1) có thể được viết theo dạng sau:
222
^
|)(|)(|)(| ωωω YHX = ( 3.10)
Khi đó: 2
2
^
|)(|
|)(|1)(
ω
ω
ω
Y
DH −= (3.11)
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, chúng 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
Chương 3 : Thuật toán Spectral Subtraction và Wiener Filtering
SVTH: Nguyễn Thị Ngọc Diệp Trang 45
phạm vị 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.
Chính vì vậy mà chúng ta thường so sánh các thuật toán bằng cách so sánh
các đáp ứng của hàm nén của chúng. Hệ số H(ω ) có giá trị thực nên biến đổi
IDFT là h[n] đối xứng với nhau qua điểm 0 và không nhân quả. Trong miền thời
gian thì h[n] được xem là một bộ lọc không nhân quả [25]. Nên sẽ có một
phương pháp được đề xuất để hiệu chỉnh hàm H(ω ) để đáp ứng của nó trở thành
bộ lọc nhân quả trong miền thời gian.
Trường hợp chung thì thuật toán Spectral subtraction có thể được biểu diễn:
ppp DYX |)(||)(||)(|
^^
ωωω −= (3.12)
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.
Sơ đồ khối của thuật toán Spectral Subtraction :
Hình 3.2 Sơ đồ khối của thuật toán Spectral subtraction [26].
3.4 Thuật toán Wiener Filtering
3.4.1 Giới thiệu chung
Thuật toán Spectral Subtraction 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
Tín hiệu
bị nhiễu FFT |.|
p
Ước lượng, cập
nhật nhiễu
Pha của
tín hiệu
|.|1/p IFFT
Tín hiệu sau khi
tăng cường
+
)(ωY
-
pD |)(|
^
ω
Chương 3 : Thuật toán Spectral Subtraction và Wiener Filtering
SVTH: Nguyễn Thị Ngọc Diệp Trang 46
đượ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ính 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 (Mean Square Error) giữa tín hiệu mong muốn và tín hiệu ước lương.
3.4.2 Nguyên lý cơ bản của Wiener Filtering
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
và tín hiệu nhiễu d[n]:
y[n]=x[n]+d[n] (3.13)
Thực hiện biến đổi Fourier rời rạc cả 2 vế,ta được
)()()( ωωω DXY += (3.14)
Chúng ta có thể biểu diễn Y(ω ) dưới dạng phức như sau:
)(|)(|)( ωφωω yjeYY = (3.15)
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:
)(|)(|)( ωφωω djeDD = (3.16)
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 [27], 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
∧
= (3.17)
Chương 3 : Thuật toán Spectral Subtraction và Wiener Filtering
SVTH: Nguyễn Thị Ngọc Diệp Trang 47
)(ωG có thể được áp dụng theo Wiener Filtering [28]:
})({})({
})({
)( 22
2
ωω
ω
ω
DESE
SE
G
+
= (3.18)
Trong đó )(ωsP và )(ωdP là phổ công suất của tin hiệu sạch.
Đặt Priori SNR và Posteriori SNR như sau[11]:
})({
})({
2
2
ω
ω
DE
SE
SNRpri = (3.19)
})({
})({
2
2
ω
ω
DE
YE
SNR post =
(3.20)
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 priSNR mà trong các hệ thống nâng cao chất lượng giọng
nói thì priSNR 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 priSNR và postSNR
bằng cách cho các thông số thích hợp vào các phương trình sau[12]:
21
)()1()()( ϖλωλω t
t
d
t
d DPP −+=
−∧∧
(3.21)
)(
})({ 2
ω
ω
t
d
post
P
YE
SNR
∧
= (3.22)
)(
)(
1)()1()(
21^
ω
ω
βωβω
d
t
t
post
t
pri
P
S
SNRPSNR
∧
−
∧∧
+⎥⎦
⎤⎢⎣
⎡
−−= (3.23)
Trong đó P[.] là hàm chỉnh lưu bán sóng có dạng như sau:
⎩⎨
⎧
≠
>
=
,0
0,
)(
XX
XP (3.24)
Và và chỉ số t[.] để tín hiệu tại khoảng thời gian đang xử lý.
Chương 3 : Thuật toán Spectral Subtraction và Wiener Filtering
SVTH: Nguyễn Thị Ngọc Diệp Trang 48
Trong phương trình nếu cho hệ số β ta có thể ước lượng được priSNR bằng
postSNR . Trong thực tế hệ số β =0.98 rất tốt cho các tín hiệu có SNR<4dB.
Từ phương trình (3.18) và (3.19) có )(ωG theo WF như sau:
pri
pri
SNR
SNR
G
+
=
1
)(ω (3.25)
Sơ đồ khối của thuật toán Wiener Filtering:
Hình 3.3 Sơ đồ khối của thuật toán Wiener Filtering.
3.5 Overlap và Adding trong quá trình xử lý tín hiệu tiếng nói
3.5.1 Phân tích tín hiệu theo từng frame
Do tín hiệu cần xử lý của chúng ta là tín hiệu liên tục, nên khi chúng ta biến
đổi FFT trực tiếp tín hiệu từ miền thời gian mà không thông qua một quá trình
tiền xử lý nào trước đó thì tín hiệu sau khi được biến đổi FFT sẽ biến đổi nhanh,
lúc đó chúng ta không thể thực hiện được các thuật toán xử lý triệt nhiễu trong tín
hiệu vì khi đó tín hiệu được xem là động.
Chính vì vậy, tín hiệu của chúng ta cần phải được phân tích thành những
khung tín hiệu(frame) liên tục trong miền thời gian trước khi chuyển sang miền
tần số bằng biến đổi FFT. Khi tín hiệu được phân tích thành các frame liên tục,
thì trong từng frame, tín hiệu của chúng ta sẽ biến đổi chậm và nó được xem là
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ễuWF
priSNR
pD |)(|
^
ω
Chương 3 : Thuật toán Spectral Subtraction và Wiener Filtering
SVTH: Nguyễn Thị Ngọc Diệp Trang 49
tĩnh. Nếu tín hiệu được phân tích theo từng frame thì khi đó các thuật toán xử lý
triệt nhiễu trong tín hiệu mới có thể thực hiện được một cách hiệu quả. Và cách
phân tích tín hiệu của chúng ta là “frame by frame”.
Để thực hiện việc phân tích tín hiệu thành các frame, cần sử dụng các loại
cửa sổ thích hợp. Ở đây, chúng ta sử dụng cửa sổ Hamming, với N = 256 mẫu
trong từng frame :
1,...,0,)/)12cos((.85185.01 −=+− NkNk π (3.27)
Hình 3.4 Phân tích tín hiệu thành các frame [31].
3.5.2 Overlap và Adding
Sau khi phân tích tín hiệu thành các frame liên tục trong miền thời gian
bằng cửa sổ Hamming, nếu các frame này liên tục với nhau và không theo một
điều kiện nào cả thì khi thực hiện biến đổi FFT thì vô tình chúng ta đã làm suy
giảm tín hiệu do Hamming là cửa sổ phi tuyến.
Nên khi thực hiện phân tích tín hiệu thành các frame thì yêu cầu đặt ra là
các frame phải sắp xếp chồng lên nhau, gọi là “overlap”. Việc xếp chồng các
frame với nhau sẽ được thực hiện theo một tỷ lệ chồng lấp thích hợp, thông
thường là 40% hoặc 50%.
Sau khi các frame tín hiệu được xử lý triệt nhiễu trong miền tần số, các
frame này được liên kết lại nhau bằng phương pháp thích hợp với phương pháp
phân tích tín hiệu thành các frame ở đầu vào gọi là “adding”.
N : kích thước của frame
m : số lượng frame
Chương 3 : Thuật toán Spectral Subtraction và Wiener Filtering
SVTH: Nguyễn Thị Ngọc Diệp Trang 50
Tập hợp các mẫu tín hiệu trong cùng một frame sau khi được phân tích ở
đầu vào gọi là một “segment”. Với cách thực hiện phân tích và liên kết các frame
bằng phương pháp overlap và adding thì tín hiệu của chúng ta thu được sau khi
xử lý triệt nhiễu sẽ không bị méo dạng và sẽ không xuất hiện hiện tượng “giả
nhiễu”.
Hình 3.5 quá trình thực hiện overlap và adding [32].
3.6 Ước lượng và cập nhật nhiễu
Phương thức ước lượng nhiễu có thể ảnh hưởng lớn đến chất lượng của tín
hiệu sau khi được tăng cường. Nếu nhiễu được ước lượng quá nhỏ thì nhiễu sẽ
vẫn còn trong tín hiệu và nó sẽ được nghe thấy, còn nếu như nhiễu được ước
lượng quá lớn thì tiếng nói sẽ bị méo, và làm sẽ làm tính dễ nghe của tiếng nói bị
ảnh hưởng. Cách đơn giản nhất để ước lượng và cập nhật phổ của nhiễu trong
đoạn tín hiệu không có mặt của tiếng nói sử dụng thuật toán thăm dò hoạt động
của tiếng nói (voice activity detection - VAD). Tuy nhiên phương pháp đó chỉ
thoả mãn đối với nhiễu không thay đổi(nhiễu trắng), nó sẽ không hiệu quả trong
các môi trường thực tế (ví dụ như nhà hàng), ở những nơi đó đặc tính phổ của
nhiễu thay đổi liên tục. Trong mục này chúng ta sẽ đề cập đến thuật toán ước
lượng nhiễu thay đổi liên tục và thực hiện trong lúc tiếng nói hoạt động, thuật
toán này sẽ phù hợp môi trường có nhiễu thay đổi cao.
Chương 3 : Thuật toán Spectral Subtraction và Wiener Filtering
SVTH: Nguyễn Thị Ngọc Diệp Trang 51
3.6.1 Voice activity detection
Quá trình xử lý để phân biệt khi nào có tiếng nói hoạt động, khi nào không
có tiếng nói (im lặng) được gọi là sự thăm dò hoạt động của tiếng nói – Voice
activity detection (VAD). Thuật toán VAD có tín hiệu ra ở dạng nhị phân quyết
định trên một nền tảng frame-by-frame, khi đó frame có thể xấp xỉ 20-40 ms.
Một đoạn tiếng nói có chứa tiếng nói hoạt động thì VAD = 1, còn nếu tiếng nói
không hoạt động hay đó chính là nhiễu thì VAD = 0.
Có một vài thuật toán VAD được đưa ra dựa trên nhiều đặc tính của tín
hiệu. Các thuật toán VAD được đưa ra sớm nhất thì dựa vào các đặc tính như
mức năng lượng, zero-crossing, đặc tính cepstral, phép đo khoảng cách phổ
Itakura LPC, phép đo chu kỳ.
Phần lớn các thuật toán VAD đều phải đối mặt với vấn đề là điều kiện SNR
thấp, đặc biệt khi nhiễu bị thay đổi. Một thuật toán VAD có độ chính xác trong
môi trường thay đổi không thể đủ trong các ứng dụng của Speech enhancement,
nhưng việc ước lượng nhiễu một cách chính xác là rất cần thiết tại mọi thời điểm
khi tiếng nói hoạt động [26].
3.6.2 Quá trình ước lượng và cập nhật nhiễu
Nhiễu sẽ được ước lượng lúc ban đầu bằng cách lấy trung bình biên độ phổ
của tín hiệu bị nhiễu
∑−
=
=
1
0
)(1)(
M
i
ii YM
D ωω (3.28)
Sau đó, sử dụng phương pháp VAD để nhận biết các frame tiếp theo, frame
nào là frame nhiễu và sẽ cập nhật nhiễu đó cho các frame tiếp theo. Để có thể
nhận biết được frame nào là nhiễu thì chúng ta thực hiện so sánh biên độ phổ của
nhiễu được ước lượng với biên độ phổ của tín hiệu bị nhiễu :
ω
ω
ω
π
π
π
d
D
YT
i
i∫
−
−
= |
)(
)(|
2
1log20
1
(3.29)
Nếu dBT 12−≤ thì frame đó không phải là frame có tiếng nói, khi đó ta có
thể cập nhật lại nhiễu đã được ước lượng trước đó.
Chương 3 : Thuật toán Spectral Subtraction và Wiener Filtering
SVTH: Nguyễn Thị Ngọc Diệp Trang 52
3.7 Kết luận chương
Nội dung của chương giúp nguyên lý chung của thuật toán Spectral –
Subtraction và Wiener Filtering. Để hai thuật toán có thể thực hiện được thì cần
phải phân tích tín hiệu thành các frame và các frame phải xếp chồng lên nhau, và
sau khi các frame được xử lý trong miền tần số và chuyển đổi về lại miền thời
gian thì các frame đó phải được liên kết lại với nhau theo đúng phương pháp
tương ứng với phương pháp phân tích tín hiệu ở đầu vào, quá trình đó gọi là
overlap và adding. Chính điều đó sẽ làm cho tín hiệu của chúng ta sau khi xử lý
triệt nhiễu sẽ không bị méo, đảm bảo chất lượng của tiếng nói. Nội dung của
chương cũng trình bày vấn đề ước lượng nhiễu, đây là cái chính mà speech
enhancement cần giải quyết, nó quyết định tính hiệu quả của thuật toán và chất
lượng của tiếng nói sau khi xử lý triệt nhiễu.
Chương 4: Thực hiện và đánh giá các thuật toán
SVTH: Nguyễn Thị Ngọc Diệp Trang 53
CHƯƠNG 4: THỰC HIỆN VÀ ĐÁNH GIÁ CÁC THUẬT TOÁN
4.1 Giới thiệu chương
Dựa vào lý thuyết đã nghiên cứu được, chương này đã xây dựng các lưu đồ
thuật toán và thực hiện các thuật toán giảm nhiễu mô phỏng bằng Matlab, sau đó
đánh giá các kết quả thu được chủ yếu bằng phương pháp đánh giá Objective
Measure
4.2 Quy trình thực hiện và đánh giá thuật toán
Hình 4.1. Sơ đồ thực hiện và đánh giá thuật toán tăng cường
Xây dựng thuật toán : dựa trên các cơ sở toán học, các phép biến đổi trong
miền thời gian và tần số đối với xử lý tín hiệu số để xây dựng nên các thuật toán
xử lý nhiễu trong tiếng nói.
Triển khai trên Matlab: từ thuật toán đã xây dựng được, thực viết mã nguồn
bằng ngôn ngữ lập trình và sử dụng các công cụ trên Matlab tạo nên chương trình
thực hiện xử lý nhiễu trong tiếng nói trên nền Matlab.
Xây dựng các thuật toán
Triển khai thuật toán trên Matlab
Thực hiện xử lý tiếng nói bằng
các thuật toán giảm nhiễu
Thực hiện các thuật toán đánh
giá dựa trên các kết quả đạt được
sau khi xử lý
Nhận xét đánh giá
Chương 4: Thực hiện và đánh giá các thuật toán
SVTH: Nguyễn Thị Ngọc Diệp Trang 54
Thực hiện xử lý tiếng nói bằng các thuật toán: thực hiện xử lý triệt nhiễu
trong các file âm thanh bị nhiễu bằng chương trình đã xây dựng ở trên.
Thực hiện các phương pháp đánh giá dựa trên các kết quả đạt được sau khi
xử lý : sau khi các file âm thanh bị nhiễu với các mức độ và loại nhiễu khác nhau
đã được xử lý triệt nhiễu, cùng với các file âm thanh sạch tương ứng, ta sử dụng
các phương pháp đánh giá của Speech enhancement để thực kiểm tra, đánh giá
tính hiệu của thuật toán.
Nhận xét đánh giá: từ các kết quả sau khi thực hiện các phương pháp đánh
giá đã có ở trên, đưa ra các kết luận đánh giá : thuật toán nào thích hợp cho loại
nhiễu nào, với mức độ bao nhiêu, thuật toán nào có khả xử lý nhiễu tốt hơn trong
mọi trường hợp.
Chương 4: Thực hiện và đánh giá các thuật toán
SVTH: Nguyễn Thị Ngọc Diệp Trang 55
4.3 Lưu đồ thuật toán Spectral Subtraction
Hình 4.2 Lưu đồ thuật toán SS
Tính lại mức nhiễu N
End
I=I+1;nhập frame tiếp theo
Begin
Phân chia Frame tín hiệu đầu
vào
Tinh cong suat nhieu trung binh N ban
đầu
I=0;Nhập frame đầu tiên
VAD
X(:,i)=Beta*Y(:,i)
D=YS(:,i)-N; % Thực hiện trừ phổ
X(:,i)=max(D,0);
Y=biến đổi FFT cho các frame
X =
X =
S
Đ
SpeechFlag==0?
S
I<number of frame
Thực hiên IFFT và nối các
frame
Đ
Chương 4: Thực hiện và đánh giá các thuật toán
SVTH: Nguyễn Thị Ngọc Diệp Trang 56
4.4 Lưu đồ thuật toán Wiener Filtering
Hình 4.3 Lưu đồ thuật toán WF
Tính lại mức nhiễu trung bình
End
I=I+1;nhập frame tiếp theo
Begin
Phân chia Frame tín hiệu đầu
vào
Tinh cong suat nhieu trung bình N ban
đầu
SpeechFlag==0?
I=0;Nhập frame đầu tiên
VAD
Tính Priori SNR
Y=biến đổi FFT cho các frame
Tính Gain Function G
X(:,i)=G.*Y(:,i);tin hiệu sạch
X
= X
=
Đ
S
Đ
Đ
I<number of frame
Thực hiên IFFT và nối các
frame X
Chương 4: Thực hiện và đánh giá các thuật toán
SVTH: Nguyễn Thị Ngọc Diệp Trang 57
4.5 Thực hiện thuật toán
Chúng ta thực hiện xử lý các file âm thanh bị nhiễu, với 2 loại nhiễu đó là
nhiễu do tiếng xe hơi và nhiễu do người nói xung quanh tương ứng với SNR
=10dB
Dạng sóng và phổ của tín hiệu sạch:
Hình 4.4 dạng sóng và spectrogram của tín hiệu sạch
Dạng sóng và spectrogram của tín hiệu bị nhiễu xe hơi với SNR = 10dB
- Trước khi xử lý nhiễu:
Hình 4.5 Dạng sóng và phổ của tín hiệu bị nhiễu xe hơi với SNR = 10dB
- Sau khi xử lý triệt nhiễu bằng thuật toán Spectral Subtraction
Chương 4: Thực hiện và đánh giá các thuật toán
SVTH: Nguyễn Thị Ngọc Diệp Trang 58
Hình 4.6 Dạng sóng và spectrogram của tín hiệu sau khi xử lý nhiễu xe hơi
bằng SS với SNR = 10dB.
- Sau khi xử lý bằng thuật toán Wiener filtering
Hình 4.7 Dạng sóng và spectrogram của tín hiệu sau khi xử lý nhiễu xe hơi
bằng WF với SNR = 10dB.
¾ Nhận xét sơ bộ
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.
Chương 4: Thực hiện và đánh giá các thuật toán
SVTH: Nguyễn Thị Ngọc Diệp Trang 59
• 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
4.6 Đánh giá chất lượng tiếng nói đã được xử lý
4.6.1 Cơ sở dữ liệu cho việc đánh giá
Là 30 câu thoại được ghi âm trong phòng thí nghiệm theo chuẩn của IEEE
[32] là tín hiệu thoại sạch. Mỗi câu trung bình khoảng 2s. Nội dung các câu đều
có sự cân bằng về mặt ngữ âm nên có thể thấy được sự tác động của thuật toán
lên tất cả các âm vị có thể có trong tín hiệu thoại
Các tín hiệu thoại đó sau đó được cộng nhiễu vào ( gồm có loại nhiễu có
trong thế giới thực, với các tỷ số SNR khác nhau. Như vậy ta đã có sẵn tín hiệu
sạch và tín hiệu bị nhiễu theo chuẩn chung.
Hai loại nhiễu được dùng là: nhiễu xe hơi (car noise) được dùng làm dữ liệu
chính để xử lý và đánh giá, và nhiễu do những người nói xung quanh (babble
noise) để kiểm tra tác động của thuật toán trong môi trường nhiễu khác, với các
SNR 0dB, 5dB, 10dB, 15dB.
Sau khi tăng chất lượng tiếng nói từ các tín hiệu tiếng nói bị nhiễu bằng các
thuật toán đã nghiên cứu là SS và WF, có được tín hiệu tiếng nói đã được tăng
cường. Như vậy ta có được cơ sở dữ liệu cho việc đánh giá chất lượng của tín
hiệu tiếng nói sau khi đã được tăng cường.
4.6.2 Tổng quan về quy trình đánh giá
Để đánh giá chất lượng tiếng nói sau khi đã xử lý sử dụng cả hai phương
pháp đánh giá dựa trên chất lượng do người nghe cảm nhận được (SE) và đánh
giá dựa trên các phép đo thuộc tính của tín hiệu (OE). Trong đồ án này phương
pháp đánh giá chính được dùng là OE, SE được dùng làm phương pháp đánh giá
bổ sung và được thực hiện bởi các thành viên trong nhóm thực hiện .
Do đặc tính của các thuật toán giảm nhiễu được sử dụng trong đề tài là có
các thống số ảnh hưởng đến cách thức xử lý nếu chỉnh các thông số này ta sẽ có
Chương 4: Thực hiện và đánh giá các thuật toán
SVTH: Nguyễn Thị Ngọc Diệp Trang 60
các kết quả khác nhau có thể tốt, có thể xấu đối với một file âm thanh. Để có thể
có các thông số tốt nhất và có các nhận xét về tính ổn định, thuật toán tốt hay xấu
ta phải thực hiện quá trình tinh chỉnh thông số để được các kết quả khác nhau từ
đó so sánh và đưa ra các thông số tối ưu nhất có thể. Quá trình này là thực hiện
đánh giá thuật toán.
Hình 4.8 Quy trình thực hiện đánh giá
4.6.3 Kiểm tra độ tin cậy của các phương pháp đánh giá
Các đánh giá OE được dùng là : SNRseg, IS, LLR, WSS.
Kiểm tra độ ổn định của các phương pháp đánh giá trên bằng cách so sánh
tín hiệu tiếng nói bị nhiễu xe hơi và nhiễu người nói xung quanh chưa được xử lý
với tín hiệu sạch
Các thuật toán giảm nhiễu
Nhận xét
Đánh giá SE Đánh giá OE
Chỉnh sửa các thông số của
thuật toán giảm nhiễu
Tiếng nói đã đợc
giảm nhiễu
Tín hiệu sạch
Chương 4: Thực hiện và đánh giá các thuật toán
SVTH: Nguyễn Thị Ngọc Diệp Trang 61
Hình 4.9. Đồ thị kiểm tra độ ổn định của đánh giá OE đối với nhiễu xe hơi
Hình 4.10. Đồ thị kiểm tra độ ổn định của đánh giá OE đối với nhiễu người
nói xung quanh
Kết quả kiểm tra cho thấy
Chương 4: Thực hiện và đánh giá các thuật toán
SVTH: Nguyễn Thị Ngọc Diệp Trang 62
¾ Đối với đánh giá SNRseg đồ thị đi lên theo chiều tăng dần của SNR
¾ Đối với đánh giá LLR, IS và WSS thì đồ thị có hướng đi xuống và
variance cũng giảm dần theo chiều tăng dần của SNR chứng tỏ phổ
của tín hiệu có SNR cao gần với phổ tín hiệu sạch hơn
Qua kiểm tra thấy được các phương pháp đánh giá trên đều ổn định và đủ
tin cậy để thực hiện đánh giá đối với các tín hiệu tiếng nói đã qua xử lý.
4.6.4 Thực hiện đánh giá
Trong quá trình nghiên cứu và triển khai thuật toán ta nhận thấy các thông
số sau ảnh hưởng lớn đến thuật toán:
- NoiseMargin :là ngưỡng để nhận biết nhiễu trong VAD .Mặc định của
thuật toán Noise margin sẽ là 3db.
- IS :hệ số chỉ thời gian không có tiếng nói đầu tiên trong mỗi file âm
thanh được dùng để tính toán nhiễu ban đầu. Do khi kiểm tra những đoạn im lặng
ban đầu trong các file sạch ta nhận thấy rằng đối với từng file thì từ 0.15s đến
0.2s là những đoạn im lặng.Ta lựa giá trị IS là 0.2
- Đối với thuật toán WF thì ta có thêm hệ số alpha là hệ số làm trơn trong
phương pháp ước lượng tỉ số Priori SNR.
-Đối với thuật toán SS thì có hệ số Gramma là hệ số quyết định nhiễu sẽ
được trừ theo biên độ hay năng lượng. Ta chọn giá trị Gramma là 1 tức là thuật
toán Subtraction sẽ trừ nhiễu theo biên độ.
4.6.4.1 Đánh giá thuật toán với các hệ số dự đoán ban đầu
Hệ số IS=0.2, NoiseMargin=3
¾ Đánh giá OE
Sau khi thực hiện thuật toán SS và WF với các thông số alpha=0.9,
gamma=1, NoiseMargin=3,IS=0.2 ta có đồ thị của đánh giá bằng SNR, LLR, IS,
WSS như sau
Chương 4: Thực hiện và đánh giá các thuật toán
SVTH: Nguyễn Thị Ngọc Diệp Trang 63
Hình 4.11 Đồ thị đánh giá Objective với hệ số IS=0.2, NoiseMargin=3
Theo đồ thị ta có các nhận xét như sau :
Đối với thông số đánh giá SNR cho ta thấy tỉ số SNR đã có tăng hơn so với
file chưa xử lý. Chứng tỏ thuật toán đã loại trừ môt phần nhiểu ra khỏi file sạch.
Nhưng đối với so sánh IS, LLR, WSS thì ta lại thấy file chưa xử lý lại có kết quả
tốt hơn file đã xử lý. Do đánh giá IS, LLR, WSS là so sánh khoảng cách phổ giữa
file đã xử lý và file sạch rồi tính giá trị trung bình nên ta có thể dự đoán là năng
lượng của file đã xử lý lệch rất nhiều với file sạch có thể do thuật toán tồi hoặc là
năng lượng tín hiệu sạch bị nén một phần .
¾ Đánh giá SE
Sau khi kiểm tra các file đầu ra bằng phương pháp nghe thử ta có các nhận
xét sau đây: Một số file đầu ra của các thuật toán SS và WF có mức độ nén nhiễu
khác cao dẫn tới việc mất một phần tiếng nói.
¾ Kết luận và tối ưu các thông số cho thuật toán VAD
Qua các nhận xét về đánh giá OE và SE ta rút ra kết luận như sau:
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.
Chương 4: Thực hiện và đánh giá các thuật toán
SVTH: Nguyễn Thị Ngọc Diệp Trang 64
Đố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 được dùng trong đề tài : giữ cứng giá trị IS( đoạn im lặng) để cài đặt
nhiễu là không phù hợp cho tất cả mọi file âm thanh.
Đố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ỏ do khác 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. Đó 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.15s, hệ số NoiseMargin là 2.
Hệ số IS=0.15 ,hệ số NoiseMargin=2
¾ Đánh giá OE
Sau khi thuật hiện lại thuật toán SS và WF với hệ số IS=0.15,hệ số
NoiseMargin=2 ta có đồ thị đánh giá IS, SNR, WSS, LLS như sau :
Hình 4.12 Đồ thị đánh giá Objective với hệ số IS=0.15, NoiseMargin=2.
Chương 4: Thực hiện và đánh giá các thuật toán
SVTH: Nguyễn Thị Ngọc Diệp Trang 65
Ta nhận thấy thông số SNR tương tự như trường hợp IS = 0.2 và
NoiseMargin=2. Nhưng ta các giá trị LLR và IS của so sánh tín hiệu đã xử lý
bằng SS và WF đã giảm, trong đó giá trị IS đã giảm đáng kể.Đặc biệt với thuật
toán SS giá trị IS đã xuống dưới ngưỡng của file nhiễu. Điều đó chứng tỏ các
thông số này thật sự tốt. Nhưng các giá trị IS còn rât lớn đối với thuật toán WF
và các mức SNR 0dB và 10dB và các giá trị IS của thuật toán Wiener vẫn còn
nằm trên giá trị IS của file chưa xử lý và file sạch.
¾ Đánh giá SE
Sau khi nghe thử các file đầu ra của thuật toán SS và thuật toán WF. Ta
nhận thấy thuật toán SS thật sự làm viêc tốt đã hạ được mức nhiễu của các file
âm thanh. Nhưng đối với thuật toán WF mặc dù đã hạ được mức nhiễu của các
file âm thanh nhưng một số file vẫn bị mất tiếng nói điều đó chứng tỏ hệ số của
thuật toán WF chưa tốt.
¾ Kết luận
Kết hợp giữa nhận xét trong OE và SE ta có kết luận là với hệ số IS=0.15
và NoiseMargin=2 thì thuật toán VAD làm việc thật sự tối ưu cho nhiễu xe hơi.
Và hệ số của thuật toán Wiener chưa tối ưu đó chính là hệ số alpha.
4.6.4.2 Tối ưu hệ số alpha cho thuật toán WF
Ta đánh giá hệ số alpha cho thuật toán WF qua các trường hợp hệ số
alpha=0.5, 0.8,0.9 với IS=0.15 và NoiseMargin = 2 để chọn ra trường hợp tốt
nhất.
¾ Đánh giá objective
Chương 4: Thực hiện và đánh giá các thuật toán
SVTH: Nguyễn Thị Ngọc Diệp Trang 66
Hình 4.14 Đồ thị đánh giá objective với hệ số alpha=0.5, 0.8,0.9 với
IS=0.15 và NoiseMargin = 2
Qua đồ thị SNR ta nhận thấy hệ số alpha càng lớn thì mức nhiễu bị nén
càng lớn (tỉ số SNR lớn). Qua đồ thị IS ta thấy hệ số alpha càng nhỏ thì tác động
vào file tỉ số SNR càng lớn càng tốt. Giá trị alpha=0.9 tác động vào file có
SNR=10 dB cho ra file output có khoảng cách phổ xa hơn so với file sạch và file
nhiễu. Còn lại các giá trị alpha khác và alpha=0.9 với các mức file nhiễu có tỉ số
SNR khác đều cho ra kết quả tốt hơn so với file sạch và file nhiễu.Và hệ số alpha
bằng 0.5 có vẻ rất tốt trên đồ thị is đặc biêt là với file nhiễu có tỉ số SNR=15dB
tác động rất ổn định (variant nhỏ).
¾ Đánh giá subjective
Qua việc kiểm tra subjective ta nhận thấy với hệ số alpha=0.5 tác động rất
ổn định và tốt với file nhiễu có mức SNR=15dB cho ra file rất sạch. Nhưng với
các mức dB khác thì ko tốt bằng so với các hệ số alpha khác, nhiễu còn tương đối
nhiều.Đối với hệ số alpha là 0.9 thì với mức file nhiễu có SNR=10dB tác động
không tốt, một số file cả tín hiệu sạch cũng bị nén.
¾ Kết luận
Chương 4: Thực hiện và đánh giá các thuật toán
SVTH: Nguyễn Thị Ngọc Diệp Trang 67
Qua các nhận xét về đánh giá SE và OE ta rút ra kết luận là hệ số alpha=0.8
là hệ số tối ưu nhất cho tất cả các trường hợp có thể nó nén nhiễu không nhiều
bằng hệ số alpha nhưng không nén luôn tín hiệu sạch, bảo đảm tín hiệu vẫn còn
nghe tốt, nhiễu bị hạ xuống tương đối nhiều.
Ta có thêm nhận xét về cách đánh giá OE là không phải lúc nào cũng hoàn
toàn chính xác như đối với hệ số alpha=0.5 trên đồ thị IS nó là tốt nhất nhưng với
việc kiểm tra bằng SE thì nó chỉ tốt nhất trong trường hợp 15dB hay đối với đồ
thị SNR thì hệ số alpha tốt nhất nhưng có một số trường hợp tín hiệu sạch đã bị
nén luôn.
4.6.4.3 Hệ số gamma cho thuật toán SS
Vì thuật toán SS là thuật toán trừ nhiễu nên ta có 2 cách trừ nhiễu là trừ
theo năng lượng và trừ theo biên độ nên ta cung cấp hệ số gamma nếu gamma=1
thì trừ theo biên độ gamma =2 thì trừ theo năng lượng. Sau đây ta sẽ đánh giá và
tìm ra cách trừ nào là tốt nhất( gamma=1 hay 2).
¾ Đánh giá OE
Hình 4.15 Đồ thị đánh giá objective với hệ số gamma = 1 và gamma = 2.
Chương 4: Thực hiện và đánh giá các thuật toán
SVTH: Nguyễn Thị Ngọc Diệp Trang 68
Ta nhận thấy đối với cả thông số SNR và IS thì hệ số gamma=2 tức là trừ
theo năng lượng đều tốt hơn ngoại trừ đối với file nhiễu có SNR là 10dB.Và
gamma=1 hay gamma = 2 đều đưa ra đồ thị tốt hơn đồ thị giữa file nhiễu với file
sạch
¾ Đánh giá SE
Sau khi kiểm tra SE ta nhận thấy rằng đối với hệ số gamma=2 tức là trừ
theo năng lượng thì nhiễu bị nén rất ít, file đầu ra không tốt bằng hệ số
gamma=1.
¾ Kết luận
Sau khi so sánh OE và SE ta có kết luận là mặc dù trên đồ thị phản ánh hệ
số gamma=2 tốt hơn nhưng trên thực tế thì hệ số gamma=1 mới tốt hơn.Chứng tỏ
việc đánh giá OE như nói ở trên không phải lúc nào cũng đúng.
Ta chọn hệ số gamma tối ưu là 1.
4.6.4.4 Đánh giá thuật toán sau khi đã tối ưu
Sau khi thực hiện một loạt các hệ số thử nghiêm ta chọn ra hệ số tối ưu là :
-Thuật toán VAD: hệ số IS=0.15, NoiseMargin = 2.
-Thuật toán WF hệ số alpha=0.8.
-Thuật toán SS trừ theo biên độ.
Và việc đánh giá OE chỉ đánh giá về mặt toán không phải lúc nào cũng
đúng , đánh giá OE phải đi kèm với đánh giá SE.
Chương 4: Thực hiện và đánh giá các thuật toán
SVTH: Nguyễn Thị Ngọc Diệp Trang 69
Hình 4.16 Đồ thị đánh giá với IS=0.15 NoiMargin= 2 và alpha = 0.8 cho
thuật toán WF, gama=1 cho thuật toán SS.
4.6.4.5 Đánh giá độ ổn định của thuật toán trong môi trường nhiễu khác
¾ Đánh giá OE
Thực hiện nghe đối với tín hiệu đã qua xử lý thấy rằng một số file tín hiệu
có những đoạn chỉ nghe được nhiễu chứ không nghe được tiếng nói. Điều này
được giải thích là do nhiễu người nói có năng lượng nhiễu tương đương với năng
lượng tiếng nói, trong một số file thì tín hiệu tiếng nói có mức năng lượng thấp
hơn mức năng lượng của nhiễu nên đoạn tiếng nói đó bị trừ mất chỉ còn lại nhiễu.
¾ Đồ thị
Áp dụng các thông số tối ưu đối với nhiễu xe hơi cho nhiễu người nói xung
quanh có đồ thị đánh giá như sau
Chương 4: Thực hiện và đánh giá các thuật toán
SVTH: Nguyễn Thị Ngọc Diệp Trang 70
Hình 4.17 Đồ thị đánh giá OE với nhiễu người nói xung quanh.
¾ Nhận xét
Nhận xét theo đồ thị đối với cả bốn phép đánh giá ta thấy đối với nhiễu
người nói xung quanh thì SS có vẻ xử lý tốt hơn WF.
Nhưng đối với cả ba phương pháp đánh giá đầu tiên thì cả ba giá trị WSS,
LLR, IS của các tín hiệu đã được xử lý so với tín hiệu sạch lại không tốt bằng giá
trị của tín hiệu nhiễu chưa xử lý so với tín hiệu sạch (so sánh của tín hiệu đã xử
lý có giá trị lớn hơn).
Riêng với phép đánh giá IS ta thấy thuật toán xử lý nhiễu có tác động tốt
đối với nhiễu 0dB và 5dB. Bên cạnh đó variant còn lớn vì có một số file có giá trị
so sánh lớn hơn giá trị của các file khác rất nhiều (điều này cũng xảy ra đối với
car noise) được thể hiện trong bảng giá trị IS [matlab file]. Lý giải cho điều này
là do một số tín hiệu bị nhiễu đột biến.
¾ Đánh giá SE
Khi thực hiện nghe đối với các file âm thanh bị nhiễu người nói xung quanh
được xử lý bằng SS và WF thì có một số đoạn tiếng nói bị mất, chỉ nghe được
nhiễu chứ không nghe được tiếng nói.
Chương 4: Thực hiện và đánh giá các thuật toán
SVTH: Nguyễn Thị Ngọc Diệp Trang 71
Điều này được lý giải là do nhiễu người nói xung quanh có mức năng lượng
tương đương với mức năng lượng của tiếng nói nên một số file âm thanh có đoạn
tiếng nói có mức năng lượng thấp hơn mức năng lượng của nhiễu thì tiếng nói đó
sẽ bị trừ mất chỉ còn lại nhiễu.
¾ Nhận xét chung
Khi đem các thông số tối ưu để xử lý nhiễu xe hơi áp dụng với người nói
xung quanh thì kết quả không tốt.
Đối với nhiễu người nói xung quanh thì thuật toán SS tác động tớt hơn WF.
4.6.5 Kết luận chương
Qua kết quả đánh giá bằng OE và SE đưa ra được kết luận là :
- Đối với từng loại nhiễu khác nhau thì tác động của các thuật toán tăng
cường là khác nhau.
- Đối với từng mức nhiễu khác nhau thì thuật toán cũng tác động cũng
khác nhau.
Đồ án tốt nghiệp
SVTH: Nguyễn Thị Ngọc Diệp Trang 72
TÀI LIỆU THAM KHẢO
[1]. Ramabadran, T.,Ashley, J., and McLaughin, M.(1997), Background noise
suppression for speech enhancement and coding, Proc. IEEE Workshop Speech
Coding Telecommun.
[2]. Ths.Hoàng Lê Uyên Thục, Giáo trình xử lý tín hiệu số, Đại học Bách Khoa –
Đại học Đà Nẵng.
[3].Hu, Y. and Loizou, P(2006), Subjective comparison of speech enhancement
algorithms, Proc. IEEE Int.Conf. Acoust. Speech Signal Process, I.
[4]. Philippos C.Loizou, Speech Enhancement Theory and Practice,pp. 2-7.
[5]. Long, M. (2005), Dinner Conversation (An oxymoron?), Acoustics
Today,l(1), pp. 25-27.
[6]. Lombard, E.(1911), Le signe de lelevation de la voix, Ann. Mal. Oreil.
Larynx.,37, 101-119.
[7]. Nguyễn Quốc Trung, Xử lý tín hiệu số - tập 1, NXB Khoa học kĩ thuật.
[8]. Lim, J. and Oppenheim, A.V.(1979), Enhancement and bandwidth
compression of noisy speech, Proc. IEEE, 67(12),pp. 1586-1604.
[9]. Weiss, M., Aschkenasy, E., and Parsons, T.(1974), Study and the
development of the INTEL technique for improving speech intelligibility,
Technical Report NSC-FR/ 4023.
[10]. Boll, S.F. (1979), Suppression of acoustic noise in speech using spectral
subtraction, IEEE Trans, Acoust. Speech Signal Process.,27(2), 113-120.
[10]. Philippos C.Loizou, Speech Enhancement Theory and Practice,pp. 46-57.
[11] “Methods for Subjective Determination of Transmission Quality”, ITU_T
Recommendation P.800, August 1996.
[12] Philipos C.Loizou, “Speech Enhancement Theory and Practice”, CRC Press,
Taylor and Francis Group.
[13] Friedrich Schafer, “Artificial Bandwidth Extension of Narrowband Speech”,
Signal Processing and Speech Communication Lab, Technical University Graz.
Đồ án tốt nghiệp
SVTH: Nguyễn Thị Ngọc Diệp Trang 73
[14] Hansen J. and Pellon B. , “An effective quality evaluation protocol for
Speech Enhancement algorithms”, Proc. Int Conf. Spoken Language Process,
1998.
[15]
[16] Beey Y. , Shpiro Z. , Simchony T. , Shatz L. and Piasetzky J., “An efficient
variable_bit_rate_low_delay (VBR_LP_CELP) code” , New York, Marcel
Pekker, 1990.
[17] Yi Hu and Philipos C. Loizou, “Evaluation of Objective Quality Measures
for Speech Enhancement”, IEEE.
[18] Klatt D., “Prediction of perceived phonetic distance from critical band
spectra”, Proc IEEE Int. Conf. Acoust. Speech Signal Process.
[19] Kitawaki N., Nagabuchi H., and Itoh K., “Objective Evaluation for low
bit_rate Speech Coding systems”, IEEE J, Sel. Areas Commun.
[20] Quackenbush S., Barnwell T. and Clements M., “Objective Measure of
Speech Quality”, Englewood Cliffs NJ: Prenticư Hall.
[21]. Boll, S.F(1979), Suppression of acoustic noise in speech using spectral
subtraction, IEEE Trans. Acoust. Speech Signal Process., 27(2), 113-120.
[22]. Paliwal, K. and Alsteris, L.(2005), On the usefulness of STFT phase
spectrum in human listening tests, Speech Commun., 45(2), 153-170.
[23]. Weiss, M., Aschkenasy, E., and Parsons, T., (1974), Study and the
Development of the INTEL Technique for Improving Speech Intelligibility,
Technical Report NSC-FR/4023, Nicolet Scientific Corporation.
[24]. Deller, J., Hansen, J.H.L., and Proakis, J. (2000), Discrete –time Processing
of Speech Signals, New York : IEEE Press.
[25]. Guastafsson, H., Nordholm, S., and Claesson, I.(2001), Spectral subtraction
using reduced delay convolution and adaptive averaging, IEEE Trans. Speech
Audio Process., 9(8), 799-807.
[26]. Philippos C.Loizou, Speech Enhancement Theory and Practice,pp. 100.
Đồ án tốt nghiệp
SVTH: Nguyễn Thị Ngọc Diệp Trang 74
[27]. Paliwal, K. and Alsteris, L.(2005), On the usefulness of STFT phase
spectrum in human listening tests, Speech Commun., 45(2), 153-170.
[28]. Lim, Oppenheim, Speech Enhancement Using a Soft-Decision noise
Suppression EEE Trans. Acoustics, Speech and Signal Processing, vol. assp-28,
no. 2, april 1980.
[29]. Y. Ephraim and D. Malah, Speech Enhancement Using a Minimum Mean-
Square Error Short-Time Spectral Amplitude Estimator, IEEE Trans. Acoustics,
Speech and Signal Processing, vol. 32, no. 6, pp. 1109–1121, December 1984.
[30]. P. Scalart and J. Vieira-Filho, “Speech enhancement based on a priori signal
to noise estimation,” in Proc. 21st IEEE Int. Conf. Acoust. Speech Signal
Processing, Atlanta, GA, May 1996, pp. 629–632.
[31]. Dominic K. C. Ho, Speech Enhancement : concept and methodology, Demo
prepared by Tong Wang, University of Missouri-Columbia.
[32]
Đồ án tốt nghiệp
SVTH: Nguyễn Thị Ngọc Diệp Trang 75
KẾT LUẬN ĐỒ ÁN VÀ HƯỚNG PHÁT TRIỂN ĐỀ TÀI
Chất lượng của tiếng nói bị suy giảm do sự tác động của nhiễu trong môi
trường xung quanh là một vấn đề quan trọng cần phải được giải quyết. Việc tìm
ra các phương pháp để triệt nhiễu và giảm nhiễu trong tiếng nói luôn luôn đề tài
được quan tâm rất nhiều. Trong các dịch vụ truyền thông với phương tiện ngôn
ngữ là tiếng nói thì việc tăng cường, cải thiện chất lượng tiếng nói đã bị nhiễu là
rất thiết, giúp cho người nghe có thể nghe rõ và đúng những gì người nói đã nói.
Đồ án đã thực hiện được các vấn đề :
- Tìm hiểu và nghiên cứu các phương pháp cải thiện chất lượng tiếng
nói, nhưng tập trung vào 2 thuật toán đã có trong Speech enhancement
là : Spectral Subtraction và Wiener Filtering
- Xây dựng được chương trình thực hiện xử lý nhiễu trong các file âm
thanh đã bị nhiễu dựa trên 2 thuật toán : Spectral Subtraction và
Wiener Filtering.
- Thực hiện và đánh giá tính hiệu quả của 2 thuật toán trong các môi
trường nhiễu và mức độ nhiễu khác nhau, từ đó đưa ra các biện pháp
tối ưu hóa các thuật toán. Kết quả đạt được cho thấy WF là thuật toán
giảm nhiễu tốt hơn SS. Các thuật toán giảm nhiễu có hiệu quả khác
nhau đối với từng môi trường nhiễu khác nhau
Tuy nhiên đồ án vẫn chưa giải quyết hết được các vấn đề trong Speech
enhancement nên hướng phát triển của đề tài trong tương lai sẽ là :
- Tìm hiểu, nghiên cứu và xây dựng các chương trình thực hiện xử lý
nhiễu trong tiếng nói dựa trên các thuật toán khác trong Speech
enhancement.
- Nghiên cứu và đưa ra thuật toán mới về xử lý nhiễu và triệt nhiễu trong
Speech enhancement.
Phát triển chương trình đã thực hiện đối với các dịch vụ ứng dụng thời gian
thực và các dịch vụ trong lĩnh vực truyền thông đa phương tiện như : thoại, âm
nhạc, truyền hình hội nghị.
Đồ án tốt nghiệp
SVTH: Nguyễn Thị Ngọc Diệp Trang 76
PHỤ LỤC
Toàn bộ mã nguồn của chương trình thực hiện được lưu trữ trên đĩa CD
đính kèm.
Các file đính kèm theo tài liệu này:
- do_an_tot_nghiep_xu_ly_tieng_noi_9417.pdf