Phần mềm trợ lý ảo tiếng việt

Ngoài Siri của Apple, Alexa của Amazon và cách đây không lâu là Google Asisstant của Google, còn gì khác tuyệt vời rộng khi biết chúng ta có thể tự tạo cho mình một nhỏ trợ lý ảo, ngay cả phiên bạn dạng tiếng việt. Nào bắt tay vào có tác dụng thôi.

Bạn đang xem: Phần mềm trợ lý ảo tiếng việt

Trong bài xích viết, mình vẫn đi chi tiết làm cụ nào để viết một trở lý ảo giờ đồng hồ việt bởi Python, mình hotline tên cậu ấy là Alex.

Nhiều các bạn vẫn không thực sự được tiếp cận cùng với trí tuệ nhân tạo hay ví dụ hơn là xử lý ngôn ngữ tự nhiên hay một con trợ lý ảo tức là gì. Thực sự, trí tuệ nhân tạo nói chung và giải pháp xử lý ngôn ngữ tự nhiên và thoải mái đóng góp lớn lớn như thế nào so với ngành công nghệ thông tin. Mình chọn sử dung python, Python là một trong những ngôn ngữ lập trình tất cả một bộ thư viện đa năng. Cần trí tuệ nhân tạo hiện thời cũng trở nên dễ dàng hơn với chúng ta. Bản thân sẽ cụ thể hóa các cụ thể giúp bạn hình dung những công việc để làm một con trợ lý ảo nhé.

Trợ lý ảo đã cải tiến và phát triển thế nào?

*

Timeline trợ lý ảo trường đoản cú 2010 cho nay

Gần đây, Trợ lý ảo đã sở hữu nền tảng chính sau thời điểm Apple tích phù hợp Trợ lý ảo đáng bỡ ngỡ nhất - Siri, đồng ý là một phần của hãng apple Inc. Tuy vậy dòng thời gian của sự tiến hóa bậm bạp nhất bắt đầu từ sự khiếu nại năm 1962 trên Hội chợ thế giới Seattle địa điểm IBM trưng bày cỗ máy độc đáo gọi là Shoebox.Đó là kích thước thực tế của một vỏ hộp đựng giầy và có thể thực hiện nay các công dụng khoa học và rất có thể nhận biết 16 từ cùng cũng nói theo cách khác chúng bằng giọng nói dễ nhận biết của con bạn với 0 mang lại 9 chữ số.

Sau kia trong giai đoạn trong thời hạn 1970, những nhà nghiên cứu và phân tích tại Đại học tập Carnegie Mellon nghỉ ngơi Pittsburgh, Pennsylvania cùng rất sự cung ứng của cỗ Quốc chống Hoa Kỳ và phòng ban Dự án phân tích Quốc phòng tiên tiến (DARPA) - đã tạo nên chiếc thứ Harpy.Nó có thể hiểu ngay sát 1.000 từ, gần bởi từ vựng của một đứa trẻ ba tuổi.

Vào tháng 4 năm 1997, Dragon NataturalSpeaking là phần mềm chỉnh sửa bao gồm tả đầu tiên rất có thể hiểu khoảng tầm 100 từ và phát triển thành nó thành nội dung rất có thể đọc được. Theo cái thời gian, giải pháp xử lý ngôn ngữ tự nhiên và thoải mái và trợ lý ảo được đầu tư chi tiêu nghiên cứu mạnh bạo mẽ, trải qua hầu hết cột mốc quan trọng đặc biệt và đã đạt được thành tựu sáng ý như ngày hôm nay.

Kiến thức đề nghị có

*

Phải nói rằng, sẽ thật hoàn hảo nếu có thể tự mình tạo nên một trợ lý ảo ngay trên chiếc máy tính xách tay để bàn tuyệt laptop của bản thân mình với những tiện ích dễ dàng và đơn giản như:

Giao tiếp, kính chào hỏiCho các bạn biết thời hạn hiện tạiKhởi chạy ứng dụng khối hệ thống và mở bất kỳ trang web nào trên trình chăm nom ChromeMở Google search và tìm kiếm vắt cho bạnGửi email đến những người vào danh bạ của bạnCho chúng ta biết thời tết với nhiệt độ lúc này của phần đông mọi thành phốPhát cho chính mình một bài hát bên trên YoutubeThay đổi nền game máy tínhCho bạn biết tin tức mới nhấtNói cho bạn về hấu hết hồ hết thứ chúng ta yêu cầu

Do đó, ngơi nghỉ trong bài viết này, mình sẽ xây dựng một ứng dụng tiếng việt có công dụng thực hiện tất cả các trọng trách trên. Mình thúc đẩy với trợ lý ảo trên máy vi tính và mình sẽ gọi chúng ta ấy là Alex.

Nào chúng ta ban đầu thôi. Let"s go !!!!

*

Anacondalà một chế độ tổng hợp đã tích hợp sẵn không ít các gói phần mềm, thư viện giúp bọn họ có một môi trường thiên nhiên để thực hiện xây dựng các ứng dụng Python. Anacoda cũng tích hòa hợp sẵn conda bên trong do đó bạn chỉ cần setup Anacoda là đủ.

Khi cài đặt xong, bạn mở Anaconda Prompt (có thể search thấy trong thư mục cài đặt Anaconda), dịch chuyển đến thư mục cất project và triển khai chạy Jupyter Notebook bởi câu lệnh:

jupyter notebook

Cửa số hiện nay lên, bạn chỉ việc vào new chọn python 3ta đã gồm một notebook có thể chạy Python dưới dạng cácinteractive shell

*

Cuối cùng là việc thiết đặt các thư viện cần thiết, chúng ta tiếp tục vào Anaconda Prompt và triển khai cài những Python Package thông qua gói thư việnpip. Ví dụ, ta muốn thiết lập thư việnabcxyzthì gõ câu lệnh:

pip install abcxyz

*

Xây dựng trợ lý ảo giờ việt Alex

1. Import những thư viện cần thiết

Với mỗi chức năng mà trợ lý ảo thực hiện mình sẽ thay mặt bằng một hàm. Từng hàm hoàn toàn có thể trả về quý hiếm hoặc chỉ thực hiện lệnh tùy theo chức năng của nó.

Việc trước tiên mình đã khai báo một vài biến hóa để lưu đường truyền hay các tham số để xử lý ngôn ngữ dưới dạng tiếng việt.

2. Khai báo vươn lên là mặc định

wikipedia.set_lang("vi")language = "vi"path = ChromeDriverManager().install()Hiện tại, những Lab nghiên cứu về trí tuệ nhân tạo ở vn đang chi tiêu đẩy mạnh phân tích mảng xử trí ngôn ngữ tự nhiên và thoải mái (Natural Language Processing) ngơi nghỉ dạng giờ việt và có được những tác dụng đáng ghi nhận. Các mô hình nghiên cứu vãn được có thể xử lý ngôn ngữ tiếng việt ở các vùng miền, cả nam lẫn nữ, rất thực. Ở góc độ người tiêu dùng phổ thông thì khó rất có thể biết đâu là vì máy tính, đâu là vì người thực hiện. Các nghiên cứu đều phải có tính áp dụng cao, đang được những công ty technology áp dụng tiến hành thực tế, cải thiện năng suất lao cồn một bí quyết rõ rệt.

Các tủ sách mình sử dụng ở trên đều rất phổ thông, tích hợp nhiều hàm xử lý. Tuy quality xử lý giờ đồng hồ việt không thực sự hoàn hảo nhất nhưng ở góc cạnh độ bài viết thì bản thân thấy là tương đối ổn.

Mình lưu thêm phát triển thành path để lưu con đường dẫn setup Chrome nhằm tránh việc thiết lập lại Chrome lúc chạy lại hàm.

3. Tác dụng chuyển văn bản thành âm thanh

*

Google Cloud Text khổng lồ Speech

