nhập môn trí tuệ nhân tạo đề tài xây dựng trợ lý ảo bằng ngôn ngữ python

32 0 0
nhập môn trí tuệ nhân tạo đề tài xây dựng trợ lý ảo bằng ngôn ngữ python

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Phạm vi ứng dụng của công nghệ thông tin đã được mở rộng và góp mặt trên rất nhiều các lĩnh vực như truyền thông, tự động hóa, quản trị các hoạt động của con người và xã hội… Với mục đíc

Trang 1

TRƯỜNG ĐẠI HỌC ĐIỆN LỰC

KHOA CÔNG NGHỆ THÔNG TIN

NHẬP MÔN TRÍ TUỆ NHÂN TẠO

ĐỀ TÀI:

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

Sinh viên thực hiện : LẠI QUANG MINH : VŨ VIỆT HOÀNG Giảng viên hướng dẫn : VŨ VĂN ĐỊNH

Hà Nội, tháng 11 năm 2023

Trang 3

LỜI 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 thầy Vũ Văn Định , em đã thực hiện đồ án: “XÂY DỰNG TRỢ LÝ ẢO BẰNG NGÔN NGỮ PYTHON”

Trang 4

PHẦN MỞ ĐẦU 1.1 Giới thiệu

1.1.1 Lí do chọn đề tài

Với tốc độ công nghiệp hóa - hiện đại hóa trong nhiều năm gần đây, công nghệ thông tin đã và đang phát triển trên mọi mặt, trở thành động lực của sự phát triển Phạm vi ứng dụng của công nghệ thông tin đã được mở rộng và góp mặt trên rất nhiều các lĩnh vực như truyền thông, tự động hóa, quản trị các hoạt động của con người và xã hội…

Với mục đích xây dựng một trợ lý ảo với khả năng nhận diện giọng nói để thực hiện yêu cầu, giao tiếp một cách thân thiện với người dùng Do đó,

đề tài “ Xây dựng trợ lý ảo AI” này của chúng em mong muốn người sử

dụng có một trải nghiệm tốt nhất với trợ lý ảo

1.1.2 Mục tiêu đề tài

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

 Nghe và nhận diện giọng nói

 Phản hồi người dùng bằng giọng nói  Khởi chạy bất kỳ ứng dụng hệ thống

 Thực hiện hầu hết các yêu cầu người dùng đưa ra  Cho bạn biết tin tức mới nhất

 Nói cho bạn về hầu hết mọi thứ bạn yêu cầu

Trang 5

1.1.3 Lợi ích khi có trợ lý ảo

 Tiện lợi, sử dụng được mọi lúc mọi với vài câu nói  Tiết kiệm thời gian

 Nâng cao hiệu suất

1.2 Tổng quan về hệ thống

1.2.1 Mô tả bài toán

Trợ lý ảo bằng tiếng Việt là 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

1.2.2 Các yêu cầu của hệ thống

A YÊU CẦU CHỨC NĂNG:

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

 Cho người dùng biết thời gian hiện tại

 Mở Google search và tìm kiếm thay cho bạn  Gửi email đến những người trong danh bạ của bạn

 Cho bạn biết thời tết và nhiệt độ hiện tại của hầu hết mọi thành phố  Phát cho bạn một bài hát trên Youtube

 Thay đổi hình nền máy tính

 Cho ngươi dùng biết tin tức mới nhất

B YÊU CẦU PHI CHỨC NĂNG:

 Giao diện thân thiện, dễ sử dụng

 Dễ bảo trì, nâng cấp , dễ sửa chữa, bảo mật Phương pháp

 Đọc xem tài liệu, và tìm hiểu các mã nguồn mở thiết kế một trợ lý ảo với yêu cầu đặt ra

Trang 6

CHƯƠNG 1 :

CÁC KHÁI NIỆM

 AI-Artificial Intelligence hay còn gọi là Trí tuệ nhân tạo là một ngành khoa học, kỹ thuật chế tạo máy móc thông minh, đặc biệt là các chương trình máy tính thông minh AI được thực hiện bằng cách nghiên cứu cách suy nghĩ của con người, cách con người học hỏi, quyết định và làm việc trong khi giải quyết một vấn đề nào đó, và sử dụng những kết quả nghiên cứu này như một nền tảng để phát triển các phần mềm và hệ thống thông minh, từ đó áp dụng vào các mục đích khác nhau trong cuộc sống Nói một cách dễ hiểu thì AI là việc sử dụng, phân tích các dữ liệu đầu vào nhằm đưa ra sự dự đoán rồi đi đến quyết định cuối cùng

Xử lý ngôn ngữ tự nhiên (natural language processing - NLP) là một

