Sơ đồ cấu trúc của mạng nơ-ron hai lớp

Một phần của tài liệu Đồ án tốt nghiệp: “Nghiên cứu thiết kế ứng dụng điều khiển nhà Thông minh trên nền tảng Raspberry Pi và công nghệ AI xử lý tiếng nói” (Trang 33)

Việc triển khai mơ hình của mạng nơron hai lớp hoạt động trực tiếp có biểu diễn tốn học sau: 𝑦(𝜃) = 𝐹"<1 𝑊"!𝑓"<1 𝑤"!𝜙! + 𝑤!- ,. !%# ? + 𝑊!- ,. !%# ?

Trong đó các đầu vào vectơ là: - 𝑛𝜑: φ mạng nơ-ron

- 𝑛ℎ: Số lượng tế bào thần kinh trong lớp ẩn (hidden layer)

- 𝜃: vectơ của các tham số có thể định cấu hình của mạng nơ-ron, bao gồm trọng số

và độ lệch nơ-ron (𝑤!", 𝑊"!)

- 𝑓!(𝑥): Hàm kích hoạt cho các nơ-ron lớp ẩn

- 𝐹"(𝑥): Hàm kích hoạt nơ-ron ở lớp đầu ra.

Đặc điểm quan trọng nhất của phương pháp mạng nơ-ron là khả năng xử lý song song. Tính năng này nếu có một số lượng lớn các kết nối thần kinh quốc tế sẽ cho phép đẩy nhanh đáng kể quá trình xử lý dữ liệu signet. Khả năng xử lý tín hiệu giọng nói trong thời gian thực.

Nguyễn Tiến Hải – D17CQVT08B 24

2.3. Nhận diện giọng nói và chuyển hóa thành văn bản

Như chúng ta có thể tưởng tượng, lời nói của con người là nền tảng cho cuộc sống cá nhân và công việc hàng ngày của chúng ta, và chức năng Chuyển lời nói thành văn bản (Speech-to-text) có một số lượng lớn các ứng dụng. Người ta có thể sử dụng nó để ghi lại nội dung của các cuộc gọi hỗ trợ khách hàng hoặc bán hàng, cho các chatbot định hướng bằng giọng nói, hoặc để ghi lại nội dung của các cuộc họp và các cuộc thảo luận khác.

Dữ liệu âm thanh cơ bản bao gồm âm thanh và tiếng ồn. Lời nói của con người là một trường hợp đặc biệt của điều đó. Vì vậy, việc số hóa âm thanh, xử lý dữ liệu âm thanh và chuyển đổi âm thanh thành phổ tần số, cũng áp dụng cho việc hiểu giọng nói. Tuy nhiên, lời nói sẽ phức tạp hơn do nó là dạng mã hóa của ngơn ngữ.

Các vấn đề như phân loại âm thanh bắt đầu với một đoạn âm thanh và dự đốn âm thanh đó thuộc lớp nào, từ một tập hợp các lớp nhất định. Đối với Chuyển giọng nói thành văn bản, dữ liệu dùng để training bao gồm:

Đầu vào (X): đoạn âm thanh với giọng nói

Đầu ra mục tiêu (Y): Một bản ghi những gì đầu vào đã nói

Hình 2. 4. Đầu vào và đầu ra của hệ thống nhận diện giọng nói

2.4. Quy trình xử lý dữ liệu âm thanh

Chúng ta sẽ bắt đầu với các tệp âm thanh, chuyển đổi chúng thành quang phổ, nhập chúng vào mơ hình mạng nơ-ron với Bộ phân loại tuyến tính và đưa ra dự đoán về lớp mà âm thanh thuộc về.

Nguyễn Tiến Hải – D17CQVT08B 25

2.4.1. Tiền xử lý dữ liệu:

Quy trình tiền xử lý âm thanh giọng nói sẽ diễn ra các bước sau:

- Nhập tệp âm thanh: Thường sử dụng tệp “.wav” hoặc “.mp3”. Đọc tệp này sau đó chuyển về dạng 1 mảng 1 chiều (mảng 2D). Mảng này bao gồm một chuỗi các số, mỗi số đại diện cho phép đo cường độ hoặc biên độ của âm thanh tại một thời điểm cụ thể. Số lượng các phép đo như vậy được xác định bởi tốc độ lấy mẫu. Ví dụ: nếu tốc độ lấy mẫu là 44,1kHz, mảng này sẽ có một hàng 44.100 số cho 1 giây âm thanh. Ngồi ra, âm thanh có thể có một hoặc hai kênh, được gọi là mono hoặc stereo, theo cách nói thông thường. Với âm thanh hai kênh, chúng ta sẽ có một chuỗi số biên độ tương tự khác cho kênh thứ hai. Nói cách khác, mảng của chúng ta sẽ là 3D, với depth là 2.

- Chuyển đổi thành dạng Stereo (âm thanh 2 kênh) - Đưa về 2 mảng có cùng độ dài cố định

- Tăng cường chất lượng âm thanh: Chúng ta có thể áp dụng một số kỹ thuật nâng cao dữ liệu để thêm đa dạng hơn cho dữ liệu đầu vào của mình và giúp mơ hình học cách khái quát hóa cho nhiều loại đầu vào hơn. Chúng ta có thể Dịch chuyển thời gian âm thanh của mình sang trái hoặc phải một cách ngẫu nhiên theo một tỷ lệ nhỏ, hoặc thay đổi Cao độ (Pitch) hoặc Tốc độ (Speed) của âm thanh một lượng nhỏ.

- Chuyển đổi sang quang phổ Mel: Âm thanh thô này hiện được chuyển đổi thành quang phổ Mel. Quang phổ ghi lại bản chất của âm thanh dưới dạng hình ảnh bằng cách phân tách nó thành tập hợp các tần số có trong đó.

- Tiếp tục tăng cường chất lượng quang phổ nhận được

- MFCC: Đối với lời nói của con người, đơi khi có thể thực hiện thêm một bước nữa và chuyển đổi Quang phổ Mel thành MFCC (Mel Frequency Cepstral Coefficients). Các MFCC tạo ra một biểu diễn nén của Mel Spectrogram bằng cách chỉ trích xuất các hệ số tần số cơ bản nhất, tương ứng với các dải tần số mà con người nói.

Nguyễn Tiến Hải – D17CQVT08B 26 Hình 2. 6. Các bước tiền xử lý âm thanh

2.4.2. Kiến trúc hệ thống:

Có nhiều biến thể của kiến trúc deep learning cho một hệ thống nhận diện giọng nói tự động. Tuy nhiên, hai cách tiếp cận thường được sử dụng là:

- CNN (Convolutional Neural Network - Mạng nơ-ron tổng hợp) với kiến trúc dựa trên RNN (Recurrent Neural Network - Mạng nơ-ron lặp lại) sử dụng thuật toán CTC Loss để phân ranh giới từng ký tự của các từ trong lời nói.

- Một mạng liên kết trình tự dựa trên RNN xử lý mỗi 'lát cắt' (slice) của phổ là một phần tử trong một quá trình lặp lại (sequence).

Một mạng CNN với kiến trúc dựa trên RNN sẽ bao gồm 1 vài lớp CNN để xử lý phổ âm thanh và đưa ra đầu ra là một Feature Maps của phổ đó.

Nguyễn Tiến Hải – D17CQVT08B 27 Hình 2. 7. Các lớp CNN xử lý phổ để tạo Feature Maps

Một mạng lặp lại (RNN) thông thường bao gồm một vài lớp LSTM (Long Short Term Memory là một loại lớp lặp lại được s. ử dụng rất phổ biến) hai chiều xử lý bản đồ đối tượng địa lý dưới dạng một chuỗi các bước thời gian hoặc 'khung' riêng biệt tương ứng với chuỗi ký tự đầu ra mong muốn của chúng tơi. Nói cách khác, nó rời rạc hóa các feature maps.

