Phương pháp đánh giá

Một phần của tài liệu Nhận dạng tiếng nói tiếng việt bằng phương pháp học sâu (Trang 67)

Các mô hình CNN được đánh giá dựa vào các yếu tố như sau:

• Các mạng CNN đều trích xuất đặc trưng dựa trên nguyên lý tích chập. • Dựa trên kiến trúc phân tầng giúp mạng CNN học được các đặc trưng ở

68

• Sử dụng phổ biến để thực hiện nhiệm vụ huấn luyện trên các bộ dữ liệu lớn, khi đó mô hình CNN với kiến trúc học đa tầng, đa tham số đã cho thấy ưu thế vượt trội về độ chính xác.

• Kích thước layers mô hình CNN giảm dần theo độ sâu, điều này giúp tạo ra các mạng có kích thước nhẹ hơn và tốc độ dự đoán nhanh hơn, trong khi độ chính xác của mô hình giảm không đáng kể.

Để đánh giá một mô hình phân tích, dự đoán trong khai phá dữ liệu, việc đầu tiên là chia tập dữ liệu thành các thành phần phục vụ cho việc huấn luyện mô hình và kiểm thử mô hình.

Tiếp đến xây dựng mô hình thông qua lựa chọn thuật toán, xác định các biến dữ liệu, điều chỉnh tham số phù hợp dựa trên dữ liệu huấn luyện. Sau khi cơ bản xây dựng mô hình, sử dụng dữ liệu kiểm thử để thử nghiệm mô hình bằng cách kết hợp nhiều công thức, chỉ số (metrics) khác nhau để đánh giá mức độ chính xác kết quả phân loại giới tính và dự đoán giọng nói vùng miền Việt Nam.

Để đánh giá mô hình xây dựng đã tối ưu hay chưa ta cần có các phương pháp đánh giá chuẩn xác. Đối với đề tài này thì các độ đo dùng để đánh giá là Accucary và AUC.

Độ chính xác (Accuracy)

Đại lượng Accuracy dùng để đo độ chính xác của mô hình phổ biến nhất, bản chất của nó chính là đo khoảng cách giữa giá trị dự đoán đến giá trị chính xác. Accuracy càng cao, thì độ chính xác càng cao. Tuy nhiên Accuracy có một nhược điểm chính là do nó sử dụng tần suất nên đối với bàn toán có sự chênh lệch về số lượng mẫu, việc sử dụng Accuracy sẽ không hoàn toàn chính xác. Luận văn lựa chọn phương pháp đánh giá độ chính xác Accuracy cho quá trình nhận dạng được tính theo công thức (3.15) như sau:

𝐴𝑐𝑐𝑢𝑟𝑎𝑐𝑦 = ⁡𝑆ố⁡𝑡𝑟ườ𝑛𝑔⁡ℎợ𝑝⁡đú𝑛𝑔⁡𝑐ủ𝑎⁡𝑚ẫ𝑢⁡𝑘𝑖ể𝑚⁡𝑡ℎử

𝑇ổ𝑛𝑔⁡𝑠ố⁡𝑚ẫ𝑢⁡đ𝑒𝑚⁡đ𝑖⁡𝑘𝑖ể𝑚⁡𝑡ℎử (3.15)

Đánh giá dựa trên hai yếu tố là độ chính xác về nhận dạng giới tính, và độ chính xác về vùng miền mà hệ thống dự đoán.

69

AUC là từ viết tắt của Area Under The Curve, ROC là viết tắt của Receiver Operating Characteristics. ROC là một đường cong biểu diễn xác suất và AUC biểu diễn mức độ phân loại của mô hình. AUC-ROC còn được biết đến dưới cái tên AUROC (Area Under The Receiver Operating Characteristics). Ý nghĩa của AUROC có thể diễn giải như sau: Là xác suất rằng một mẫu dương tính được lấy ngẫu nhiên sẽ được xếp hạng cao hơn một mẫu âm tính được lấy ngẫu nhiên. Biểu diễn theo công thức (3.16), ta có AUC = P(score(x+) > score(x-)).