nhánh của trí tuệ nhân tạo tập trung vào các ứng dụng trên ngôn ngữ của con người Trong trí tuệ nhân tạo thì xử lý ngôn ngữ tự nhiên là một trong những phần khó nhất vì nó liên quan đến việc phải hiểu ý nghĩa ngôn ngữ-công cụ hoàn

hảo nhất của tư duy và giao tiếp

 Trợ lý ảo (Virtual Assistant) hay còn gọi là trợ lý AI hay trợ lý kỹ thuật số, clhươ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

Lợi ích của trợ lí ảo

Các ứng dụng trợ lý giọng nói hoạt động dựa trên hệ thống Nhận dạng giọng nói tự động (ASR) Các hệ thống ASR ghi lại lời nói và sau đó chia nhỏ thành các âm vị, sau này được xử lý thành văn bản Một âm vị (không phải từ của âm tiết) là một đơn vị đo lường cơ bản để nhận dạng giọng nói của con người Nhận dạng âm vị mang lại kết quả tốt hơn quá trình giải mã từ, vì người cuối cùng có xu hướng phân tích từ dưới dạng một đơn vị độc lập bỏ qua các giới hạn ngữ cảnh.

Trang 7

Có thể sử dụng loại phần mềm nhận dạng giọng nói nào, tất cả đều dựa trên ASR Để tạo ra một phần mềm trợ lý ảo, điều quan trọng nhất cần làm là làm quen với cách ASR hoạt động Tóm lại, quá trình bắt đầu với việc thiết bị thu thập âm thanh với micro Các dạng sóng giọng nói đã ghi được chuyển thẳng sang phân tích âm thanh, được thực hiện ở ba cấp độ khác nhau:

 Mô hình âm thanh, đại diện cho những âm vị được phát âm và những từ mà các âm vị này hoàn thành là gì;

 Mô hình phát âm, phân tích cách phát âm của âm vị, có bất kỳ trọng âm hoặc đặc thù nào khác của bộ máy phát âm để nắm bắt sự biến đổi ngữ âm của lời nói;

 Mô hình hóa ngôn ngữ, nhằm mục đích tìm kiếm xác suất theo ngữ cảnh tùy thuộc vào âm vị nào được ghi lại.

Tất cả các dữ liệu được xử lý bởi AI mà không cần sự tương tác của con người, giảm tỷ lệ lỗi xuất hiện bằng cách sử dụng các thuật toán học máy Dữ liệu dạng sóng giọng nói sau đó được truyền đến bộ giải mã, nơi cuối cùng nó chuyển thành văn bản để sử dụng thêm như lệnh hoặc chính tả.

Trí thông minh nhân tạo mang đến cho các ứng dụng trợ lý giọng nói hiện đại sự tự do không dựa vào vốn từ vựng hạn chế, mà sử dụng lưu trữ đám mây với hàng triệu từ và cụm từ thay thế Nói cách khác, học máy làm cho các ứng dụng nghe toàn bộ bài phát biểu, không phải mỗi từ riêng biệt Bằng cách đó, các ứng dụng giọng nói sẽ phân tích bối cảnh và xác suất để xác định những gì bạn đang cố gắng nói.

Trang 8

Ứ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.

Sau đây là một vài công việc mà Trợ lý ảo có thể thực hiệ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;

 Dự báo thời tiết;

 Thêm các sự kiện và 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 việc 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 To-do list;  Thực hiện dịch thuật thời gian thực;

 Cập nhật cho bạn về lưu lượng trên lộ trình 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;

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

Trang 9

CHƯƠNG 2 :PHƯƠNG PHÁP XỬ LÝ NGÔN NGỮ TỰ NHIÊN

Ngôn ngữ tự nhiên là gì ?

Ngôn ngữ tự nhiên là ngôn ngữ mà các loài động vật sáng tạo ra để giao tiếp với đồng loại Con người cũng là một loại động vật sử dụng ngôn ngữ để giao tiếp Thế giới ngôn ngữ của con người rất phong phú, theo thông kê của các nhà khoa học thì có tới hàng ngàn ngôn ngữ tồn tại trên trái đất Ngôn ngữ tự nhiên có 2 dạng là chữ viết và âm thanh (tức tiếng nói) Ngôn ngữ của mỗi dân tộc, quốc gia lại khác nhau bao gồm khác nhau cả về cách viết cũng như cách phát âm

Tại sao cần phải xử lí ngôn ngữ tự nhiên ?