def speak(text): print("Bot: ".format(text)) tts = gTTS(text=text, lang=language, slow=False) tts.save("sound.mp3") playsound.playsound("sound.mp3", False) os.remove("sound.mp3")Chức năng đầu tiên mình đề nghị là gửi một đoạn văn bản thành âm thanh và gọi nó lên trên trang bị tính.

Mình thực hiện hàm gTTS (google Text khổng lồ Speech) để đưa văn bản thành âm thanh theo ngôn từ nhận dạng tiếng việt rồi lưu về máy tính xách tay dữ liệu âm thanh dưới tệp tin sound.mp3.

Sau đó, minh sử dụng hàm playsound.playsound() nhằm đọc tệp tin sound.mp3trên lắp thêm tính.

Xem thêm: ‘Thăm Nguyễn Tấn Dũng Lại Thoát Nữa!, Thủ Tướng Nguyễn Tấn Dũng

Sau khi gọi xong, mình đề xuất xóa file sound.mp3 để tránh lỗi lúc mình phát âm một đoạn văn bản khác thì cũng được lưu lại bên dưới file sound.mp3.

4. Tác dụng chuyển âm nhạc thành văn bản

*

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

Đây là tác dụng cơ bạn dạng thứ hai thuộc với chức năng chuyển văn bản thành âm thanh.

Trong chức năng này, mình áp dụng 2 hàm khác hỗ trợ là get_audio() cùng stop()

def get_audio(): r = sr.Recognizer() with sr.Microphone() as source: print("Tôi: ", end="") audio = r.listen(source, phrase_time_limit=5) try: text = r.recognize_google(audio, language="vi-VN") print(text) return text except: print("...") return 0Ở hàm trên, mình áp dụng thư viện speech_recognition (sr) có tác dụng là nhận dạng tiếng nói để chuyển âm nhạc thành văn bản. Âm thanh được đọc vào microphone của dòng sản phẩm tính tiếp nối được giải pháp xử lý qua hàm listen của sr.Recognition rồi lưu tài liệu âm thanh vào biến đổi 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 để gửi thành dạng văn bạn dạng rồi lưu dữ liệu vào biến text.

Nếu tài liệu âm thanhaudio không lỗi có nghĩa là hàmr.recognize_google có thể nhận dạng được audio để chuyên thành text thì hàm get_audio() sẽ được trả về cực hiếm là text còn nếu dữ liệu audio bị lỗi mà hàm r.recognition_google không nhận dạng được thì hàm get_audio() sẽ được trả về quý giá là 0 (Mục đích là lúc máy tính thiếu hiểu biết mình nói gì thì bản thân sẽ triển khai lại hàm get_audio() nhằm đọc lại)

def stop(): speak("Hẹn gặp gỡ lại các bạn sau!")Hàm stop() đơn giản là gọi đoạn text "Hẹn chạm mặt lại các bạn sau" sử dụng hàm speak() sinh hoạt trên.

def get_text(): for i in range(3): text = get_audio() if text: return text.lower() elif i Hàm get_text() có công dụng là máy tính sẽ cố gắng nhận dạng music của người đọc buổi tối đa 3 lần cho tới khi máy tính hiểu. Mình áp dụng hàm for lặp lại 3 lần, trường hợp đoạn text có mức giá trị không giống 0 thì hàm get_text sẽ được trả về cực hiếm text.lower() (Chuyển chữ cái in hoa thành in thường), còn nếu text nhận quý giá là 0 (Tức là minh đọc mà máy tính xách tay không hiểu) mà chưa đọc đến lần sản phẩm 3 thì mình đang yêu cầu người sử dụng đọc lại. Nếu sau 3 lần mà laptop vẫn thiếu hiểu biết thì mình nói gì hay không nghe thấy gì thì mình đang cho tạm dừng sử dụng hàm stop cùng hàm get_text từ bây giờ sẽ được trả về quý giá là 0 (Mục đích là khi máy vi tính không nghe thấy gì thì mình sẽ mang đến dừng chương trình luôn).

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

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

def hello(name): day_time = int(strftime("%H")) if day_time Nội dung tác dụng này là để tiếp xúc thông thường xuyên giữa tín đồ và thiết bị tính. Đơn cử như: kính chào hỏi, hỏi thăm sức khỏe hay nói tới thông tin trợ lý ảo,... Ở đây, mình đã mô phỏng bằng tính năng chào hỏi thực hiện hàm hello.

