Bài viết Một phương pháp mô hình hóa nhiễu để tăng cường chất lượng nhận dạng tiếng nói tập trung vào tìm hiểu cách tiếp cận thứ 3 (data augmentation) và tìm cách nâng cao chất lượng của mô hình. Hiện tại ta bổ sung rất nhiều loại noise khác nhau với cường độ alpha khác nhau vào dữ liệu để tăng độ tổng quát.
Trang 1MỘT PHƯƠNG PHÁP MÔ HÌNH HÓA NHIỄU
ĐỂ TĂNG CƯỜNG CHẤT LƯỢNG NHẬN DẠNG TIẾNG NÓI
Đỗ Văn Hải
Khoa Công nghệ Thông tin, Trường Đại học Thủy Lợi, email: haidv@tlu.edu.vn
1 GIỚI THIỆU CHUNG
Đối với nhận dạng tiếng nói nói riêng
cũng như lĩnh vực nhận dạng mẫu nói chung
thì dữ liệu thực tế thử nghiệm (test) càng
giống với dữ liệu huấn luyện (train) thì càng
tốt Tuy nhiên, điều này hiếm khi xảy ra
trong thực tế Do đó luôn có sự sai khác
(mismatch) giữa dữ liệu huấn luyện (dẫn
xuất là mô hình) và dữ liệu test
Để tăng chất lượng nhận dạng, ta cần thu
hẹp sự sai khác này Cơ bản có các cách tiếp
cận sau:
Feature adaptation: tức thay đổi dữ liệu
test về gần với mô hình hơn Ta có thể xây
dựng các biến đổi (transform) và các dữ liệu
khác nhau sau khi đi qua biến đổi này sẽ
sang một không gian chung (kể cả tập train
và test) Các bộ dữ liệu khác nhau sẽ có các
biến đổi khác nhau Một ví dụ điển hình của
trường hợp này là kỹ thuật fMLLR [1] dùng
phổ biến trong DNN training
Model adaptation: tức thay đổi model
huấn luyện về gần với tập test Tức với các
dữ liệu khác nhau, một số tham số của mô
hình sẽ thay đổi theo một số tiêu chí nào đó
ví dụ maximum likelihood, maximum a
posterior, Với mô hình GMM (Gaussian
Mixture Model), kỹ thuật phổ biến đó là
MAP (Maximum a posterior) [2], với mô
hình DNN (Deep Neural Network) có nhiều
biến thế được thực hiện bằng cách xây dựng
các kiến trúc mạng nơ ron đặc biệt để có thể
thích nghi (adapt) nhanh với các bộ dữ liệu
test khác nhau [3]
Training data augmentation: cách thực
hiện ở đây là làm tăng độ tổng quát của dữ
liệu huấn luyện với hi vọng có thể bao phủ được hầu hết các cases của dữ liệu test Ví dụ
ta có thể thay đổi tốc độ nhanh chậm của dữ liệu huấn luyện [4] ví dụ từ 1 tín hiệu x(t) ta
có thể sinh ra thành 3 version x(0.9t), x(t), x(1.1t) và bổ sung vào tập train Hoặc để mô phỏng môi trường vang, nhiễu ta có thể thêm vang bằng cách mô phỏng các đáp ứng xung (RIR) của các phòng phổ biến, bổ sung các loại noise thông dụng [5] Cách tiếp cận này rất phù hợp với triển khai thực tế vì ta chỉ cần huấn luyện 1 lần và khi triển khai không cần train hay adapt lại Do đó đáp ứng được yêu cầu về thời gian thực hiện Tuy nhiên nó cũng có nhược điểm là thời gian huấn luyện tăng lên nhiều lần
Trong nghiên cứu này, chúng ta sẽ tập trung vào tìm hiểu cách tiếp cận thứ 3 (data augmentation) và tìm cách nâng cao chất lượng của mô hình Hiện tại ta bổ sung rất nhiều loại noise khác nhau với cường độ alpha khác nhau vào dữ liệu để tăng độ tổng quát x'(t) = x(t) + alpha*n(t)
Trong đó x(t) là tín hiệu tiếng nói gốc, n(t)
là tín hiệu noise, x’(t) là tín hiệu tiếng nói được tạo ra, alpha là hệ số thêm nhiễu
Để nâng cao chất lượng của kỹ thuật data augmentation ta cần áp dụng 2 cách thức sau: Chọn loại noise phù hợp
Xây dựng thuật toán mới cho data augmentation để mô hình hóa noise tốt hơn Tại Trung tâm Không gian Mạng Viettel (VTCC), chúng tôi đã chọn lọc ra nhiều loại noise khác nhau được thu thập từ các nguồn
từ Internet cũng như thu âm trực tiếp tại các môi trường phổ biến như phòng họp, sảnh văn phòng, đường phố, bến tàu xe,… Khi bổ
Trang 2sung những loại noise này vào cơ sở dữ liệu
tiếng nói để huấn luyện mô hình đã giúp tăng đáng kể sự sự ổn định của mô hình nhận dạng trong các điều kiện khác nhau
Hình 1 Cách thức gán nhãn noise cho transcript
Ở các nghiên cứu trên ta đơn thuần bổ
sung nhiễu vào tín hiệu audio trong khi
transcript (văn bản tương ứng của đoạn
audio) ta vẫn giữ nguyên Trong nghiên cứu
này, chúng tôi đề xuất một phương án tăng
cường chất lượng nhận dạng bằng cách mô
hình hóa các loại noise khác nhau bằng cách
bổ sung cả vào transcript của dữ liệu tương
ứng các noise tag
2 XÂY DỰNG PHƯƠNG PHÁP MÔ
HÌNH HÓA NHIỄU
Như đã nói, các phương pháp data
augmentation truyền thống audio có thể
được bổ sung noise với các loại, cường độ
khác nhau nhưng phần transcript vẫn không
đổi Điều gì sẽ xảy ra trong hệ thống khi làm
như vậy? Mô hình sẽ học tất cả các tín hiệu
noise khác nhau là lớp SIL (silence) Do đó
khi số lượng noise tăng lên, đa dạng hơn,
cường độ lớn lên thì model cho class SIL trở
nên quá đơn giản so với sự đa dạng của dữ
liệu đầu vào mà nó cần mô hình hóa Vả lại
bản thân HMM topology của SIL được sinh
ra là cho SIL và nhiễu nhỏ chưa chắc đã phù
hợp với tất cả các tín hiệu noise khác Giải
pháp được đề xuất đó là, ta phải tìm cách
mô hình hóa được các loại noise khác nhau
chứ không để chung vào model SIL như
trước nữa Cách tiếp cận này cũng phù hợp
như phương pháp "chia để trị" được sử dụng
thành công trong nhận dạng speech attribute
[6] khi nhận dạng một đối tượng quá rộng,
đa dạng, ta chia đối tượng đó thành các
sub-objects rồi xây dựng mô hình riêng, nhận
dạng xong, tập hợp kết quả lại
Với phương pháp này ta cần biết loại noise
ta bổ sung vào audio là gì Tuy nhiên làm sao
ta có thể gán nhãn noise tag vào transcript
Do noise được bổ sung trên toàn bộ audio file nên ta không thể bổ sung noise tag vào tất cả transcript Với giả thiết là đầu và cuối mỗi câu là silence (điều này ta hoàn toàn có thể điều khiển được được bằng cách trèn thêm (padding) 1 đoạn nhỏ silence vào đầu vào cuối mỗi câu) Do vậy, ta có thể gán noise tag vào đầu và cuối mỗi câu Hình 1
mô tả 1 ví dụ về việc gán noise vào cả audio
và transcript của dữ liệu huấn luyện
Sau khi thực hiện gán noise cả audio và transcript theo cách đề xuất ở trên, ta cần đặc
tả các loại noise trên được mô hình hóa như thế nào Trong báo cáo này để đơn giản, ta chỉ biểu diễn mỗi loại noise bằng một phoneme và có topology giống như các non-silence phoneme khác
Để tránh việc lúc nhận dạng cho ra các noise tag, trong lúc tạo mô hình ngôn ngữ ta không cho văn bản có các noise tag vào và không sử dụng word-list có chứa noise tag
đó Điều này giúp ta chỉ mô hình hóa về mặt
âm học (acoustic) đối với noise trong khi không mô hình hóa chúng trong mô hình ngôn ngữ
3 THỬ NGHIỆM
Việc thử nghiệm được thực hiện bằng cách sử dụng 200 giờ dữ liệu huấn luyện Có
3 mô hình được huấn luyện từ cùng tập dữ liệu này:
S1: mô hình không áp dụng kỹ thuật data augmentation
Trang 3 S2: mô hình áp dụng kỹ thuật data
augmentation bằng cách bổ sung noise vào
audio data của dữ liệu huấn luyện
S3: mô hình đề xuất sử dụng kỹ thuật
data augmentation bằng cách bổ sung noise
vào audio data và noise tag vào transcript (noise modelling)
Test set Model
SNR=0 dB
Vivos
s3 addnoise + noise
Bảng 2- Sai số từ - WER (%) của phương pháp sử dụng và không sử dụng noise modelling
với các tập test khác nhau
Ta sử dụng 4 bộ test khác nhau:
Tập test vlsp2019 được đưa ra bởi tổ
chức VLSP (Vietnamese Language and
Speech Processing)
Tập Vivos của Đại học Quốc gia Hồ Chí
Minh Tập dữ liệu này được bổ sung nhiễu
với các cường độ khác nhau Tỷ số tín hiệu
trên nhiễu (SNR) từ 0dB đến 5dB (SNR càng
cao, tín hiệu càng ít nhiễu)
Bảng 2 trình bày sai số từ (càng thấp càng
tốt) khi thử nghiệm 4 bộ test này với 3 mô
hình ở trên Ta thấy rằng mô hình S2 bằng
việc áp dụng kỹ thuật data augmentation đã
làm giảm đáng kể sai số nhận dạng so với mô
hình S1 trên tất cả các tập test Mô hình đề
xuất S3 đơn giản chỉ bằng mô hình hóa noise
bằng cách bổ sung các noise tag trong
transcript đã làm giảm sai số nhận dạng so
với mô hình S2 đặc biệt trong những trường
hợp nhiễu lớn (SNR thấp)
4 KẾT LUẬN
Bài báo này đã trình bày những nghiên
cứu và thử nghiệm để xây dựng hệ thống
nhận dạng tiến nói miễn nhiễm với các môi
trường khác nhau bằng cách tác động lên các
các loại noise cũng như cải tiến thuật toán
data augmentation Thay vì đơn thuần như
trước ta chỉ bổ sung noise mà không quan tâm đó là noise gì, thì nay ta đã thêm thông tin về loại noise để có thể mô hình hóa được chúng chính xác hơn Kết quả thử nghiệm đã chứng minh được hiệu quả của phương pháp
đề xuất
5 TÀI LIỆU THAM KHẢO
[1] Parthasarathi, Sree Hari Krishnan, et al
"fMLLR based feature-space speaker adaptation of DNN acoustic models." in INTERSPEECH, 2015
[2] Povey, Daniel, Philip C Woodland, and Mark JF Gales "Discriminative MAP for acoustic model adaptation." in ICASSP,
2003
[3] Xue, Shaofei, et al "Fast adaptation of deep neural network based on discriminant codes
Transactions on Audio, Speech, and Language Processing 22.12, pp 1713-1725, 2014 [4] Ko, Tom, et al "Audio augmentation for speech recognition." in INTERSPEECH,
2015
[5] Ko, Tom, et al "A study on data augmentation of reverberant speech for robust speech recognition." in ICASSP, 2017 [6] Van Hai Do, et al “Speech attribute
modeling,” in APSIPA ASC, 2011