Xử lí ngôn ngữ tự nhiên có vai trò hết sức quan trọng trong ngành Khoa Học Máy Tính Nó có vô vàn ứng dụng hữu ích trong cuộc sống cũng như nghiên cứu Chúng ta có thể điểm qua một vài ứng dụng của xử lý ngôn ngữ tự nhiên như:

 Nhận dạng chữ viết: Có hai kiểu nhận dạng, thứ nhất là nhận dạng chữ in, ví dụ nhận dạng chữ trên sách giáo khoa rồi chuyển nó thành dạng văn bản điện tử như dưới định dạng doc của Microsoft Word chẳng hạn Phức tạp hơn là nhận dạng chữ viết tay, có khó khăn bởi vì chữ viết tay không có khuôn dạng rõ ràng và thay đổi từ người này sang người khác Với chương trình nhận dạng chữ viết in có thể chuyển hàng ngàn đầu sách trong thư viện thành văn bản điện tử trong thời gian ngắn Nhận dạng chữ viết của con người có ứng dụng trong khoa học hình sự và bảo mật thông tin (nhận dạng chữ ký điện tử)

 Nhận dạng tiếng nói: Nhận dạng tiếng nói rồi chuyển chúng thành văn bản tư tưởng ứng Giúp thao tác của con người trên các thiết bị nhanh hơn và đơn giản hơn, chẳng hạn thay vì gõ một tài liệu nào đó bạn đọc nó lên và trình soạn thảo sẽ tự ghi nó ra Đây cũng là bước đầu tiên cần phải thực hiện trong ước mơ thực hiện giao tiếp giữa con người với robot Nhận dạng tiếng nói có khả năng trợ giúp người khiếm thị rất nhiều

 Tổng hợp tiếng nói: Từ một văn bản tự động tổng hợp thành tiếng nói Thay vì phải tự đọc một cuốn sách hay nội dung một trang web, nó tự động đọc cho chúng ta Giống như nhận dạng tiếng nói, tổng hợp tiếng nói là sự trợ giúp tốt cho người khiếm thị, nhưng ngược lại nó là bước cuối cùng trong giao tiếp giữa robot với người

Trang 10

 Dịch tự động (Machine translate): Như tên gọi đây là chương trình dịch tự động trong ngôn ngữ này sang ngôn ngữ khác Một phần mềm điển hình về tiếng Việt của chương trình này là Evtrans của Softex, dịch tự động từ tiếng Anh sang tiếng Việt và ngược lại

 Tìm kiếm thông tin (Information retrieval): Đặt câu hỏi và chương trình tự tìm ra nội dung phù hợp nhất Thông tin ngày càng đầy lên theo cấp số nhân, đặc biệt với sự trợ giúp của Internet việc tiếp cận thông tin trở lên dễ dàng hơn bao giờ hết Việc khó khăn lúc này là tìm đúng nhất thông tin mình cần giữa bề bộn tri thức và đặc biệt thông tin đó phải đáng tin cậy

 Tóm tắt văn bản: Từ một văn bản dài tóm tắt thành một văn bản ngắn hơn theo mong muốn nhưng vẫn chứa những nội dung thiết yếu nhất

 Khai phá dữ liệu (Data mining) và phát hiện tri thức: Từ rất nhiều tài liệu khác nhau phát hiện ra tri thức mới Thực tế để làm được điều này rất khó, nó gần như là mô phỏng quá trình học tập, khám phá khoa học của con người, đây là lĩnh vực đang trong giai đoạn đầu phát triển Ở mức độ đơn giản khi kết hợp với máy tìm kiếm nó cho phép đặt câu hỏi để từ đó công cụ tự tìm ra câu trả lời dựa trên các thông tin trên web mặc cho việc trước đó có câu trả lời lưu trên web hay không (giống như trang Yahoo! hỏi và đáp, nơi chuyên đặt các câu hỏi để người khác trả lời), nói một cách nôm na là nó đã biết xử lý dữ liệu để trả lời câu hỏi của người sử dụng, thay vì máy móc đáp trả những gì chỉ có sẵn trong bộ nhớ

Sử dụng Python trong xử lí ngôn ngữ tự nhiên

Python ra đời năm 1991, và là một ngôn ngữ thông dịch Trải qua hơn 20 năm phát triển, Python là một trong những ngôn ngữ được sử dụng nhiều nhất trong dậy lập trình và nghiên cứu khoa học Rất nhiều trường đại học sử dụng Python để dậy về lập trình cho các sinh viên ngành Khoa Học Máy Tính Rất nhiều công ty lớn sử dụng Python để xây dựng hệ thống như Google, Youtube, Instagram, Dropbox, Atlassian Python là một ngữ sử dụng được cho nhiều mô hình lập trình, đơn giản khi học và sử dụng Tôi sử dụng Python chưa lâu nhưng

Trang 11

khi so sánh việc Code sử dụng Pythong thì nó ngắn hơn rất nhiều so với khi viết bằng PHP hoặc Java Bạn có thể bay bổng tự do với Python hoặc cũng có thể bắt nó trở lên vững chắc và mạnh mẽ như Java