𝐴𝑈𝐶 = ⁡𝑃[𝑠𝑐𝑜𝑟𝑒(𝑥+) > ⁡𝑠𝑐𝑜𝑟𝑒(𝑥−)] (3.16)

70

CHƯƠNG 4 THỰC NGHIỆM

Trong chương này, luận văn trình bày các bước trong quá trình thực nghiệm, kết quả đạt được, phân tích và đánh giá các kết quả đạt được.

4.1. Dữ liệu

4.1.1.Thu thập dữ liệu

Dữ liệu huấn luyện: luận văn đã tự xây dựng, thu thập bộ dữ liệu âm thanh phục vụ cho quá trình huấn luyện theo mẫu các tập tin âm thanh về phân biệt giọng nói của cuộc thi Zalo AI 2019, bao gồm dữ liệu về tiếng nói tương ứng với 2 giới tính Nam, Nữ và 3 vùng miền Bắc, Trung, Nam của Việt Nam. Tuy nhiên bộ dữ liệu âm thanh có số lượng nhiễu nhất định và có thể có âm thanh khác trong dữ liệu. Bộ dữ liệu âm thanh tự xây dựng và thu thập được chia thành 6 bộ mẫu, sau đó tiến hành chuyển đổi âm thanh về đuôi mở rộng có định dạng là wav.

Tổng số dữ liệu huấn luyện cho hệ thống là 270 mẫu.

Bộ dữ liệu này được trình bày chi tiết, cụ thể trong Bảng 4.1 như sau:

Khu vực Số lượng

Nam miền Bắc 42 mẫu

Nữ miền Bắc 45 mẫu

Nam miền Trung 75 mẫu

Nữ miền Trung 44 mẫu

Nam miền Nam 27 mẫu

Nữ miền Nam 37 mẫu

Bảng 4.1 Bảng dữ liệu huấn luyện

Dữ liệu kiểm thử: bao gồm 37 mẫu được thu thập từ bộ dữ liệu Vivos Corpus thuộc Lab khoa Khoa học máy tính, Trường Đại học Khoa học Tự nhiên Thành phố Hồ Chí Minh, được định dạng với đuôi wav.

Vivos là kho ngữ liệu tiếng Việt miễn phí bao gồm 15 giờ ghi âm giọng nói được dùng vào mục đích học thuật, nhận dạng giọng nói tự động.

Kho ngữ liệu lời nói này ghi lại dữ liệu giọng nói từ hơn 50 người bản địa là các tình nguyện viên Việt Nam. Để đào tạo, có 46 người đọc ( bao gồm 22 nam và 24

71

nữ) đã ghi lại 15 giờ, và tổng cộng có 11660 lần phát biểu. Trong khi để thử nghiệm có 19 người đọc (bao gồm 12 nam và 7 nữ) đã ghi lại 50 phút với tổng cộng 760 lần phát biểu. Các phiên ghi âm được tiến hành trong môi trường yên tĩnh, sử dụng các thiết bị chất lượng và người nói được yêu cầu đọc từng câu một. Bộ dữ liệu này được trình bày chi tiết, cụ thể trong Bảng 4.2 như sau:

Set Speaker Male Female Utterances Duration Unique

Syllables

Training 46 22 24 11660 14:55 4617

Testing 19 12 7 760 00:55 1692

Bảng 4.2 Bảng thống kê dữ liệu lời nói Vivos Corpus

4.1.2.Xử lý dữ liệu

Trên mỗi tập tin dữ liệu âm thanh, người thực hiện đề tài thực hiện xử lý dữ liệu bằng cách cắt các tập tin âm thanh có thời lượng 3s, sau đó giảm tần số âm thanh xuống 16 kHz nhằm mục đích đưa mẫu dữ liệu huấn luyện về một chuẩn chung.

Sử dụng thư viện xử lý âm thanh Pydub [17]. Người thực hiện đề tài viết một kịch bản bằng Python để phục vụ quá trình xử lý âm thanh. Sử dụng thư viện âm thanh đầu vào sẽ được giảm tần số xuống 16 kHz, tiếp theo âm thanh sẽ được cắt ra với thời gian là 3s, sau đó đánh số tự động tăng dần. Mục đích của quá trình này là chuẩn hoá dữ liệu đầu vào giúp cho mạng CNN học được các đặc trưng của giọng nói tốt hơn. Ngoài ra còn đảm bảo được sự đồng nhất trong dữ liệu huấn luyện. Sau đó phân ra theo 6 thư mục tương ứng với 2 giới tính và 3 vùng miền. Tiếp đến đưa vào thư mục data của dự án phục vụ quá trình huấn luyện.

