Kết quả huấn luyện và độ chính xác qua các lần huấn luyện mô hình trên các tập dữ liệu khác nhau; huấn luyện với Epoch = 50, batch-size từ 3, 5, 10, 32, … linh hoạt theo từng dataset và khả năng tính toán của máy tính.
Tên Model Dataset Cấu trúc
mạng RNN trong model Trung bình WER Trung bình WER (có mô-đun hiệu chỉnh) Thời gian Train Thời gian Test M1.1_vivos_ _gru_RNN_512 VIVOS GRU, RNN dim=512, batch-size: 32 0.5476 0.3475 ~8 giờ ~16 phút M1.1_vivos_ _LSTM_512 VIVOS LSTM, RNN-dim: 512, batch- size: 20 0.5333 0.4092 ~12 giờ ~30 phút M1.3_vivos_ _LSTM_RNN_ 1024 VIVOS LSTM, RNN-dim: 1024, batch-size: 20 0.4131 0.2596 ~19 giờ ~43 phút M2.1_vin_GRU _RNN_512 VIN GRU, RNN-dim: 0.5315 0.4703 ~25 giờ ~1,3 giờ
512, batch- size: 10 M2.2_vin_ LSTM_RNN_512 VIN LSTM, RNN-dim: 512, batch- size: 10 0.5654 0.4911 ~31 giờ ~1,8 giờ M3_fpt_GRU _RNN_512 FPT GRU, RNN-dim: 512, batch- size: 10 0.4403 0.3201 ~20 giờ ~1,4 giờ
Bảng 2: Thông tin về kết quả huấn luyện và thử nghiệm
Chỉ số trung bình WER được đưa ra ở bảng 2 là đánh giá trên việc sử dụng mô tại epoch có bộ trọng số tối ưu nhất.
Quan sát kết quả thống kê thay đổi tập dữ liệu, các thông số mô hình, và kết quả đạt được trình bày ở bảng 2 nhận thấy rằng:
Mô hình được huấn luyện cho kết quả chính xác dao động 50-60%, nếu tích hợp mô đun hiệu chỉnh thì độ chính xác của mô hình tăng lên 60-75%.
Khi thay đổi cấu trúc mạng RNN từ GRU sang LSTM kết quả cho thấy huấn luyện với mạng LSTM thời gian lâu hơn, tốn kém thời gian nhiều hơn (cũng từ bản chất và số lượng tính toán bên trong mỗi cấu trúc), và cho kết quả tốt hơn so với cấu trúc GRU, ví như tập dữ liệu VIVOS – dữ liệu khá tốt nên khi đổi mô hình sang LSTM hệ số lỗi WER giảm rõ rệt. Tuy nhiên, sự giảm hệ số WER trên tập dữ liệu VIN không quá lớn.
Khi thay đổi kích thước mạng RNN từ 512 lên 1024, kết quả cũng khả thi hơn (thử nghiệm trên bộ dữ liệu nhỏ VIVOS).
Chỉ số WER giảm 13-20% khi có tích hợp mô-đun hiệu chỉnh, điều này chứng tỏ khả năng hiệu chỉnh từ, cụm từ sau khi nhận dạng giúp cải thiện độ chính xác từ mô hình. Không phải tất cả các từ được hiệu chỉnh đúng, nhưng tương đối cải thiện sai lệch so với ngõ ra của mô hình, cho thấy sự hữu ích của mô-đun. Việc tích hợp
mô-đun hiệu chỉnh sẽ gây ra chậm hơn trong quá trình dự đoán kết quả vì phải so sánh với từ, cụm từ trong bộ dữ liệu mẫu, tuy nhiên với hạ tầng máy tính mạnh thì độ trễ không đáng kể. Một số hình ảnh về biểu đồ tốc độ giảm lỗi WER trên các lần huấn luyện trên các tập dữ liệu khác nhau:
Hình 3.9: Một số hình ảnh mô tả độ giảm lỗi WER trong quá trình huấn luyện Các biểu đồ trình bày ở hình 3.9 mô tả sự thay đổi của WER suốt quá trình huấn luyện, hệ số lỗi này có khi vọt lên cao bất thường là điều không tránh khỏi trong huấn luyện mới mô hình, hay huấn luyện theo kiểu kế thừa, tuy nhiên sẽ giảm dần khi số lượng epoch tăng lên.
Như trình bày ở phần đầu, tại từng epoch của quá trình huấn luyện, mô hình sử dụng tối ưu AdamW kết hợp với OneCycleLR, theo bản chất trình tối ưu sẽ đẩy learning rate lên cao nhất, rồi giảm tuyến tính, sẽ dẫn đến có thể vượt qua quá điểm hội tụ, cộng với mô hình có gắn các Dropout sau các lớp mạng, điều này dẫn đến gây ra mô hình ở những epoch đầu không được tối ưu, hay khi đánh giá lỗi WER sẽ rất lớn, hoặc tăng đột biến. Tuy nhiên, khi lượng epoch tăng lên thì giảm thời gian tính toán và mô hình được nhanh chóng hội tụ kéo theo hệ số WER sẽ giảm, độ chính xác mô hình được tăng lên.
Từ epoch 45 trở lên các chỉ số lỗi WER gần như không khác nhau, việc này đưa ra kết luận dù tăng nhiều epoch thì mô hình cũng không được cải thiện nhiều.
Dễ dàng nhận thấy hệ số WER khá thấp khi huấn luyện trên tập VIVOS hoặc là tập FPT, VIN. Điều này có thể hiểu được vì chất lượng dữ liệu trên tập VIVOS khá tốt, các audio được thu âm chất lượng và môi trường yên tĩnh không nhiễu.
Cùng các thông số train nhưng khi train trên tập VIN, FPT thì hệ số WER đột biến hơn so với tập dữ liệu VIVOS, một phần cũng do chất lượng dữ liệu không tốt,
độ ồn nhiễu nhiều, tiếng nói bên trong audio không rõ ràng. Điều này, sẽ được khắc phục bằng việc sẽ tốn thời gian chuẩn bị lại dữ liệu, lọc bớt những dữ liệu nhiễu nặng, chuẩn bị nhiều hơn dữ liệu và thời gian huấn luyện lâu hơn, nhằm giúp mô hình không bị quá loãng khó hội tụ.
Theo kết quả sau nhiều lần thí nghiệm, có nhận xét: với những tập dữ liệu tốt như VIVOS thì sử dụng mạng LSTM thì sẽ cải thiện hơn so với mạng GRU, nhưng với những bộ dữ liệu nhiễu nhiều, đa dạng, thì việc sử dụng GRU sẽ tốt hơn, rút ngắn thời gian dự đoán những vẫn đạt được độ chính xác không xa lệch nhiều với việc sử dụng mạng LSTM.
v Kiểm thử và so sánh
Thực hiện kiểm thử mô hình đã được huấn luyện gọi là TModel và mô hình có gắng phần mô-đun hiệu chỉnh, so sánh với chương trình nhận dạng đang được thương mại hoá của FPT tại: https://fpt.ai/stt, trên một số audio với text có sẵn để đối chiếu, có bảng thống kê như sau:
Audio/Text FPT Service TModel TModel có
Hiệu Chỉnh [VIVOSDEV05_170]
chậm nắm bắt xu hướng phát triển công nghệ mới Chậm lắm , Bắc xu hướng phát triển công nghệ mới . chậm nắm bắt xu hướng bác tiển công nghệ mới chậm nắm bắt xu hướng phát triển công nghệ mới [VIVOSDEV01_R003] cũng lên tiếng ủng hộ các kiến nghị này Cũng lên tiếng ủng hộ các kiến nghị này . cũng lên tiến ủng họ các kiến nghĩ này cũng lên tiếng ủng hộ các kiến nghị này [VIVOSDEV01_R012] những cơn gió mạnh và mưa đóng băng gây chơn chợt Những cơn gió lạnh và mưa đóng băng ghi trơn trượt . những cơn gió mạnh và mưa đóng bằng gây chơn chợt những cơn gió mạnhvà mưa đóng băng gây chiến chợt
[VIVOSDEV01_R058]
giám đốc sở giáo dục đào tạo ninh thuận cho biết
Giám đốc Sở giáo dục đào tạo ninh thuận cho biết .
giảm đốc sở giá dục đào tạo ninh huậng cho biết
giám đốc sở giáo dục đào tạo ninh thuận cho biết
Bảng 3: So sánh kết quả nhận dạng trên một số audio thử nghiệm
Nhận xét, có thể mô hình nhận dạng đã được huấn luyện chưa được tốt như dịch vụ đang thương mại hoá của FPT, tuy nhiên khi thêm mô-đun hiệu chỉnh thì kết quả tốt hơn, giảm sự chênh lệch đáng kể với kết quả nhận dạng của FPT.
CHƯƠNG 5. KẾT LUẬN
Qua thời gian thực hiện nghiên cứu đề tài “nghiên cứu ứng dụng mạng nơ-ron hồi quy trong nhận dạng tiếng nói tiếng nói”, đề tài đã đạt được tất cả các mục tiêu đề ra như ban đầu:
- Đã tìm hiểu và thực hiện được chương trình hỗ trợ rút trích đặc trưng MFCC của tín hiệu âm thanh, phục vụ cho các mô hình nhận dạng tiếng nói.
- Áp dụng thành công kiến trúc mô hình DeepSpeech 2 vào nhận dạng tiếng nói tiếng Việt; mô hình với 2 khối chính là khối mạng CNN và khối mạng RNN. Dữ liệu đầu vào là dạng phổ (spectrogram) với số lượng feature là 128 từ tín hiệu âm thanh, ngõ ra là các kí tự được nhận dạng, hàm lỗi là CTC Loss, tối ưu AdamW kết hợp OneCycleLR, kiến trúc mô hình như sau:
Ø Tầng 1: một lớp mạng CNN thuần.
Ø Tầng 2: 3 lớp Residual Network, mỗi lớp gồm:
o Hai lớp CNN
o Gắn thêm 2 Dropout, p=0.1 tương ứng 2 lớp CNN
o 2 lớp chuẩn hoá LayerNorm tương ứng 2 lớp CNN Ø Tầng 3: một lớp Fully Connected.
Ø Tầng 4: 5 lớp Bidirectional RNN, mỗi lớp gồm:
o Một lớp GRU hoặc LSTM (kích cỡ RNN-DIM là 512)
o Một lớp chuẩn hoá LayerNorm
o Gắn Dropout, p=0.1
Ø Tầng 5: là 1 lớp phân loại, gồm có các lớp:
o 1 lớp Fully Connected.
o 1 lớp GELU
o Gắn Dropout (p=0.1)
o Và một lớp Fully Connected cuối cùng (96 ngõ ra – tương đương 95 ký tự cần nhận dạng và 1 kí tự “NULL”).
- Đã xây dựng được 3 bộ dữ liệu để huấn luyện tốt cho nhận dạng tiếng nói tiếng Việt, gồm bộ dữ liệu VIVOS (train: 9263, test: 726) , FPT (train: 16.700, test: 7213), VIN (train: 20.000, test: 6426) tất cả chuẩn hoá về độ dài âm thanh từ 1.3s -> 10s, số lượng từ 5 đến 20 từ, tần số lấy mẫu 16KHz, định dạng wav.
- Trong phần nghiên cứu này, đã xây dựng thêm mô-đun hiệu chỉnh với bộ 2- gram có 20.217 cụm từ có ý nghĩa, tăng độ chính xác mô hình lên 60-75%.
Hướng nghiên cứu có thể mở rộng thêm để cải thiện độ chính xác mô hình thông qua việc tăng độ lớn của dữ liệu, chất lượng và sự đa dạng dữ liệu như tiếng nói vùng miền, tiếng nói ở nhiều độ tuổi; bên cạnh đó nghiên cứu phát triển các mô- đun tiền xử lý nhằm giảm nhiễu, nâng cao chất lượng của dữ liệu đầu vào. Kết hợp, các mô hình ngôn ngữ để hiệu chỉnh tốt hơn các câu sau khi được dự đoán từ mô hình, điều chỉnh về mặt lỗi chính tả, ngữ nghĩa và kết hợp thêm dấu câu.
Tích cực nghiên cứu các giải thuật mới nhằm tăng giảm thời gian dự đoán, hướng đến đáp ứng theo thời gian thực. Có thể hướng đến xây dựng ứng dụng, nền tảng cung cấp hệ thống nhận dạng tiếng nói tiếng Việt theo thời gian thực, giảm sự ảnh hưởng nhiễu từ môi trường.
TÀI LIỆU THAM KHẢO
[1] Hannun, A., Case, C., Casper, J., Catanzaro, B., Diamos, G., Elsen, E., ... & Ng, A. Y. (2014). Deep speech: Scaling up end-to-end speech recognition. arXiv preprint
arXiv:1412.5567.
[2] Amodei, D., Ananthanarayanan, S., Anubhai, R., Bai, J., Battenberg, E., Case, C., ... & Zhu, Z. (2016, June). Deep speech 2: End-to-end speech recognition in english and mandarin. In International conference on machine learning (pp. 173-182). PMLR.
[3] Hannun, A. Y., Maas, A. L., Jurafsky, D., & Ng, A. Y. (2014). First-pass large vocabulary continuous speech recognition using bi-directional recurrent DNNs. arXiv preprint arXiv:1408.2873.
[4] Vineel Pratap, A. H. (2018). wav2letter++: The fastest open-source speech recognition system. CoRR, vol. abs/1812.07625.
[5] Park, D. S., Chan, W., Zhang, Y., Chiu, C. C., Zoph, B., Cubuk, E. D., & Le, Q. V. (2019). Specaugment: A simple data augmentation method for automatic speech recognition. arXiv preprint arXiv:1904.08779.
[6] Schneider, S., Baevski, A., Collobert, R., & Auli, M. (2019). wav2vec: Unsupervised pre-training for speech recognition. arXiv preprint arXiv:1904.05862.
[7] Luong, H. T., & Vu, H. Q. (2016, December). A non-expert Kaldi recipe for Vietnamese speech recognition system. In Proceedings of the Third International
Workshop on Worldwide Language Service Infrastructure and Second Workshop on Open Infrastructures and Analysis Frameworks for Human Language Technologies (WLSI/OIAF4HLT2016) (pp. 51-55).
[8] VinBigData. (2020). The speech corpus for the automatic speech recognition task in VLSP-2020,[Online]. Available https://slp.vinbigdata.org.
[9] Tran, Duc Chung. (2020). FPT Open Speech Dataset (FOSD) – Vietnamese.
[10] He, K., Zhang, X., Ren, S., & Sun, J. (2016). Deep residual learning for image recognition. In Proceedings of the IEEE conference on computer vision and pattern
recognition (pp. 770-778).
[11] Smith, L. N., & Topin, N. (2019, May). Super-convergence: Very fast training of neural networks using large learning rates. In Artificial Intelligence and Machine
Learning for Multi-Domain Operations Applications (Vol. 11006, p. 1100612).
International Society for Optics and Photonics.
[12] Vietnamese NLP Research Group – (UnderTheSea). (2021). Word Tokenize. Word Tokenize,[Online]. Available: http://undertheseanlp.com.
[13] Acree, B., Hansen, E., Jansa, J., & Shoub, K. (2016). Comparing and evaluating cosine similarity scores, weighted cosine similarity scores and substring matching. Working Paper.
[14] Fayek, H. (2016). Speech processing for machine learning: Filter banks, mel- frequency cepstral coefficients (mfccs) and what’s in-between. URL:
https://haythamfayek.com/2016/04/21/speech-processingfor-machine- learning.html.
[15] Choné, A. (2018). Computing MFCCs voice recognition features on ARM systems. Computing MFCCs voice recognition features on ARM systems,[Online].
Available:https://medium.com/linagoralabs/computing-mfccs-voice-recognition- features-on-arm-systemsdae45f016eb6.
[16] Wikipedia. (2016). Probabilistic parameters of a hidden Markov model.
Probabilistic parameters of a hidden Markov model,[Online]. Available: https://en.wikipedia.org/wiki/Hidden_Markov_model.
[17] Kiyoshi Kawaguchi. (2000). Artificial Neural Networks. Artificial Neural Networks,
[Online]. Available: http://osp.mans.edu.eg/rehan/ann4.htm.
[18] Colah. (2015). Understanding LSTM Networks. Understanding LSTM Networks,
[Online]. Available: https://colah.github.io/posts/2015-08-Understanding-LSTMs.
[19] Facebook Open Source. (2020). Transfer Function Layers. Transfer Function Layers, [Online]. Available: https://nn.readthedocs.io/en/rtd/transfer.
[20] Nvidia Inc. (2018). DeepSpeech2. DeepSpeech2 OpenSeq2Seq, [Online]. Available:
NGHIÊN CỨU ỨNG DỤNG MẠNG NƠ-RON HỒI QUY TRONG NHẬN DẠNG TIẾNG NÓI
STUDY OF SPEECH RECOGNITION USING RECURRENT NEURAL NETWORK
Huỳnh Văn Tuân, Trương Ngọc Sơn
Trường đại học Sư phạm Kỹ thuật TP.HCM
TÓM TẮT
Trong bài viết này, tác giả trình bày về nghiên cứu ứng dụng kiến trúc mô hình DeepSpeech 2 áp dụng trên tập dữ liệu âm thanh tiếng Việt kết hợp xây dựng mô đun hiệu chỉnh để nhận dạng tiếng nói Tiếng Việt. Kiến trúc mô hình DeepSpeech 2 là tổ hợp các lớp mạng nơ-rơn tích chập và các lớp mạng nơ-ron hồi quy, ngõ vào là dạng phổ của tín hiệu âm thanh; mô đun hiệu chỉnh sử dụng bộ dữ liệu gồm 20.217 bi-gram, kết hợp thuật toán so sánh khoảng cách Levenshtein và tính độ tương tự Cosine. Mô hình được huấn luyện dựa trên các bộ dữ liệu âm thanh VIVOS, FPT và VIN DATA. Mô hình được đánh giá dựa trên tỉ lệ lỗi từ (WER), độ chính xác đạt 75%, mô hình hoạt động hiệu quả ở môi trường ít nhiễu và tốc độ nói không quá nhanh. Kiến trúc DeepSpeech 2 và mô đun hiệu chỉnh được huấn luyện trên tập dữ liệu lĩnh vực chuyên dụng sẽ hoạt động hiệu quả trên các kiến trúc phần cứng thấp, không yêu cầu kết nối internet.
Từ khoá: Nhận dạng tiếng nói; DeepSpeech 2; Mạng nơ-ron hồi quy; Mạng nơ-ron tích chập; Khoảng cách Levenshtein; Độ tương tự Cosine.
ABSTRACT
In this paper, the author presents the study of DeepSpeech 2 model structure applied on Vietnamese audio data set combined with building a adjusted module for Vietnamese speech recognition. The DeepSpeech 2 model architecture is a combination of convolutional neural network layers and recurrent neural network layers, the input data is the spectrogram of the audio signal; The adjusted module uses a dataset of 20.217 bi-grams, comparison base on the Levenshtein Distance and the Cosine Similarity algorithm. The model is trained on the shared audio datasets from VIVOS, FPT and VIN DATA, evaluated based on the word error rate (WER), the accuracy reaches 75%, the model works effectively in low noise environment and the speaking speed is not too fast. The DeepSpeech 2 model structure and adjusted module trained on a dedicated field dataset will work well on low-architecture hardware that doesn't require an internet connection.
Keywords: Speech recognition; DeepSpeech 2; Recurrent Neural Networks; Convolutional Neural Networks; Levenshtein distance; Cosine similarity.
1. GIỚI THIỆU
Nhận dạng tiếng nói có phạm vi ứng dụng rộng rãi, được triển khai trong các
trung tâm liên lạc; cung cấp các dịch vụ tự động phục vụ; trợ lý ảo hỗ trợ giao dịch, tìm kiếm, điều khiển nhà thông minh; hay ứng
dụng hỗ trợ điều hướng cho người khuyết tật; tạo công cụ chuyển giọng nói thành văn bản, giúp giảm thời gian, chi phí.
Ứng dụng mạng học sâu nói chung và mạng nơ-ron hồi quy nói riêng trong nhận dạng tiếng nói đạt được bước tiến mới bởi sự hỗ trợ tính toán hiệu năng vượt trội từ GPU. Một số kiến trúc được đề xuất gần đây như: DeepSpeech 1 [1] – mô hình mở rộng nhận dạng đầu cuối (End-to-End Speech Recognition), đạt tỉ lệ lỗi 16% trên tập dữ liệu 2000 Hub5. DeepSpeech 2 [2] – được cải tiến từ DeepSpeech 1 áp dụng cho nhận dạng tiếng Anh và tiếng Quan Thoại, mô hình hoạt động tốt ở môi trường nhiễu, sử dụng các lớp mạng nơ-ron tích chập và mạng nơ-ron hồi quy 2 chiều (Bi- Directional Recurrent DNNs), áp dụng hàm kích hoạt ReLu và CTC để dự đoán ký tự ngõ ra. First-Pass Large Vocubulary [3] – sử dụng mạng hồi quy lặp 2 hướng, tỉ lệ lỗi ký tự (CER) dưới 10% trên tập CSR-II. Wav2Letter++ [4] – đạt được tỉ lệ lỗi từ WER 4.91 % trên tập LibriSpeech. SpecAugment [5] – phương pháp tăng cường dữ liệu, đạt tỉ lệ lỗi WER 5,8% trên tập LibriSpeech khi có mô hình ngôn ngữ. Wav2Vec [6] – sử dụng hình thức học không giám sát, đầu vào là âm thanh thô, kết quả đạt tỉ lệ lỗi WER là 2.43% trên tập dữ liệu nov92.
Mô hình hiệu chỉnh độ chính xác kết quả nhận dạng dựa trên bộ từ điển bi-gram và các thuật toán đánh giá mức độ giống nhau giữa hai chuỗi Levenshtein [5], và