Mình sử dụng biến day_time nhằm lưu giờ lúc này trong ngày. Sau đó, biến sẽ được đối chiếu với những mốc giờ trong ngày để đưa ra lời chào.

Như bên trên thì trước 12 giờ thì bản thân sẽ xin chào buổi sáng, trường đoản cú 12 giờ đến sau 18 giờ mình sẽ xin chào buổi chiều, từ 18 giờ trở đi mình sẽ chào buổi tối.

6. Tính năng hiển thị thời gian

def get_time(text): now = datetime.datetime.now() if "giờ" in text: speak("Bây giờ là %d tiếng %d phút" % (now.hour, now.minute)) elif "ngày" in text: speak("Hôm ni là ngày %d mon %d năm %d" % (now.day, now.month, now.year)) else: speak("Bot chưa hiểu ý của bạn. Bạn nói lại được không?")Chức năng này hơi là đơn giản. Mình áp dụng thư viện datetime nhằm lưu thông tin thời gian tại thời điểm hiện nay trong ngày rồi lưu lại vào phát triển thành now.

Mình khám nghiệm nếu trong khúc text bản thân hỏi gồm chữ "giờ", mình đã đọc thời hạn hiện tại trong thời gian ngày còn nếu có chữ "ngày" vào text thì mình đang đọc lúc này trong năm.

Ví dụ:

text = "Bây giờ là mấy giờ"

Tức là tất cả chữ "giờ" vào text thì hàm get_time tiến hành lệnh đọc:

Bây giờ là 10 tiếng 26 phút

7. Chức năng mở vận dụng hệ thống, website và tính năng tìm kiếm từ khóa trên Google

def open_application(text): if "google" in text: speak("Mở Google Chrome") os.startfile("C:Program Files (x86)GoogleChromeApplicationchrome.exe") elif "word" in text: speak("Mở Microsoft Word") os.startfile("C:Program FilesMicrosoft Office\rootOffice16\WINWORD.EXE") elif "excel" in text: speak("Mở Microsoft Excel") os.startfile("C:Program FilesMicrosoft Office\rootOffice16EXCEL.EXE") else: speak("Ứng dụng không được cài đặt. Bạn hãy thử lại!")Khi lộ diện các tự khóa quan trọng đặc biệt như google tốt word giỏi excel vào text thì mình cần sử dụng hàm os.startfile() để mở các file vận dụng từ hệ thống.

Chỉ kiểm tra từ google giỏi word giỏi excel vào text là không đủ. Bản thân cần giới hạn ngữ nghĩa của text nghỉ ngơi trong hàm assistant để bot hoàn toàn có thể hiểu là mở lịch trình Google Chrome, Word, Excel chứ không nhầm lẫn với các công dụng khác.

def open_website(text): reg_ex = re.search("mở (.+)", text) if reg_ex: tên miền = reg_ex.group(1) url = "https://www." + domain webbrowser.open(url) speak("Trang web chúng ta yêu cầu đã được mở.") return True else: return FalseMình sử dụng hàm re.search() (Hàm tìm kiếm trong biểu thức chính quy Regular Expression) để bóc phần tên miền sau chữ "mở" vào text rồi ghép cùng với phần tiền tố "https://www." để tạo thành đường dẫnurl của web.

Sau đó, mình sử dụng webbroser.open(url) nhằm mở website mình yêu cầu.

Nếu domain name được hàm re.search() search thấy thì mình sẽ thực hiện công dụng mở website với hàm open_website được trả về quý giá là True, còn nếu tên miền không được search thấy thì mình sẽ không còn thực hiện chức năng gì cả và hàm open_website trả về quý hiếm là False.

def open_google_and_search(text): search_for = text.split("kiếm", 1)<1> speak("Okay!") driver = webdriver.Chrome(path) driver.get("http://www.google.com") que = driver.find_element_by_xpath("https://input<