Nguyễn Tiến Hải – D17CQVT08B 28 Hình 2. 8. RNN rời rạc hóa Feature maps và chuyển cho lớp LSTM 2 chiều

Sau đó, một lớp tuyến tính với softmax sử dụng đầu ra LSTM để tạo ra xác suất ký tự cho mỗi bước thời gian của đầu ra.

Hình 2. 9. Lớp tuyến tính và Softmax tạo ra xác suất ký tự cho mỗi bước thời gian Cuối cùng, ta sẽ ghép các “khung” đã chia trong phổ vào với bảng xác suất ký tự để có thể giải mã được đầu ra cuối cùng.

Nguyễn Tiến Hải – D17CQVT08B 29 Hình 2. 10. Giải mã bảng xác suất ký tự để đưa ra đầu ra cuối

2.5. Ứng dụng công nghệ AI vào nhận diện giọng nói 2.5.1. Mơ hình nhận dạng các mẫu giọng nói 2.5.1. Mơ hình nhận dạng các mẫu giọng nói

Các mẫu nhận dạng, mơ tả, phân loại và nhóm tự động là các tham số quan trọng trong các ngành khoa học và công nghệ khác nhau như sinh học, tâm lý học, y học, tiếp thị, thị giác máy tính, nhân tạo trong viễn thơng và viễn thám. Mẫu có thể là hình ảnh dấu vân tay, chữ viết tay, khn mặt người hoặc tín hiệu giọng nói. Việc nhận dạng / phân loại với mỗi mẫu có thể là một trong hai nhiệm vụ sau:

- Phân loại có giám sát, phân tích phân biệt, trong đó mẫu đầu vào được xác định là thành viên của một lớp được xác định trước

- Phân loại khơng giám sát, phân cụm trong đó lớp của mẫu khơng xác định.

Các ứng dụng này bao gồm khai thác dữ liệu định nghĩa về “kế hoạch”. Ví dụ, các mối tương quan hoặc độc lập trong hàng triệu mơ hình đa chiều, phân loại tài liệu tìm kiếm hiệu quả các tài liệu văn bản, tài chính, dự báo, tổ chức và truy xuất cơ sở dữ liệu đa phương tiện và sinh trắc học. Sức mạnh tính tốn sẵn có và phát triển nhanh chóng, cho phép xử lý nhanh hơn lượng dữ liệu khổng lồ, cũng thúc đẩy việc sử dụng các phương pháp phức tạp và đa dạng để phân loại và phân tích dữ liệu. Đồng thời, nhu cầu nhận dạng mẫu tự động ngày càng tăng do sự hiện diện của cơ sở dữ liệu lớn và yêu cầu khắt khe về tốc độ, độ chính xác và chi phí. Thiết kế mẫu hệ thống nhận dạng về cơ bản bao gồm ba khía cạnh sau:

Nguyễn Tiến Hải – D17CQVT08B 30 - Thu thập, xử lý trước và báo cáo về dữ liệu

- Quá trình đưa ra dự đốn (decision-making) - Phạm vi có thể xảy ra của các dự đốn

Từ các lược đồ và mơ hình đưa ra dự đốn, người ta nhận ra rằng việc định nghĩa rõ ràng, đủ giới hạn để nhận dạng sẽ tạo ra một mơ hình nhỏ gọn và q trình đưa ra dự đốn đơn giản hơn.

Học từ một tập hợp các ví dụ cho sẵn là một thuộc tính quan trọng và cần thiết của hầu hết các hệ thống mẫu nhận dạng.

Các cách tiếp cận nổi bật nhất để nhận dạng mẫu là: - Mẫu phù hợp

- Phân loại thống kê

- Sự phù hợp về cú pháp hoặc cấu trúc và mạng nơ-ron

2.5.2. Cách hệ thống hoạt động:

Phương pháp này bao gồm việc chọn lặp đi lặp lại điểm số xa nhất liên quan đến giá trị trung bình. Nếu điểm số này vượt quá một ngưỡng nhất định, điểm số sẽ bị xóa và ước tính độ lệch chuẩn và trung bình sẽ được tính tốn lại. Khi chỉ có một vài mốc để ước tính giá trị trung bình và phương sai, phương pháp này dẫn đến một cải tiến lớn.

2.5.3. Thuật tốn xử lý giọng nói

- Nhập tín hiệu vào máy tính và chọn ranh giới từ - Phân bổ các tham số đặc trưng cho phổ tín hiệu

- Sử dụng mạng nơron nhân tạo để đánh giá mức độ gần nhau của các thông số âm thanh

- So sánh với các tiêu chuẩn trong từ điển

2.6. KẾT LUẬN CHƯƠNG

Chương 2 đã trình bày về khái niệm trí tuệ nhân tạo, vấn đề nhận diện giọng nói và chuyển đổi chúng thành văn bản và cách trí tuệ nhân tạo ứng dụng vào vấn đề nhận diện giọng nói. Việc áp dụng trí tuệ nhân tạo vào nhận diện, chuyển đổi giọng nói thành văn bản là công nghệ đi đầu của các ông lớn trong ngành công nghệ, làm cơ sở để chương 3 trình bày hệ thống thực tế có tính năng chuyển đổi giọng nói thành văn bản sử dụng công nghệ được xây dựng sẵn của hai hệ điều hành Android và iOS.

Nguyễn Tiến Hải – D17CQVT08B 31

CHƯƠNG 3

XÂY DỰNG HỆ THỐNG THỬ NGHIỆM 3.1. Kiến trúc của hệ thống thử nghiệm

Hệ thống thử nghiệm sẽ bao gồm các thành phần chính:

- Ứng dụng di động cho người dùng: mang lại giao diện người dùng giúp người dùng dễ dàng thao tác với hệ thống nhà thông minh, sử dụng framework React Native - Server: với nhiệm vụ nhận các lệnh của người dùng từ phía ứng dụng di dộng và

đưa ra các lệnh gửi tới hệ thống điều khiển các thiết bị trong nhà, sử dụng NodeJS - Cơ sở dữ liệu: Lưu trữ các dữ liệu cần thiết của toàn bộ hệ thống, sử dụng InfluxDB - Kết nối MQTT: Là kết nối được sử dụng để kết nối giữa Server và Raspberry Pi

cho việc trao đổi thông tin và ra lệnh cho hệ thống

- Raspberry Pi: Có nhiệm vụ kết nối vật lý tới các thiết bị cuối (như đèn, cửa, … ) và nhận lệnh từ phía Server để điều khiển các thiết bị đó

- Các thiết bị cuối: Các thiết bị cơ bản trong nhà như đèn, cửa, …

Hình 3. 1. Kiến trúc cơ bản của hệ thống thử nghiệm

3.2. Các công nghệ sử dụng trong hệ thống 3.2.1. Framework React Native: 3.2.1. Framework React Native:

3.2.1.1. Khái niệm về React và React Native

React (còn được gọi là React.js hoặc ReactJS) là một thư viện JavaScript front- end mã nguồn mở và miễn phí để xây dựng giao diện người dùng hoặc các thành phần UI. Nó được duy trì bởi Facebook và một cộng đồng các nhà phát triển và công ty cá nhân. React có thể được sử dụng như một cơ sở để phát triển các ứng dụng một trang hoặc ứng dụng di động. React Native là một framework mã nguồn mở được sáng tạo bởi Facebook. Nó được sử dụng để phát triển ứng dụng di động Android, IOS, Web và UWP bằng cách cho phép các nhà phát triển sử dụng React với môi trường ứng dụng gốc (Native).

Nguyễn Tiến Hải – D17CQVT08B 32 Hình 3. 2. Logo React Native

3.2.1.2. Luồng hoạt động của React Native