4.2. Kết quả thực nghiệm

4.2.1.Công nghệ sử dụng

Để giải quyết bài toán phân loại, nhận dạng các yếu tố, đặc điểm của giới tính và giọng nói vùng miền Việt Nam bằng phương pháp học sâu, luận văn đề xuất lập trình bằng ngôn ngữ lập trình Python (3.7), trên Google Colab và IDE Pycharm. Sử dụng các thư viện sklearn cho các mô hình học máy; thư viện pydub và librosa để xử lý dữ liệu âm thanh; numpy để xử lý và tổng hợp các đặc trưng, nhãn của âm thanh; thư viện keras và tensorflow để huấn luyện kết hợp với xử lý âm thanh đưa vào mạng nơ ron tích chập CNN; thư viện matplotlib và seaborn để trực quan hóa dữ liệu. Ngoài

72

ra, luận văn còn sử dụng thư viện Flask Frameworks để tạo ứng dụng trên nền tảng web.

4.2.2.Trích xuất đặc trưng

Luận văn thu thập các mẫu huấn luyện từ dữ liệu âm thanh thu thập được. Sử dụng thư viện xử lý âm thanh Librosa [18] được cài đặt trong thư viện của Python. Tập tin âm thanh được chia thành như frames (khung) dài 250ms không trùng lặp. Mỗi frame được gán nhãn tương ứng với tập tin âm thanh (gồm gender và accent). Từ mỗi frame, trích chọn đặc trưng Log-Mel Spectrogram với 60 bands. Kết quả được cho vào hàm logamplitude. Sau đó kết quả đặc trưng với delta tương ứng.

Sau khi trích xuất được đặc trưng Log-Mel Spectrogram, người thực hiện đề tài sử dụng thư viện Numpy [19] để tổng hợp các đặc trưng và nhãn của âm thanh lại. Tiếp đến sử dụng thư viện Keras [20] kết hợp với thư viện Tensorflow [21] hỗ trợ quá trình huấn luyện kết hợp với kết quả xử lý âm thanh đưa vào mạng Nơ ron tích chập CNN.

4.2.3.Nhận dạng tiếng nói Mô hình CNN 3 lớp phức hợp

Hình 4.1 Cấu trúc mô hình CNN 3 lớp phức hợp

Kết quả các thông số epoch khác nhau trong việc huấn luyện mô hình lần lượt là: 10, 20, 30 epoch. Kết quả đạt được như sau:

Với epoch 10 đạt độ tin cậy (Accuracy): 91,56% Với epoch 20 đạt độ tin cậy (Accuracy): 93,80% Với epoch 30 đạt độ tin cậy (Accuracy): 94,29%

73

Các thông số huấn luyện của mạng nơ-ron tích chập được trình bày chi tiết trong Bảng 4.3 như sau:

Layer Parameter

Conv2D 64 kernels (7x7)

MaxPooling2D Size 3x3, strides 2x2

Conv2D 128 kernels (5x5) MaxPooling2D Size 2x2 Conv2D 256 kernels (2x2) MaxPooling2 Size 2x2 Flatten Dense 200 units Dropout Rate = 0.2 Dense Softmax

Bảng 4.3 Bảng chi tiết thông số của mô hình

Mô hình được train bởi hàm tối ưu là Adam với tốc độ học (learning rate) là 0.0001, beta_1=0.9, beta_2=0.999. Tỉ lệ huấn luyện và kiểm thử là 8:2 hoặc 9:1.

Sau khi huấn luyện xong mô hình sử dụng thư viện Matplotlib [22] để hiển thị kết quả huấn luyện một cách trực quan đối với tập huấn luyện và kiểm thử. Mô hình sau khi huấn luyện được lưu lại nhằm mục đích tái sử dụng sau này.