Theo những thông tin mà tôi được biết thì Python cũng là một ngôn ngữ rất phát triển trong lĩnh vực Data Science và Machine Learning Python cũng cung cấp những hàm và thư viện xử lý ngôn ngữ tuyệt vời Scikit-learn và Tensor-flow là 2 thư viện Machine Learning nổi tiếng được viêt bằng Python Đứng ở góc độ người tiếp cận sau, cá nhân tôi thấy Python là một lựa chọn hợp lý khi làm Xử Lý Ngôn Ngữ Tự Nhiên

Trang 12

CHƯƠNG 3 : TRIỂN KHAI HỆ THỐNG

1 Mô hình quá trình

Hình 1 Mô hình quá trình

2 Các bước xây dựng:

Bước thứ nhất: Nhận dạng giọng nói (speech to text) hay nói cách

khác là chuyển giọng nói về dạng văn bản

2.2 Bước thứ hai: Đưa ra hành động (action) có nghĩa là với văn bản đó

thì sẽ đưa ra câu trả lời là gì (đưa ra hành động cho câu hỏi trên)

2.3 Bước thứ ba: Chuyển văn bản về giọng nói (text to speech) Ngược

với bước thứ nhất, sau khi có được câu trả lời bằng văn bản ở bước 2 thì ta cần chuyển về giọng nói

Trang 13

3 Xây dựng chương trình

4.3.1 Import các thư viện

Với mỗi chức năng mà trợ lý ảo thực hiện sẽ đại diện bằng một hàm Mỗi hàm có thể trả về giá trị hoặc chỉ thực hiện lệnh tùy theo chức năng của nó.Việc đầu tiên sẽ khai báo một vài biến để lưu đường dẫn hay các tham số để xử lý ngôn ngữ dưới dạng tiếng việt

4.3.2 Khai báo biến mặc định

Hình 2 Khai báo biến mặc định

4.3.3 Chức năng chuyển văn bản thành âm thanh

Trang 14

Hình 3 Mô hình chuyển đổi văn bản thành âm thanh

Hình 4 Chuyển đổi văn bản thành âm thanh

Chức năng đầu tiên: chuyển một đoạn văn bản thành âm thanh và đọc nó lên trên máy tính Sử dụng hàm gTTS (google Text To Speech) để chuyển văn bản thành âm thanh theo ngôn ngữ nhận dạng tiếng việt rồi lưu về máy tính dữ liệu âm thanh dưới file sound.mp3 Sau đó dùng hàm playsound.playsound() để đọc file sound.mp3 trên máy tính Sau khi đọc xong, phải xóa file sound.mp3 để tránh lỗi khi mình đọc một đoạn văn bản khác thì cũng được lưu lại dưới file sound.mp3.

4.3.4 Chức năng chuyển âm thanh thành văn bản

Trang 15

Hình 5 Quy trình chung hệ thống nhận dạng giọng nói

Đây là chức năng cơ bản thứ hai cùng với chức năng chuyển văn bản thành âm thanh Trong chức năng này, sử dụng 2 hàm khác hỗ trợ là get_audio() và stop()

Hình 6 Nhận dạng giọng nói

Thư viện speech_recognition (sr) có chức năng là nhận dạng giọng nói để chuyển âm thanh thành văn bản Âm thanh được đọc vào microphone của máy tính sau đó được xử lý qua hàm listen của sr.Recognition rồi lưu dữ liệu âm thanh vào biến audio Dữ liệu âm thanh audio thu được sẽ được nhận dạng ở ngôn ngữ tiếng việt trong hàm r.recognize_google để chuyển thành dạng văn bản rồi lưu dữ liệu vào biến text.

Nếu dữ liệu âm thanh audio không lỗi tức là hàm r.recognize_google có thể nhận dạng được audio để chuyên thành text thì hàm get_audio() sẽ được trả về

Trang 16

thì hàm get_audio() sẽ được trả về giá trị là 0 (Mục đích là khi máy tính không hiểu

Hình 7 Hàm Stop

Hình 8 Hàm nhận dạng giọng nói

Hàm get_text() có chức năng là máy tính sẽ cố gắng nhận dạng âm thanh của người

không hiểu) mà chưa đọc đến lần thứ 3 thì mình sẽ yêu cầu người sử dụng đọc lại Nếu sau 3 lần mà máy tính vẫn không hiểu thì người dùng nói gì hay không nghe thấy gì thì

đích là khi máy tính không nghe thấy gì thì sẽ cho dừng chương trình luôn).

Câu lệnh time.sleep(2) được thêm vào với mục đích là chương trình tạm dừng 2 giây để tránh máy tính đọc các đoạn văn bản bị khớp nhau.

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

Ngày đăng: 25/04/2024, 11:35

Tài liệu cùng người dùng

Tài liệu liên quan