Có ba luồng chính trong môi trường thực thi React Native, luồng JavaScript, luồng chính Native và luồng nền để xử lý Shadow Node. Trong kiến trúc hiện tại, giao tiếp giữa các luồng này xảy ra qua thư viện được gọi là "cầu nối". Nhóm React Native đang tích cực làm việc trên bản nâng cấp kiến trúc lớn và bài viết này cung cấp một cái nhìn tổng quan tuyệt vời về lý do và cách thức thay đổi là cần thiết.

Nguyễn Tiến Hải – D17CQVT08B 33

3.2.1.3. Các kiến trúc thường dùng trong dự án React Native

MVC, MVP hay MVVM là 3 trong số những kiến trúc phổ biến nhất dành cho ứng dụng di động. MVC là viết tắt của Model-View-Controller, MVP là Model-View- Presenter và MVVM nghĩa là Model-View-ViewModel. Tất cả các kiến trúc này đã và đang giúp cho việc phát triển ứng dụng nhanh chóng, dễ test và bảo trì. Chúng là các pattern cơ bản được trình bày mục đích chính là giảm sự phức tạp của code trên tầng giao diện và làm cho giao diện người dùng đơn giản và có thể quản lý.

3.2.1.3.1. Mơ hình MVC

Mẫu thiết kế Model View Controller (MVC) chỉ định rằng một ứng dụng bao gồm một mơ hình dữ liệu, thơng tin trình bày và thơng tin điều khiển. Mơ hình u cầu mỗi cái này phải được tách biệt thành các đối tượng khác nhau.

MVC hơn cả một mơ hình kiến trúc, nhưng khơng phải là ứng dụng hồn chỉnh. MVC chủ yếu liên quan đến giao diện người dùng / lớp tương tác của một ứng dụng.

Hình 3.4. Sơ đồ mơ hình MVC

- Model: chỉ chứa dữ liệu ứng dụng thuần túy, nó khơng chứa logic mơ tả cách trình bày dữ liệu cho người dùng.

- View: trình bày dữ liệu của Model cho người dùng. View biết cách truy cập dữ liệu của Model nhưng không biết dữ liệu này có ý nghĩa gì hoặc người dùng có thể làm gì để thao tác với nó.

- Controller: tồn tại giữa View và Model. Nó lắng nghe các sự kiện được kích hoạt bởi View (hoặc một nguồn bên ngoài khác) và thực hiện hành động thích hợp với

Nguyễn Tiến Hải – D17CQVT08B 34 những sự kiện này. Trong hầu hết các trường hợp, phản ứng là gọi một phương thức trên Model. Vì View và Model được kết nối thông qua cơ chế thơng báo, kết quả của hành động này sau đó sẽ tự động được cập nhật tại View.

3.2.1.3.2. Mơ hình MVP

Mẫu MVP tương tự như mẫu MVC. Nó có nguồn gốc từ mẫu MVC, trong đó Controller được thay thế bởi Presenter. Mơ hình này này chia ứng dụng thành ba khía cạnh chính: Model, View, and Presenter.

Hình 3. 4. Sơ đồ mơ hình MVP

- Model: đại diện cho một tập hợp các lớp mô tả logic nghiệp vụ và dữ liệu. Nó cũng xác định các quy tắc nghiệp vụ cho dữ liệu nghĩa là cách dữ liệu có thể được thay đổi và thao tác.

- View: là một thành phần tương tác trực tiếp với người dùng như XML, Activity, các phân đoạn. Nó khơng chứa bất kỳ logic nào được thực hiện.

- Presenter: Người trình bày nhận thơng tin đầu vào từ người dùng thông qua View, sau đó xử lý dữ liệu của người dùng với sự trợ giúp của Model và chuyển kết quả trở lại View. Presenter giao tiếp với View thông qua giao diện. Giao diện được định nghĩa trong lớp Presenter, lớp mà nó truyền dữ liệu cần thiết. Activity/fragment

Một phần của tài liệu Đồ án tốt nghiệp: “Nghiên cứu thiết kế ứng dụng điều khiển nhà Thông minh trên nền tảng Raspberry Pi và công nghệ AI xử lý tiếng nói” (Trang 33)

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

(77 trang)