Phương thức dự đoán đối với một âm thanh giọng nói bất kỳ:

➢ Mẫu âm thanh dự đoán được chia thành mỗi 250 frames, sử dụng phương pháp trích rút đặc trưng được mô tả ở trên, rồi đưa vào mạng CNN. Nhãn của tập tin được chọn bởi chiến thuật majority voting.

➢ Kết quả hiển thị giới tính sẽ nằm ở giá trị đầu tiên và vùng miền sẽ là giá trị sau đó.

Với bộ dữ liệu Vivos Corpus [23] khi nhận dạng trên tập kiểm thử cho kết quả nhận dạng khá tốt về giới tính, tuy nhiên khả năng nhận dạng giọng nói của từng vùng miền còn hạn chế, cụ thể:

74

❖ Độ chính xác khi nhận dạng giọng nói từng vùng miền là 14 mẫu/37 mẫu chính xác.

Kết quả đánh giá thực nghiệm được trình bày trong Bảng 4.4

Phương pháp Độ chính xác % (Accuracy) Giới tính Vùng miền

CNN + Log-Mel Spectrogram 86.48% 37.84%

Bảng 4.4 Bảng kết quả đánh giá

Qua kết quả kiểm thử trên có thể nhận thấy rằng hệ thống nhận dạng khá tốt về giới tính, tuy nhiên kết quả nhận dạng giọng nói vùng miền chưa cao bởi các đặc điểm riêng của giọng nói vùng miền. Tiếng Việt là ngôn ngữ có thanh điệu và có nhiều phương ngữ khác nhau. Chính sự đa dạng của các phương ngữ tạo nên thách thức đối với các hệ thống nhận dạng tự động tiếng Việt.

Như vậy để nâng cao khả năng nhận dạng vùng miền yêu cầu dữ liệu đầu vào phải đủ lớn và đảm bảo đủ bao quát được các đặc trưng vùng miền nhất định, khi đó tỉ lệ nhận dạng vùng miền sẽ tăng lên.

Hình 4.1 Kết quả đánh giá hiển thị trên website

75

Hình 4.2 Cấu trúc mô hình CNN – VGG16

Kết quả các thông số epoch khác nhau trong việc huấn luyện mô hình lần lượt là: 10, 20, 30 epoch. Kết quả đạt được như sau:

Với epoch 10 đạt độ tin cậy (Accuracy): 67,45 % Với epoch 20 đạt độ tin cậy (Accuracy): 69,09 % Với epoch 30 đạt độ tin cậy (Accuracy): 71,27 %

Với bộ dữ liệu Vivos Corpus [24] khi nhận dạng trên tập kiểm thử cho kết quả nhận dạng giới tính và giọng nói của từng vùng miền chưa cao, cụ thể như sau:

❖ Độ chính xác khi nhận dạng giới tính là 21 mẫu/37 mẫu chính xác.

❖ Độ chính xác khi nhận dạng giọng nói từng vùng miền là 7 mẫu/37 mẫu chính xác.

Kết quả đánh giá thực nghiệm được trình bày trong Bảng 4.5

Phương pháp Độ chính xác % (Accuracy) Giới tính Vùng miền

VGG-16 56,75% 18,92%

Bảng 4.5 Bảng kết quả đánh giá với VGG-16

Mô hình CNN 5 tầng

76

Kết quả các thông số epoch khác nhau trong việc huấn luyện mô hình lần lượt là: 10, 20, 30 epoch. Kết quả đạt được như sau:

Với epoch 10 đạt độ tin cậy (Accuracy): 82,41 % Với epoch 20 đạt độ tin cậy (Accuracy): 84,65 % Với epoch 30 đạt độ tin cậy (Accuracy): 85,37 %

Với bộ dữ liệu Vivos Corpus [24] khi nhận dạng trên tập kiểm thử cho kết quả nhận dạng về giới tính tương đối tốt, tuy nhiên khả năng nhận dạng giọng nói của từng vùng miền chưa cao, cụ thể:

❖ Độ chính xác khi nhận dạng giới tính là 28 mẫu/37 mẫu chính xác.

