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

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 71)

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 q trình này là chuẩn hố 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. Ngồ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ự đố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 q 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 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

82 nói.

Luồng hành động

1. Từ trang chủ click chuột vào biểu tượng và hình ảnh có nội dung “Sound Récognition”.

2. Trên trang nhận dạng âm thanh click vào biểu tượng microphone trên trang web để bắt đầu thu âm giọng nói. 3. Click vào biểu tượng microphone có dấu chéo để hồn tất q trình thu âm. Âm thanh sẽ được lưu vào hệ thống.

Tiền điều kiện Người dùng cho phép hệ thống sử dụng microphone để thu âm giọng nói

Bảng 4.9 Chức năng thu âm giọng nói

Mơ tả Cho phép người dùng nghe lại đoạn âm thanh giọng nói mà người dùng đã thu âm trước đó.

Luồng hành động

4. 1. Từ trang chủ click chuột vào biểu tượng và hình ảnh có nội dung “Sound Recognition”.

5. 2. Trên trang nhận dạng âm thanh click vào biểu tượng và hình ảnh có nội dung “Replay sound recored”.

Tiền điều kiện Người dùng phải thu âm giọng nói của chính mình trước khi có thể sử dụng chức năng nghe lại âm thanh đã thu. Bảng 4.10 Bảng chức năng nghe lại giọng nói đã thu âm

Mô tả

Cho phép người dùng dự đốn đoạn âm thanh giọng nói mà người dùng đã thu âm trước đó là nam hay nữ và họ đến từ vùng nào của Việt Nam.

Luồng hành động 6. 1. Từ trang chủ click chuột vào biểu tượng và hình ảnh có nội dung “Sound Recognition”.

83

7. 2. Trên trang nhận dạng âm thanh click vào biểu tượng microphone trên trang web để bắt đầu thu âm giọng nói. 8. 3. Click vào biểu tượng microphone có dấu chéo để

hồn tất q trình thu âm. Âm thanh sẽ được lưu vào hệ thống.

9. 4. Click vào biểu tượng và hình ảnh có nội dung “Sound Recognition” để hệ thống xử lý dữ liệu âm thanh vừa ghi lại được.

Tiền điều kiện Người dùng phải thu âm giọng nói của chính mình trước khi có thể sử dụng chức năng nghe lại âm thanh đã thu. Bảng 4.11 Bảng chức năng dự đoán âm thanh đầu vào

Mô tả

Cho phép người dùng dự đốn đoạn âm thanh giọng nói mà người dùng đã thu âm trước đó là nam hay nữ và họ đến từ vùng nào của Việt Nam.

Luồng hành động

10. 1. Từ trang chủ click chuột vào biểu tượng và hình ảnh có nội dung “Sound Recognition”.

11. 2. Trên trang nhận dạng âm thanh click vào biểu tượng microphone trên trang web để bắt đầu thu âm giọng nói.

84

12. 3. Click vào biểu tượng microphone có dấu chéo để hồn tất q trình thu âm. Âm thanh sẽ được lưu vào hệ thống.

13. 4. Click vào biểu tượng và hình ảnh có nội dung “Sound Recognition” để hệ thống xử lý dữ liệu âm thanh vừa ghi lại được.

14. 5. Dữ liệu dự đoán sẽ được hệ thống trả về và hiển thị lên trang nhận dạng âm thanh.

Tiền điều kiện Người dùng phải thu âm giọng nói của chính mình trước khi có thể sử dụng chức năng nghe lại âm thanh đã thu. Bảng 4.12 Bảng chức năng xem kết quả dự đoán

CHƯƠNG 5

KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN

Trong chương này, luận văn trình bày tổng quát kết quả thực hiện, đưa ra các hướng phát triển cho mơ hình trong tương lai.

5.1. Kết quả đạt được

Luận văn đã đề xuất giải pháp cho việc phân loại giới tính và và khu vực của giọng nói tiếng Việt bằng cách sử dụng mơ hình mạng nơ-ron học sâu tích chập, kết hợp trích xuất tính năng Log-Mel Spectrogram và sử dụng CNN để nhận dạng giới tính và vùng miền tiếng Việt. Luận văn đã tiến hành thử nghiệm trên dữ liệu của cuộc thi Zalo AI 2019 và 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 để đánh giá kết quả. Hệ

85

thống nhận dạng giới tính và giọng nói vùng miền tiếng Việt vẫn cịn hạn chế và độ chính xác chưa cao, tuy nhiên đã đạt được các kết quả như sau:

➢ Phân tích và đánh giá mơ hình đề xuất.

➢ Xử lý dữ liệu âm thanh phù hợp với mạng CNN.

➢ Xây dựng được hệ thống nhận dạng tiếng nói tiếng Việt bằng phương pháp học sâu sử dụng mạng nơ ron tích chập CNN.

➢ Sử dụng công nghệ mới Flask Framework để trực quan hoá kết quả trên nền tảng website.

5.2. Hướng phát triển

Chuẩn hóa, xây dựng bộ dữ liệu âm thanh có độ tương đồng cao, giảm tối đa độ nhiễu.

Ngoài việc dùng Log-Mel Spectrogram kết hợp mạng nơ-ron tích chập CNN, cần xử lý giải quyết bài toán nhận dạng khác nhau như VGGNet, AlexNet, RestNet, DenseNet.

Tối ưu hóa giải thuật, lựa chọn các thông số phù hợp cho mạng CNN nhằm tăng khả năng nhận dạng giọng nói vùng miền Việt Nam.

86

CƠNG TRÌNH CƠNG BỐ

Trần Thanh Hiệp, Bùi Thanh Hùng. (2021). “Nhận dạng tiếng nói tiếng Việt

bằng phương pháp học sâu”, Kỷ yếu Ngày hội Khoa học cán bộ, giảng viên trẻ và

học viên cao học lần V - năm 2021. Đại học Thủ Dầu Một. 6.2021.

Bùi Thanh Hùng, Trần Thanh Hiệp. (2021). “Nhận dạng tiếng nói tiếng Việt

bằng phương pháp học sâu”, Fundamental and Applied Information Technology

87

TÀI LIỆU THAM KHẢO

[1] Fukushima, Kunihiko (April 1980). "A self-organizing neural network model for a mechanism of pattern recognition unaffected by shift in position". Biological Cybernetics. 36 (4): 193–202.

[2] Yoshua Bengio, Yann LeCun, Craig Nohl, Chris Burges. “LeRec: ANN/HMM Hybrid for On-Line Handwriting Recognition”, Neural

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 71)

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

(96 trang)