Daotao.vku.udn.vn



ĐẠI HỌC ĐÀ NẴNG

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN & TRUYỀN THÔNG VIỆT-HÀN

-----(((((-----

BÁO CÁO ĐỒ ÁN 4

[pic]

ĐỀ TÀI

XÂY DỰNG TRỢ LÝ ẢO BẰNG PYTHON

Sinh Viên Thực Hiện: Lê Quang Nhật

Bùi Tấn Lâm

Lớp: 18IT2

Giảng Viên Hướng Dẫn: ThS. Dương Thị Mai Nga

Đà Nẵng, tháng 1 năm 2020

ĐẠI HỌC ĐÀ NẴNG

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN & TRUYỀN THÔNG VIỆT-HÀN

-----(((((-----

BÁO CÁO ĐỒ ÁN 4

[pic]

ĐỀ TÀI

XÂY DỰNG TRỢ LÝ ẢO BẰNG PYTHON

Sinh Viên Thực Hiện: Lê Quang Nhật

Bùi Tấn Lâm

Lớp: 18IT2

Giảng Viên Hướng Dẫn: ThS. Dương Thị Mai Nga

Đà Nẵng, tháng 1 năm 2020

MỞ ĐẦU

Ngày nay, ứng dụng công nghệ thông tin và việc tin học hóa được xem là một trong những yếu tố mang tính quyết định trong hoạt động của các chính phủ, tổ chức, cũng như của các công ty, nó đóng vai trò hết sức quan trọng, có thể tạo ra những bước đột phá mạnh mẽ.

Sự phát triển nhanh chóng của AI và học máy đã giúp phát triển công nghệ nhận dạng giọng nói, công nghệ này ngày càng đi sâu vào mọi lĩnh vực trong cuộc sống.

Từ những điều trên, cũng với những phân tích bên dưới, ta sẽ chứng minh một cách sinh động rằng tại sao công nghệ điều khiển giọng nói nên được coi là xu thế công nghệ hiện tại không chỉ bới những ông lớn về IT hay những người có niềm đam mê với AI mà các doanh nghiệp cũng đang ráo riết nâng cấp, tối ưu hệ thống bằng công nghệ giọng nói hay còn gọi là trợ lý ảo.

Bắt nguồn với ý tưởng này, cùng với những gợi ý của cô Dương Thị Mai Nga, em đã thực hiện đồ án:

“XÂY DỰNG TRỢ LÝ ẢO BẰNG NGÔN NGỮ PYTHON”

LỜI CẢM ƠN

Để đồ án này đạt kết quả tốt đẹp, chúng em đã nhận được sự hỗ trợ, giúp đỡ của thầy cô. Với tình cảm sâu sắc, chân thành, cho phép chúng em được bày tỏ lòng biết ơn sâu sắc đến tất cả quý thầy cô đã tạo điều kiện giúp đỡ trong quá trình học tập, nghiên cứu và phát triển đề tài.

Trước hết chúng em xin gửi tới quý thầy cô Khoa Công Nghệ Thông Tin và Truyền Thông - Đại Học Đà Nẵng lời chào trân trọng, lời chúc sức khỏe và lời cảm ơn sâu sắc nhất. Với sự quan tâm, chỉ bảo tận tình và truyền đạt những kiến thức bổ ích cho chúng em suốt thời gian học kỳ vừa rồi, giúp em có thêm nhiều kiến thức và hiểu rõ hơn các vấn đề mình nghiên cứu, đến nay chúng em đã có thể hoàn thành đề tài báo cáo môn Lập trình mạng.

Đặc biệt chúng em xin gửi lời cảm ơn chân thành nhất đến giảng viên ThS. Dương Thị Mai Nga đã quan tâm giúp đỡ tận tình chúng em hoàn thành tốt đồ án này trong thời gian qua.

Với điều kiện thời gian cũng như kinh nghiệm còn hạn chế, đồ án này sẽ không thể tránh được những thiếu sót. Chúng em rất mong nhận được sự chỉ bảo, đóng góp ý kiến của các thầy cô, để chúng em có thể bổ sung, nâng cao kinh nghiệm và kỹ năng của bản thân để phục vụ cho công việc thực tế sau này.

Chúng em xin chân thành cảm ơn!

NHẬN XÉT

(Của giảng viên hướng dẫn)

………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………

Đà nẵng, ngày tháng năm 2020

Giảng viên hướng dẫn

ThS. Dương Thị Mai Nga

MỤC LỤC

Trang

Chương 1 TỔNG QUAN ĐỀ TÀI 1

1.1 Lý do chọn đề tài 1

1.2 Cấu trúc đồ án 1

1.3 Phương pháp nghiên cứu 1

1.4 Đối tượng nghiên cứu và phạm vi nghiên cứu 2

1.5 Kế hoạch thực hiện 2

1.6 Dự kiến kết quả 2

Chương 2 CƠ SỞ LÝ THUYẾT 3

2.1 Tổng quan về trợ lý ảo 3

2.1.1 Sự phát triển của trợ lý ảo 3

2.1.2 Trợ lý ảo là gì? 4

2.1.3 Các loại trợ lý ảo 5

2.1.4 Một số ứng dụng trợ lý ảo hiện có 5

2.1.5 Ứng dụng thực tế của trợ lý ảo 9

2.1.6 Ưu điểm của trợ lý ảo 11

2.2 Giới thiệu về ngôn ngữ lập trình Python 11

2.2.1 Định nghĩa và nguồn gốc về Python 11

2.2.1.1 Định nghĩa 11

2.2.1.2 Nguồn gốc 12

2.2.2 Các tính năng của Python 12

2.2.3 Ưu điểm và hạn chế của ngôn ngữ lập trình Python 13

2.3 Giới thiệu về công cụ lập trình Pycharm 14

2.3.1 Sơ lược về Pycharm 14

2.3.2 Tại sao chọn Pycharm 15

Chương 3 PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG 16

3.1 Các Actor 16

3.2 Yêu cầu người sử dụng 16

3.3 Chức năng của hệ thống trợ lý ảo 16

3.4 Ưu điểm của chương trình trợ lý ảo 17

3.5 Các thư viện cơ bản được sử dụng trong chương trình 17

3.6 Các bước xây dựng chương trình 18

3.7 Nguyên lý hoạt động của chương trình trợ lý ảo 18

3.8 Biểu đồ Usecase 19

3.9 Biểu đồ lớp 20

3.10 Biểu đồ hoạt động 20

Chương 4 KẾT QUẢ ĐẠT ĐƯỢC VÀ CHƯƠNG TRÌNH DEMO 21

4.1 Kết quả đạt được 21

4.2 Code minh họa 21

4.3 Demo chương trình 24

Chương 5 KẾT LUẬN 28

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

5.2 Hạn chế 28

5.3 Hướng phát triển 28

TÀI LIỆU THAM KHẢO 29

DANH MỤC HÌNH ẢNH

Trang

Hình 1 Sự phát triển của trợ lý ảo 3

Hình 2 Trợ lý ảo là gì? 4

Hình 3 Trợ lý ảo Google được phát triển bởi google cho thiết bị di động và nhà thông minh 5

Hình 4 Trợ lý ảo Alex được phát triển bởi Amazon,có nhiệm vụ thực hiện mệnh lệnh của người dùng 6

Hình 5 Trợ lý ảo Siri được điều khiển bằng giọng của hãng Apple 7

Hình 6 Trợ lý ảo Cortana là trợ lý cá nhân thông minh được tạo bởi Microsoft dành cho Windows10 7

Hình 7 Trợ lý ảo Bixby, ứng dụng trợ lý cá nhân của SAMSUNG- một trong những trợ lý thông minh nhất 8

Hình 8 Trợ lý ảo Databox - ứng dụng đa nền tảng với chức năng cơ bản nhất( không phải từ một thương hiệu lớn) 8

Hình 9 Trợ lý ảo Lyra - trợ lý đa nền tảng sử dụng trên điện thoại thông minh, máy tính bảng và máy tính 9

Hình 10 Ứng dụng thực tế của trợ lý ảo vào trong các lĩnh vực và các chức năng cơ bản của nó 10

Hình 11 Python là gì? 12

Hình 12 Các tính năng của python trong lập trình( Ưu điểm và hạn chế của ngôn ngữ python) 13

Hình 13 Sơ lược về Pycharm ( Phiên bản, nguồn gốc và công dụng của công cụ lập trình Pycharm) 15

Hình 14 Nguyên lý hoạt động của trợ lý ảo trong quá trình nhận và thực hiện mệnh lệnh của người dùng 18

Hình 15 Biểu đồ Usecase 19

Hình 16 Biểu đồ lớp 20

Hình 17 Biểu đồ hoạt động 20

Hình 18 Hình ảnh chương trình demo trợ lý ảo có giao diện 24

Hình 19 Chương trình trợ lý ảo bắt đầu khởi động trên console của công cụ lập trình Pycharm 25

Hình 20 Minh họa giao tiếp cơ bản giữa người dùng và trợ lý ảo 25

Hình 21 Chức năng tìm kiếm cực nhanh của trợ lý ảo trên google search 26

Hình 22 Demo chức năng mở camera của hệ thống máy tính 26

Hình 23 Demo chức năng định vị biết được vị trí bạn đang ở đâu 27

Hình 24 Chức năng cho biết được hôm nay là ngày bao nhiêu và giờ hiện tại 27

TỔNG QUAN ĐỀ TÀI

1 Lý do chọn đề tài

Sự phát triển nhanh chóng của AI và học máy đã giúp phát triển công nghệ nhận dạng giọng nói, công nghệ này ngày càng đi sâu vào mọi lĩnh vực trong cuộc sống.

Từ những điều trên, cũng với những phân tích bên dưới, ta sẽ chứng minh một cách sinh động rằng tại sao công nghệ điều khiển giọng nói nên được coi là xu thế công nghệ hiện tại không chỉ bới những ông lớn về IT hay những người có niềm đam mê với AI mà các doanh nghiệp cũng đang ráo riết nâng cấp, tối ưu hệ thống bằng công nghệ giọng nói hay còn gọi là trợ lý ảo.

Những năm gần đây, Trợ lý ảo đã dần trở thành xu hướng công nghệ được đón đầu. Các “ông lớn” làng công nghệ thế giới đã cho ra đời các trợ lý ảo, được nhiều người biết đến như: Apple Siri, Google Assistant, Amazon Alexa, Microsoft Cortana. Từ đó chúng tôi muốn xây dựng một trợ lý ảo dựa trên nền tảng trí thông minh nhân tạo(AI) nhằm hỗ trợ cho người dùng dễ dàng sử dụng bằng giọng nói.

2 Cấu trúc đồ án

− Chương 1: Tổng quan đề tài

− Chương 2: Cơ sở lý thuyết

− Chương 3: Phân tích và thiết kế hệ thống

− Chương 4: Kết quả đạt được và chương trình demo

− Chương 5: Kết luận

− Tài liệu tham khảo

3 Phương pháp nghiên cứu

− Tìm hiểu về ngôn ngữ Python

− Tìm hiểu về công cụ lập trình Pycharm

− Tìm hiểu các thư viện hỗ trợ lập trình

− Tìm hiểu các trợ lý ảo hiện có

− Phân tích các chức năng và yêu cầu cần có

− Tiến hành thu thập và nghiên cứu các tài liệu có liên quan đến đề tài. Tổng hợp các tài liệu. Chọn lọc các tài liệu nghiên cứu để báo cáo luận văn.

− Kiểm tra kết quả đạt được

4 Đối tượng nghiên cứu và phạm vi nghiên cứu

− Tìm hiểu về cách xây dựng, hoạt động, các tài liệu liền quan đến đề tài

− Tìm hiểu về ngôn ngữ python, cách hoạt động của các trợ lý ảo có sẵn

− Nghiên cứu các tài liệu liên quan.

− Tìm hiểu các công cụ lập trình tối ưu

− Đối tượng sử dụng: tất cả mọi người có nhu cầu sử dụng giúp tiết kiệm thời gian,…

5 Kế hoạch thực hiện

|Thời gian |Nội dung thực hiện |

|Tuần thứ 15 từ 09/11 đến 15/11 |Hoàn thành đề cương . |

|Tuần thứ 16 từ 16/11 đến 22/11 |Chuẩn bị và nghiên cứu tài liệu |

|Tuần thứ 17 từ 23/11 đến 29/11 |Tiến hành xây dựng trợ lý ảo |

|Tuần thứ 18 từ 30/11 đến 06/12 |Xây dựng các chức năng |

|Tuần thứ 19 từ 07/12 đến 13/12 |Tiếp tục xây dựng các chức năng và viết báo cáo |

|Tuần thứ 20 từ 14/12 đến 20/12 |Hoàn thiện trợ lý ảo và báo cáo. |

6 Dự kiến kết quả

Xây dựng hoàn thiện và demo được chương trình trợ lý ảo với các chức năng cơ bản bằng ngôn ngữ Python

CƠ SỞ LÝ THUYẾT

1 Tổng quan về trợ lý ảo

1 Sự phát triển của trợ lý ảo

Trong khoảng 1 thập kỉ trợ lại đây, vẫn chưa có một cuộc cách mạng nào thực sự có thể thay đổi thói quen của người dùng.

Tuy vậy, những năm gần đây, sự phát triển của công nghệ AI, nhận diện giọng nói và máy học hứa hẹn sẽ tạo ra một cuộc cách mạng mới về hình thức tương tác với các thiết bị công nghệ. Không bấm, không vuốt, người dùng tương lai có thể sẽ chuyển sang nói.

Ưu điểm của ra lệnh giọng nói là giúp người dùng tương tác với thiết bị ít hơn nhưng có hiệu suất làm việc cao hơn. Điều này rất cần thiết cho lối sống đa nhiệm. Người dùng có thể vừa chuẩn bị bữa sáng, vừa nghe trợ lý ảo đọc tin tức. Hay có thể vừa lái xe và ra lệnh tìm kiếm đường. Giọng nói là hình thức tương tác giúp rút ngắn thời gian nhập lệnh tốt nhất hiện nay.

[pic]

Hình 1 Sự phát triển của trợ lý ảo

Ngoài ra, trợ lý ảo nhận lệnh bằng giọng nói có thể giúp người dùng giảm dần thời gian sử dụng điện thoại di động, điều mà các ông lớn công nghệ bắt đầu quan tâm.

Sự phát triển nhanh chóng của AI và học máy đã giúp phát triển công nghệ nhận dạng giọng nói, công nghệ này ngày càng đi sâu vào mọi lĩnh vực trong cuộc sống. Từ những điều trên, cùng với những phân tích bên dưới, Hybrid Technologies sẽ chứng minh một cách sinh động cho các bạn thấy rằng tại sao công nghệ điều khiển giọng nói nên được coi là xu thế công nghệ hiện tại không chỉ bởi những ông lớn về IT hay những người có niềm đam mê với AI mà các doanh nghiệp cũng đang ráo riết nâng cấp, tối ưu hệ thống bằng công nghệ giọng nói hay còn gọi là “Trợ lý ảo”.

2 Trợ lý ảo là gì?

[pic]

Hình 2 Trợ lý ảo là gì?

Trợ lý ảo (Virtual Assistant) hay còn gọi là trợ lý AI hay trợ lý kỹ thuật số, là chương trình ứng dụng được thiết kế để "hiểu" các lệnh thoại bằng ngôn ngữ tự nhiên và thực hiện các tác vụ cho người dùng. Các tác vụ này bao gồm đọc tin nhắn văn bản hoặc địa chỉ email, tìm kiếm số điện thoại, lên lịch, đặt cuộc gọi điện và nhắc nhở người dùng cuối về các cuộc hẹn.

Trợ lý ảo là một ứng dụng lập trình hướng nhiệm vụ, nhận dạng giọng nói của con người và thực hiện các lệnh được phát âm bởi người dùng. Nền tảng của nó là AI và năng suất của nó dựa vào việc lưu trữ hàng triệu từ và hàng triệu cụm từ. Không giống như các thiết bị nhận dạng giọng nói đầu tiên mà các nhà khoa học đang nghiên cứu vào những năm 40-50 của thế kỷ trước, các trợ lý kỹ thuật số hiện đại không bị hạn chế bởi một mẫu ngôn ngữ hoặc từ vựng nhất định. Ví dụ năm 2018, ta có hai loại phần mềm trợ lý giọng nói phổ biến:

− Trợ lý ảo tại nhà

− Trợ lý ảo tại công sở

Loại đầu tiên thuộc về tự động hóa ngôi nhà (còn gọi là nhà thông minh), một hệ thống cho phép điều khiển thiết bị, ánh sáng, điện, thiết bị và những thứ khác lấp đầy trong nhà của chúng ta. Nhà thông minh đòi hỏi phải có kết nối internet và là một phần của Internet vạn vật (IoT). 

Loại thứ hai, trợ lý ảo cho nơi làm việc, có thể được sử dụng ngoài liên lạc với tự động hóa tòa nhà, như một ứng dụng độc lập được kết hợp như thói quen của mọi người trong nhóm.

|[pic] |tất cả các tìm kiếm trên internet sẽ được thực hiện bằng giọng nói vào năm 2020 |

|[pic] |của các tổ chức triển khai chatbot AI trong công ty của họ |

|[pic] |của các công ty áp dụng trợ lý giọng nói sử dụng chúng soạn văn bản thay thế việc gõ thủ công |

|[pic] |của các tổ chức tận hưởng cách chatbot đơn giản hóa sự hợp tác giữa các nhóm |

|[pic] |của các doanh nghiệp sử dụng trợ lý AI để quản lý lịch nhân viên |

3 Các loại trợ lý ảo

Về cơ bản trợ lý ảo khác với AI được lập trình hướng tới người dùng khác, được gọi là cố vấn thông minh. Các chương trình cố vấn thông minh được lập trình theo chủ đề, còn trợ lý ảo được lập trình theo tác vụ.

4 Một số ứng dụng trợ lý ảo hiện có

− Trợ lý Google

■ Nền tảng được hỗ trợ: Hệ điều hành-Android, iOS, Chrome OS, iOS, Linux

■ Thiết bị thông minh - Google Home

[pic]

Hình 3 Trợ lý ảo Google được phát triển bởi google cho thiết bị di động và nhà thông minh

− Amazon Alexa: lần đầu tiên được phát hành với Amazon Echo, Alexa sớm trở thành một trợ lý giọng nói ảo được công nhận rộng rãi. Tuy nhiên, không giống như Google Assistant, có thể khó sử dụng Amazon Alexa trừ khi bạn đang dùng nó với thiết bị Echo hoặc Firestick. Là một ứng dụng trên điện thoại thông minh Android hoặc Apple của bạn, Alexa chủ yếu là bộ điều khiển cho các thiết bị thông minh khác của Amazon.

[pic]

Hình 4 Trợ lý ảo Alex được phát triển bởi Amazon,có nhiệm vụ thực hiện mệnh lệnh của người dùng

− Siri: là trợ lý giọng nói đầu tiên khiến iPhone trở nên phổ biến hơn. Được ra mắt vào tháng 10 năm 2011, Apple Siri đã đi được một chặng đường dài. Được tạo để cho phép người dùng iPhone sống cuộc sống tiện nghi, Siri có thể:

• Trả lời câu hỏi

• Thực hiện cuộc gọi

• Danh bạ FaceTime

• Gửi văn bản

• Cung cấp thông tin cập nhật về thể thao

• Đặt báo thức và thời gian, v.v.

[pic]

Hình 5 Trợ lý ảo Siri được điều khiển bằng giọng của hãng Apple

− Cortana: các nền tảng được hỗ trợ: Windows 10, Windows 10 Mobile, Windows Phone 8, Android, iOS, Amazon Alexa, Gọi loa thông minh, Surface headphone, Microsoft Band, Xbox One và Windows Mixed Reality

[pic]

Hình 6 Trợ lý ảo Cortana là trợ lý cá nhân thông minh được tạo bởi Microsoft dành cho Windows10

− Bixby: nền tảng được hỗ trợ: Chỉ các thiết bị Samsung

[pic]

Hình 7 Trợ lý ảo Bixby, ứng dụng trợ lý cá nhân của SAMSUNG- một trong những trợ lý thông minh nhất

− Databox: nằm ngoài cuộc chiến với các công ty công nghệ lớn, DataBot là một ứng dụng trợ lý ảo cá nhân nằm cao hơn mức trung bình với đối thủ còn lại. Một ứng dụng đa nền tảng, với DataBot, bạn có được những thứ trợ lý cá nhân cơ bản nhất cùng với tùy chỉnh và chatbot. Có nhiều mô-đun khác nhau có sẵn mà bạn có thể sử dụng để tùy chỉnh trợ lý giọng nói này.

[pic]

Hình 8 Trợ lý ảo Databox - ứng dụng đa nền tảng với chức năng cơ bản nhất( không phải từ một thương hiệu lớn)

− Lyra: một ứng dụng trợ lý cá nhân dựa trên đám mây, Lyra là một trợ lý giọng nói đa nền tảng có thể được sử dụng trên Điện thoại thông minh, máy tính bảng và máy tính. Tập trung vào việc thực hiện các cuộc hội thoại thông minh, bạn có thể mong đợi trợ lý ảo Lyra tìm thấy:

• Nhà hàng và quán bar tốt nhất

• Nhận báo cáo thời tiết

• Nhanh chóng tìm vị trí trên Google Map

• Dịch 70 ngôn ngữ

• Thông tin về phương tiện truyền thông xã hội

• Cung cấp kiến thức chung

[pic]

Hình 9 Trợ lý ảo Lyra - trợ lý đa nền tảng sử dụng trên điện thoại thông minh, máy tính bảng và máy tính

5 Ứng dụng thực tế của trợ lý ảo

Phát triển mạng nơ-ron và xử lý ngôn ngữ tự nhiên hoàn toàn hoạt động theo hướng biến điều khiển giọng nói thành một tiêu chuẩn mới cho nhiều sản phẩm và hành động mà mọi người sử dụng/thực hiện hàng ngày. Chiến lược Amazon Alexa Everywhere bắt đầu một xu hướng mới của các công ty phát hành bộ công cụ phát triển thiết bị dịch vụ để tích hợp ứng dụng trợ lý giọng nói. Các nhà sản xuất thiết bị gia dụng như LG, Whirlpool và Phillips đã bắt đầu phát hành các mặt hàng hỗ trợ Alexa và phản ứng của người tiêu dùng nhanh chóng thu hút sự chú ý của các doanh nhân vào các ứng dụng trợ lý giọng nói. 72% chủ sở hữu trợ lý ảo thừa nhận rằng thiết bị của họ nhanh chóng trở thành một phần thiết yếu trong thói quen hàng ngày của họ và họ không muốn bỏ bộ điều khiển giọng nói này do thói quen bắt đầu hình thành và dễ sử dụng. 

Vì vậy, các nghĩa vụ và nhiệm vụ thực tế mà ứng dụng trợ lý AI có thể làm cho con người là gì? Bao nhiêu trong số chúng hoạt động tốt? Sau đây là một vài công việc mà trợ lý ảo có thể thực hiện :

[pic]

Hình 10 Ứng dụng thực tế của trợ lý ảo vào trong các lĩnh vực và các chức năng cơ bản của nó

Gửi thông tin cập nhật về các chủ đề mà bạn quan tâm mà không cần bạn tìm kiếm chúng (ví dụ: luật & quy định mới được chính phủ triển khai nếu áp dụng cho doanh nghiệp của bạn);

• Báo cáo thời tiết;

• Thêm các sự kiện và các cuộc họp vào lịch của một nhóm hoặc từng thành viên riêng biệt;

• Đặt báo thức và nhắc nhở để mọi thứ diễn ra theo đúng lịch trình;

• Trả lời câu hỏi chung bằng giọng nói (thay vì mở liên kết để bạn tìm kiếm câu trả lời);

• Tạo và điền vào danh sách việc cần làm;

• Thực hiện dịch thuật thời gian thực;

• Ngay lập tức cập nhật cho bạn về lưu lượng trên tuyến đường của bạn (đặc biệt hữu ích cho các hoạt động hậu cần);

• Theo dõi hàng tồn kho trong kho và tự động điền vào danh sách mua sắm với các mặt hàng sẽ được đưa ra ngoài;

• Điều khiển các thiết bị khác từ ánh sáng đến PC;

• Đọc email và các tài liệu khác thành tiếng thay vì bạn đọc chúng;

• Ghi lại lời nói chính tả và chuyển nó thành văn bản thay vì bạn gõ thủ công;   

• Tìm các doanh nghiệp địa phương và nhà thầu cho nhu cầu hiện tại của bạn.

6 Ưu điểm của trợ lý ảo

• Khả năng nhận diện giọng nói và phân tích văn bản (Voice to Text – Text to Voice)

Bằng trí thông minh nhân tạo, những trợ lý ảo có thể nhận diện giọng nói chính xác, cho phép người dùng có thể tương tác với máy tính bằng giọng nói dễ dàng. Ví dụ, trợ lý ảo Siri của Apple sẽ bắt đầu khởi chạy ngay khi bạn nói “Hey Siri” thay vì phải nhấn giữ nút Home trên iPhone, iPad, sau đó có thể tiếp tục ra lệnh cho Siri thực hiện những điều bạn muốn.

• Khả năng xử lý ngôn ngữ tự nhiên (Công nghệ NLP – Natual Language Process)

Trợ lý ảo còn có thể xử lý ngôn ngữ và đưa ra những câu trả lời phản hồi người dùng, tạo nên sự tương tác giữa người dùng và thiết bị giống hệt cuộc nói chuyện giữa người với người.

• Sức mạnh tìm kiếm (Search Engine)

“Đứng sau” trợ giúp cho tính năng tìm kiếm của các trợ lý ảo chính là những công cụ đình đám như Bing, Google Search, thư viện bách khoa toàn thư Wikipedia hay Wolfram Alpha. Với những kho dữ liệu khổng lồ như vậy, rõ ràng những trợ lý ảo sẽ có khả năng tìm kiếm cực kỳ mạnh mẽ cả về tốc độ lẫn sự chính xác trong kết quả tìm kiếm.

• Khả năng học từ người dùng

Trợ lý ảo hoàn toàn có thể thu thập dữ liệu từ các thói quen sử dụng, tìm kiếm dữ liệu của người dùng và đưa ra những gợi ý chính xác nhất, và Trợ lý ảo sẽ “học” từ thói quen người dùng và trở nên “giỏi” hơn mỗi ngày.

• Tốc độ xử lý cao

2 Giới thiệu về ngôn ngữ lập trình Python

1 Định nghĩa và nguồn gốc về Python

1 Định nghĩa

Phiên bản sử dụng trong đồ án: Python 3.9.0

Python là một ngôn ngữ lập trình bậc cao cho các mục đích lập trình đa năng, do Guido van Rossum tạo ra và lần đầu ra mắt vào năm 1991. Python được thiết kế với ưu điểm mạnh là dễ đọc, dễ học và dễ nhớ. Python là ngôn ngữ có hình thức rất sáng sủa, cấu trúc rõ ràng, thuận tiện cho người mới học lập trình. Cấu trúc của Python còn cho phép người sử dụng viết mã lệnh với số lần gõ phím tối thiểu.

Python là một ngôn ngữ lập trình thông dịch (interpreted), hướng đối tượng (object-oriented), và là một ngôn ngữ bậc cao (high-level)  ngữ nghĩa động (dynamic semantics). Python hỗ trợ các module và gói (packages), khuyến khích chương trình module hóa và tái sử dụng mã. Trình thông dịch Python và thư viện chuẩn mở rộng có sẵn dưới dạng mã nguồn hoặc dạng nhị phân miễn phí cho tất cả các nền tảng chính và có thể được phân phối tự do.

[pic]

Hình 11 Python là gì?

2 Nguồn gốc

Rossum – Tác giả của Python, là fan của một sê-ri chương trình hài cuối những năm 1970, và cái tên “Python” được lấy từ tên một phần trong sê-ri đó “Monty Python’s Flying Circus”.

2 Các tính năng của Python

• Ngữ pháp đơn giản, dễ đọc.

• Vừa hướng thủ tục (procedural-oriented), vừa hướng đối tượng (object-oriented)

• Hỗ trợ module và hỗ trợ gói (package)

• Xử lý lỗi bằng ngoại lệ (Exception)

• Kiểu dữ liệu động ở mức cao.

• Có các bộ thư viện chuẩn và các module ngoài, đáp ứng tất cả các nhu cầu lập trình.

• Có khả năng tương tác với các module khác viết trên C/C++(Hoặc Java cho Python, hoặc .Net cho IronPython).

• Có thể nhúng vào ứng dụng như một giao tiếp kịch bản (scripting interface).

• Python dễ dàng kết nối với các thành phần khác:

• Python có thể kết nối với các đối tượng COM, .NET (Ironpython, Python for .net), và CORBA, Java… Python cũng được hỗ trợ bởi Internet Communications Engine (ICE) và nhiều công nghệ kết nối khác.

• Có thể viết các thư viện trên C/C++ để nhúng vào Python và ngược lại.

• Python là ngôn ngữ có khả năng chạy trên nhiều nền tảng:

• Python có cho mọi hệ điều hành: Window, Linux/Unix, OS/2, Mac, Amiga, và điện thoại di động. Với cùng một mã nguồn sẽ chạy giống nhau trên mọi nền tảng

• Python rất đơn giản và dễ đọc.

• Python có cộng đồng lập trình rất lớn, hệ thống tiêu chuẩn , và cả các thư viên mã nguồn mở được chia sẻ trên mạng.

• Python là ngôn ngữ mã nguồn mở.

• Cài đặt Python dùng giấy phép nguồn mở nên được sử dụng và phân tối tự do, ngay cả trong việc thương mại. Giấy phép Python được quản bởi Python Sofware Foundation

3 Ưu điểm và hạn chế của ngôn ngữ lập trình Python

Là một ngôn ngữ lập trình mã nguồn mở đa mục đích, một loại ngôn ngữ bậc cao, thông dịch và hướng đối tượng. Đây là một ngôn ngữ lập trình thông dịch được tạo ra bởi Guido van Rossum vào năm 1990.

[pic]

Hình 12 Các tính năng của python trong lập trình( Ưu điểm và hạn chế của ngôn ngữ python)

Điểm đặc biệt của ngôn ngữ Lập trình Python có cú pháp khá dễ hiểu, dễ đọc và dễ học. Trong việc phát triển ứng dụng thì ngôn ngữ này cũng rất linh hoạt. Python hỗ trợ mẫu đa lập trình, bao gồm lập trình hướng đối tượng, lập trình hàm và mệnh lệnh hoặc là các phong cách lập trình theo thủ tục.

Python là ngôn ngữ lập trình động nên không cần sử dụng các kiểu dữ liệu khai báo.

− Ưu điểm

• Đơn giản: Là một ngôn ngữ có hình thức sáng sủa, cấu trúc rõ ràng, cú pháp ngắn gọn giúp người lập trình dễ dàng đọc và tìm hiểu.

• Tốc độ xử lý khá nhanh, và được đánh giá nhanh hơn so với ngôn ngữ PHP. Với tốc độ xử lý cực nhanh, Python có thể tạo ra những chương trình từ những script siêu nhỏ tới những phần mềm cực lớn như Biender 3D.

• Chất lượng: Thư viện có tiêu chuẩn cao, Python có khối cơ sở dữ liệu khá lớn nhằm cung cấp giao diện cho tất cả các CSDL thương mại.

• Thuận tiện: Python được biên dịch và chạy trên tất cả các nền tảng lớn. Nó có trên tất cả các nền tảng hệ điều hành từ UNIX, MS – DOS, Mac OS, Windows và Linix và các OS khác thuộc họ Unix.

• Tương thích mạnh mẽ với Unix, hardware, thirt-party software với số lượng thư viện khổng lồ (400 triệu người sử dụng)

• Mở rộng: Với tính năng này, Python cho phép người lập trình có thể thêm hoặc tùy chỉnh các công cụ nhằm tối đa hiệu quả có thể đạt được trong công việc.

• GUI Programming: Giúp cho việc thực hiện ảnh minh họa di động một cách tự nhiên và sống động hơn.

− Hạn chế:

• Python không có các thuộc tính như :protected,private hay public, không có vòng lặp do…while và switch….case.

• Mặc dù tốc độ xử lý của Python nhanh hơn PHP nhưng không bằng Java và C++.

• Không có ngôn ngữ nào là hoàn hảo và cũng không phải ngẫu nhiên mà Python được nhiều lập trình viên chọn lựa để phát triển web.

3 Giới thiệu về công cụ lập trình Pycharm

1 Sơ lược về Pycharm

Phiên bản sử dụng trong đồ án: PyCharm 2020.2.3 (Community Edition)

PyCharm là môi trường phát triển tích hợp đa nền tảng (IDE) được phát triển bởi Jet Brains và được thiết kế đặc biệt cho Python. PyCharm có mặt trên cả 3 nền tảng Windows, Linux và Mac OS. 

Hiện tại PyCharm có 2 phiên bản:

− Phiên bản Professional: đầy đủ tất cả các tính năng, hỗ trợ Python Web với HTML, JS, và SQL. Mức giá hiện tại 199$ / năm đầu tiên.

− Phiên bản Community: hỗ trợ Python development. Miễn phí.

PyCharm Community Edition là phiên bản miễn phí của PyCharm, một IDE nhằm vào các lập trình viên Python. PyCharm Community Edition là công cụ hỗ trợ lập trình, đánh dấu lỗi, cung cấp giao diện UI (còn gọi là giao diện người dùng) tuỳ biến và hỗ trợ kiểm tra lỗi cứ pháp chính xác. Phần mềm này là một công cụ đắc lực hỗ trợ bạn trong các dự án python. Bài viết chia sẽ link download PyCharm mới nhất link gốc và hướng dẫn cài đặt Pycharm Community Edition.

[pic]

Hình 13 Sơ lược về Pycharm ( Phiên bản, nguồn gốc và công dụng của công cụ lập trình Pycharm)

2 Tại sao chọn Pycharm

Pycharm là một giải pháp phù hợp cho Python developers vì IDE này hỗ trợ nhiều extensions, môi trường ảo (Virtual Environment), nhiều tính năng thông minh như bộ code completion, tự động thụt lề, phát hiện văn bản trùng lặp và kiểm tra lỗi. Ngoài ra còn có các tính năng tìm kiếm mã nguồn thông minh để tìm kiếm từng từ một trong nháy mắt.

✓ Nhiều tính năng

✓ Chỉnh sửa code hiệu quả

✓ Cửa sổ cấu hình rộng

✓ Python IDE mạnh với menu cấu hình phong phú

PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG

1 Các Actor

− Người dùng

− Hệ thống

2 Yêu cầu người sử dụng

− Người dùng:

■ Điều khiển bằng giọng nói.

■ Xem được thời gian và ngày tháng trực tiếp

■ Mở ứng dụng trên máy tính

■ Tìm kiếm trên trình duyệt Web

■ Truy cập trang web cụ thể như Facebook hay Youtube

■ Cập nhật được thông tin mới nhất

■ Cập nhật được thông tin thời tiết

3 Chức năng của hệ thống trợ lý ảo

Chúng tôi đã xây dựng chương trình trợ lý ảo với các chức năng như:

− Thao tác cơ bản như Shutdown hay Sleep máy.

− Mở nhạc trên máy tính

− Đổi hình nền máy tính

− Giao tiếp, chào hỏi

− Cho bạn biết thời gian hiện tại

− Khởi chạy ứng dụng hệ thống và mở bất kỳ trang web nào trên trình duyệt Chrome

− Mở google search và tìm kiếm bất cứ gì cho bạn

− Cho bạn biết tin tức

− Phát bất cứ một bài hát trên youtube mà bạn yêu cầu

− Có thể giúp bạn cho máy tính của bạn ngủ, tắt máy, hoặc khóa màng hình.

− Trợ lý ảo có thể cho biết máy của bạn có sạc điện hay không

− Có thể mở camera và cmd trên máy

− Kể chuyện cười

− Chụp màn hình

− Chuyển sang cửa sổ khác

− Có thể cho bạn biết bạn đang ở đâu

− Giúp bạn tìm kiếm instagram

4 Ưu điểm của chương trình trợ lý ảo

Trợ lý ảo của chúng tối có các ưu điểm như:

− Khi mở máy tính chương trình tự động chạy giúp bạn tiết kiệm thời gian và các thao tác phức tạp.

− Chương trình trợ lý ảo có thể nói đa ngôn ngữ: tiếng việt, tiếng anh, tiếng Nhật,… với giọng nói có thể là giọng của nam hoặc của nữ.

− Ngoài ra trợ lý ảo còn có giao diện đẹp mắt giúp bạn có thể cảm thấy thoải mái khi trao đổi hoặc ra lệnh cho trợ lý ảo.

5 Các thư viện cơ bản được sử dụng trong chương trình

Trong chương trình trợ lý ảo, các tư viện chính sau

− speech_recognition: đây là thư viện có sẵn trong python, như cái tên của nó, nhận diện giọng nói, thư viện này cho phép Python nhận diện giọng nói của người dùng và chuyển đổi nó thành dạng văn bản mà máy có thể xử lý.

− pyttsx3: là thư viện cho phép chuyển đổi văn bản thành giọng nói trong Python, bạn có thể thiết lập tốc độ hay âm lượng của giọng nói trên máy, hay cũng có thể thay đổi giọng nói về giọng Nam hay Nữ. Thư viện này không giới hạn bởi ngôn ngữ Tiếng Anh mà con có thể sử dụng được những ngôn ngữ khác, như Tiếng Trung hay Tiếng Nhật, thư viện này cũng hỗ trợ Tiếng Việt.

− pyQt5: Trước hết ta sẽ nói về Qt: nó là một Application framework đa nền tảng viết trên ngôn ngữ C++, được dùng để phát triển các ứng dụng trên desktop, hệ thống nhúng và mobile. Hỗ trợ cho các platform bao gồm: Linux, OS X, Windows, VxWorks, QNX, Android, iOS, BlackBerry, Sailfish OS và một số platform khác.

− PyQt là Python interface của Qt, là sự kết hợp của ngôn ngữ lập trình Python và thư viện Qt, là một thư viện bao gồm các thành phần giao diện điều khiển (widgets, graphical control elements). Và trong thư viện PyQt5 có các module cho phép người dùng xây dựng giao diện như QtGui, QtWidgets, QtTest,…

− Và để xây dựng được giao diện ta sử dụng tool công cụ phần mềm phục vụ thiết kế với PyQt5 như Qt Designer: Qt sử dụng IDE tên Qt Creator với một tool thiết kế giao diện người dùng Qt Designer. Qt Designer có thể làm việc một mình độc lập với Qt Creator.

− Time, date : xử lý thời gian

− Requests: Crawl thông tin từ web

− Os, sys: truy cập, xử lý hệ thống

− Webbrowser, selenium:truy cập web, trình duyệt

− Opencv_python: thư viên hỗ trợ camera

− PyPDF: hỗ trợ đọc và ghi file PDF

− Pyjokes: thư viện hỗ trợ truyện cười

− Speech_recognition: Nhận dạng giọng nói

− Pyttsx3: thư viện chuyển đổi văn bản thành giọng nói. Hoạt động trên các hệ thống sau:

• SAPI5 trên Windows XP, Windows Vista và Windows 8, 8.1, 10

• NSSpeechSynthesizer trên Mac OS X 10.5 (Leopard) và 10.6 (Snow Leopard)

• eSpeak trên Ubuntu Desktop Edition 8.10 (Intrepid), 9.04 (Jaunty) và 9.10 (Karmic)

• Tiếng Anh (nam, nữ)

• Trung Quốc (nữ)

• Nhật (nữ)

6 Các bước xây dựng chương trình

− Bước 1: tìm hiểu các tài liệu, các chức năng cơ bản của trợ lý ảo

− Bước 2: suy nghĩ các chức năng

− Bước 3: dowload công cụ hỗ trợ lập trình

− Bước 4: chuẩn bị các thư viện cần thiết và cài đặt

− Bước 5: Tạo file và import các thư viện

− Bước 6: Tiến hành lập trình

− Bước 7: Xây dựng các chức năng

− Bước 8: Xây dựng giao diện

− Bước 9: Đưa chương trình vào khởi động trên máy tính

7 Nguyên lý hoạt động của chương trình trợ lý ảo

[pic]

Hình 14 Nguyên lý hoạt động của trợ lý ảo trong quá trình nhận và thực hiện mệnh lệnh của người dùng

Sau khi chạy chương trình, trợ lý ảo sẽ đợi bạn ra mệnh lệnh bằng giọng nói, sau khi bạn ra mệnh lệnh trợ lý ảo sẽ tiếp nhận âm thanh chuyển đồi sang văn bản. Trợ lý ảo sẽ dựa vào văn bản mệnh lệnh đó để tìm kiếm đến chức năng phù hợp . Sau đó nó sẽ xử lý, chuyển đổi văn bản thành giọng nói và phát ra loa để cho người dùng nghe hoặc hiển thị các chức năng mà người dùng yêu cầu.

8 Biểu đồ Usecase

[pic]

Hình 15 Biểu đồ Usecase

9 Biểu đồ lớp

[pic]

Hình 16 Biểu đồ lớp

10 Biểu đồ hoạt động

[pic]

Hình 17 Biểu đồ hoạt động

KẾT QUẢ ĐẠT ĐƯỢC VÀ CHƯƠNG TRÌNH DEMO

1 Kết quả đạt được

− Xây dựng được chương trình trợ lý ảo

− Trợ lý ảo thực hiện được các chức năng của người dùng

2 Code minh họa

− Import các thư viện cần thiết

from PyQt5 import QtWidgets, QtGui,QtCore

from PyQt5.QtGui import QMovie

import sys

from PyQt5.QtWidgets import *

from PyQt5.QtCore import *

from PyQt5.QtGui import *

from PyQt5.uic import loadUiType

import pyttsx3

import speech_recognition as sr

import os

import time

import webbrowser

import datetime

import psutil

import random

from email import encoders

from email.mime.multipart import MIMEMultipart

import instaloader

import requests

import wikipedia #pip install wikipedia

import smtplib

from gtts import gTTS

import re

import cv2

from requests import get

import pywhatkit as kit

import json

import ctypes

import urllib

import urllib.request as urllib2

import time

import pyjokes

import pyautogui

import PyPDF2

− Chuyển văn bản thành âm thanh

engine = pyttsx3.init('sapi5')

voices = engine.getProperty('voices')

engine.setProperty('voice',voices[1].id)

engine.setProperty('rate',150)

def speak(audio):

engine.say(audio)

engine.runAndWait()

− Chuyển âm thanh thành văn bản

def STT(self):

R = sr.Recognizer()

with sr.Microphone() as source:

print("Đang lắng nghe bạn nói...........")

audio = R.listen(source)

try:

print("Đang xác nhận......")

text = R.recognize_google(audio,language='vi-VN')

print(">> ",text)

except Exception:

speak("Xin lỗi, bạn có thể nói lại không?")

return "None"

text = text.lower()

return text

− Chức năng giao tiếp, chào hỏi

if 'tạm biệt' in self.query:

sys.exit()

elif 'thích bạn' in self.query or 'yêu bạn' in self.query:

speak("Bạn đã làm ngày hôm nay của tôi trở nên thú vị hơn.Tôi rất quý bạn.")

elif 'có bạn gái' in self.query or 'có bạn trai' in self.query:

speak('Tôi đoán bạn có thể nói cho tôi biết.')

speak('Tôi vẫn đang tìm kiếm đây.')

elif 'bài tập về nhà' in self.query:

speak("tôi có thể giúp bạn tính toán và tìm kiếm")

speak("Điều đó phụ thuộc vào bạn")

elif 'buồn chán' in self.query or 'chán' in self.query:

speak("buồn chán mãi như vậy không tốt đâu")

speak("Tôi có thể giúp bạn vui hơn nè. Bạn có muốn nghe nhạc gì ko?")

− Một số chức năng khác

elif 'khóa màn hình' in self.query:

speak('ok bạn')

ctypes.windll.user32.LockWorkStation()

elif 'ngày sinh của bạn' in self.query or 'sinh nhật của bạn' in self.query:

speak(' Tôi xem những ngày tôi đang sống đều là ngày sinh nhật của tôi.')

speak('Tôi nghĩ như vậy sẽ nhận được nhiều bánh kem hơn.hihi')

speak('TÔi được tạo ra ngày 29 tháng 11 năm 2020 để bạn tôi đi thi đồ án')

elif 'mở google' in self.query:

speak("Bạn muốn tìm kiếm gì trên google ?")

self.cm = self.STT()

webbrowser.open(f"{self.cm}")

speak("Đang mở google")

elif 'mở youtube' in self.query:

webbrowser.open("")

elif 'mở facebook' in self.query:

webbrowser.open("")

elif 'mở dân trí' in self.query:

webbrowser.open(".vn")

elif 'mở stackoverflow' in self.query:

3 Demo chương trình

[pic]

Hình 18 Hình ảnh chương trình demo trợ lý ảo có giao diện

[pic]

Hình 19 Chương trình trợ lý ảo bắt đầu khởi động trên console của công cụ lập trình Pycharm

[pic]

Hình 20 Minh họa giao tiếp cơ bản giữa người dùng và trợ lý ảo

[pic]

Hình 21 Chức năng tìm kiếm cực nhanh của trợ lý ảo trên google search

[pic]

Hình 22 Demo chức năng mở camera của hệ thống máy tính

[pic]

Hình 23 Demo chức năng định vị biết được vị trí bạn đang ở đâu

[pic]

Hình 24 Chức năng cho biết được hôm nay là ngày bao nhiêu và giờ hiện tại

KẾT LUẬN

1 Kết quả đạt được

• Xây dựng được chương trình trợ lý ảo

• Chương trình trợ lý ảo có giao diện và các chức năng cơ bản

• Hiểu rõ thêm cách hoạt động của các trợ lý ảo

• Tìm hiểu được các thư viện hữu ích

• Làm quen hơn với ngôn ngữ Python

2 Hạn chế

• Trong quá trình chạy thì chương trình còn gặp một số lỗi về nhiễu âm thanh

• Các chức năng còn hạn chế chưa tối ưu

3 Hướng phát triển

• Xây dựng một chương trình trợ lý ảo hoàn thiện hơn với các chức năng vượt trội hơn

• Đưa chương trình trợ lý ảo vào sử dụng thực tế

• Tối ưu được code

• Hạn chế các sự cố xảy ra về sự nhiễu âm thanh trong quá trình chạy chương trình

TÀI LIỆU THAM KHẢO

1. ICHI.PRO: Giới thiệu về pyttsx3: Trình chuyển đổi văn bản thành giọng nói cho python:



2. CODELEARN: Trợ lý ảo đang phát triển như thế nào?



3. SmartHomeKit: Trợ lý ảo nhà thông minh là gì? Chức năng và những điều cần biết



4. Dũng Lại Lập trình: youtube:



5. QuanTra:Trợ lý ảo tiếng việt:



-----------------------

5

................
................

In order to avoid copyright disputes, this page is only a partial summary.

Google Online Preview   Download

To fulfill the demand for quickly locating and searching documents.

It is intelligent file search solution for home and business.

Literature Lottery

Related searches