❖ Độ chính xác khi nhận dạng giọng nói từng vùng miền là 11 mẫu/37 mẫu chính xác.

Kết quả đánh giá thực nghiệm được trình bày trong Bảng 4.6

Phương pháp Độ chính xác % (Accuracy) Giới tính Vùng miền

CNN – 5 tầng 75,67% 29,72%

Bảng 4.6 Bảng kết quả đánh giá với CNN – 5 tầng

4.3. Ứng dụng nhận dạng tiếng nói tiếng Việt

4.3.1.Thiết kế

Ứng dụng Web của luận văn có sơ đồ thiết kế như dưới đây:

Hình 4.2 Phân tích thiết kế giao diện Trang phân tích dữ liệu Trang chủ Trang nhận dạng âm thanh Trang kết quả nhận dạng âm thanh

77

Luận văn đề xuất xây dựng ứng dụng Web cho phần back-end bằng ngôn ngữ python thông qua thư viện hỗ trợ xây dựng server là Flask. Server được xây dựng bằng python hỗ trợ tốt cho việc truy xuất model được lưu lại dễ dàng hơn so với các ngôn ngữ khác.

Server bao gồm các chức năng:

➢ Hiển thị trang mô hình kết quả đánh giá.

➢ Hiển thị trang phân tích dữ liệu dùng trong huấn luyện và kiểm thử hệ thống.

➢ Hiển thị trang giới thiệu ứng dụng. ➢ Xử lý thu âm âm thanh người dùng. ➢ Phát lại nội dung đã thu âm.

➢ Nhận dạng âm thanh tiếng nói tiếng Việt. ➢ Hiển thị kết quả nhận dạng.

Hình 4.3 Phân tích thiết kế chức năng

4.3.2.Ứng dụng

78

Phần 1: Demo, bao gồm giao diện chính và kết quả của phần này được trình bày trong các hình dưới đây.

Hình 4.4 Giao diện trang chủ hệ thống

79

Hình 4.6 Giao diện trang kết quả thử nghiệm ứng dụng

Hình 4.7 Giao diện trang kết quả đánh giá

Người sử dụng có thể nhập vào một bản ghi, hay một file, sau khi lựa chọn và nhập dữ liệu, click vào dự đoán để ứng dụng dự đoán kết quả. Dưới đây là kết quả của một ví dụ demo.

80

Hình 4.8 Giao diện trang kết quả nhận dạng âm thanh

Phần 2: Phân tích dữ liệu, ứng dụng Web trình bày các biểu đồ phân tích dữ liệu có trong cơ sở dữ liệu, phân chia tỷ lệ dữ liệu như các biểu đồ theo hình dưới đây.

Hình 4.9 Phân tích dữ liệu hệ thống

Phần 3: Nhận dạng âm thanh, ứng dụng Web trình bày các chức năng ghi âm, tải file

âm thanh, xử lý âm thanh theo hình dưới đây.

81

Phần 4: Kết quả nhận dạng âm thanh, ứng dụng Web trình bày dữ liệu dự đoán được

hệ thống trả về và hiển thị lên trang kết quả nhận dạng âm thanh theo hình dưới đây.

Hình 4.11 Kết quả nhận dạng âm thanh

Mô tả Xem chi tiết độ chính xác trong quá trình huấn luyện và kiểm thử, độ chính xác của hệ thống.

Luồng hành động

Nhấn vào biểu tượng và hình ảnh có nội dung “đánh giá kết quả” từ trang chủ để có thể xem được trang đánh giá hệ thống.

Tiền điều kiện Không

Bảng 4.7 Xem đánh giá hệ thống Mô tả Xem chi tiết dữ liệu huấn luyện của hệ thống

Luồng hành động

Nhấn vào biểu tượng và hình ảnh có nội dung “phân tích dữ liệu” từ trang chủ để có thể xem được trang đánh giá hệ thống.

Tiền điều kiện Không

Bảng 4.8 Xem chi tiết dữ liệu huấn luyện

Một phần của tài liệu Nhận dạng tiếng nói tiếng việt bằng phương pháp học sâu (Trang 67)

Tải bản đầy đủ (PDF)

(96 trang)