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ì tuyệt vời hơn khi biết chúng ta cũng có thể tự tạo nên mình một con trợ lý ảo, ngay cả phiên bạn dạng tiếng việt. Nào bắt tay vào làm cho 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 cụ thể làm nạm nào để viết một trở lý ảo giờ việt bởi Python, mình gọi tên cậu ấy là Alex.

Nhiều chúng ta vẫn chưa thực sự được tiếp cận với trí tuệ nhân tạo hay cụ thể hơn là xử lý ngôn ngữ tự nhiên hay như là một con trợ lý ảo tức thị 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 to lớn như vậy nào so với ngành technology thông tin. Mình lựa chọn sử dung python, Python là 1 ngôn ngữ lập trình tất cả một cỗ thư viện nhiều năng. Yêu cầu trí tuệ nhân tạo hiện giờ cũng trở nên dễ dàng và đơn giản hơn với chúng ta. Bản thân sẽ ví dụ hóa các cụ thể giúp bạn hình dung những quá trình để làm một nhỏ trợ lý ảo nhé.

Trợ lý ảo đã trở nên tân tiến thế nào?

*

Timeline trợ lý ảo từ bỏ 2010 mang đến nay

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

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

Vào tháng bốn 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 chừng 100 trường đoản cú và trở nên nó thành nội dung có thể đọc được. Theo dòng thời gian, giải pháp xử lý ngôn ngữ thoải mái và tự nhiên và trợ lý ảo được chi tiêu nghiên cứu khỏe khoắn mẽ, trải qua phần nhiều cột mốc đặc biệt quan trọng và đã đạt được thành tựu hoàn hảo như ngày hôm nay.

Kiến thức phải có

*

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

Giao tiếp, chào hỏiCho các bạn biết thời gian hiện tạiKhởi chạy ứng dụng khối hệ thống và mở ngẫu nhiên trang web làm sao trên trình phê duyệt ChromeMở Google search và tìm kiếm kiếm thế cho bạnGửi email tới những người trong danh bạ của bạnCho các bạn biết thời tết cùng nhiệt độ bây giờ của đa số mọi thành phốPhát cho chính mình một bài xích hát bên trên YoutubeThay đổi hình nền máy tínhCho các bạn biết tin tức new nhấtNói cho mình về hấu hết phần đa thứ bạn yêu cầu

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

Nào bọn chúng ta bắt đầu thôi. Let"s go !!!!

*

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

Khi setup xong, chúng ta mở Anaconda Prompt (có thể kiếm tìm thấy trong thư mục setup Anaconda), dịch chuyển đến thư mục đựng project và tiến hành chạy Jupyter Notebook bởi câu lệnh:

jupyter notebook

Cửa số hiện tại lên, bạn chỉ cần vào new lựa chọn python 3ta đã có một notebook rất 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 phải thiết, bọn họ tiếp tục vào Anaconda Prompt và thực hiện cài những Python Package trải qua gói thư việnpip. Ví dụ, ta muốn setup thư việnabcxyzthì gõ câu lệnh:

pip install abcxyz

*

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

1. Import những thư viện phải thiết

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

Việc thứ nhất mình vẫn khai báo một vài biến chuyển để lưu băng thông hay những tham số nhằm xử lý ngôn từ dưới dạng tiếng việt.

2. Khai báo trở nên mặc định

wikipedia.set_lang("vi")language = "vi"path = ChromeDriverManager().install()Hiện tại, những Lab nghiên cứu và phân tích về trí tuệ tự tạo ở việt nam đang đầu tư đẩy mạnh phân tích mảng xử lý ngôn ngữ thoải mái và tự nhiên (Natural Language Processing) làm việc dạng giờ việt và dành được những tác dụng đáng ghi nhận. Các mô hình nghiên cứu vớt được hoàn toàn có thể xử lý ngôn từ tiếng việt ở các vùng miền, cả phái nam lẫn nữ, vô cùng 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 sở hữu tính vận dụng cao, đang được các công ty công nghệ áp dụng xúc tiến thực tế, nâng cấp năng suất lao rượu cồn một phương pháp 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 chất lượng xử lý tiếng việt không thực sự tuyệt vời nhất nhưng ở góc cạnh độ bài viết thì bản thân thấy là khá ổn.

Mình giữ thêm trở nên path nhằm lưu đường dẫn cài đặt Chrome để tránh việc setup lại Chrome khi chạy lại hàm.

3. Công dụng chuyển văn bản thành âm thanh

*

Google Cloud Text to lớn 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 trước tiên mình đề nghị là đưa một đoạn văn bạn dạng thành music và phát âm nó lên trên vật dụng tính.

Mình sử dụng hàm gTTS (google Text to lớn Speech) để chuyển văn bạn dạng thành music theo ngôn từ nhận dạng tiếng việt rồi lưu lại về máy tính xách tay dữ liệu âm nhạc dưới file sound.mp3.

Sau đó, minh cần sử dụng hàm playsound.playsound() để đọc tệp tin sound.mp3trên máy tính.

Xem thêm: Nên Mua Macbook Ở Đâu Hà Nội, Hcm Có Bảo Hành Tốt Nhất, 9 Địa Chỉ Mua Macbook Uy Tín Ở Hà Nội

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

4. Tính năng chuyển âm thanh thành văn bản

*

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

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

Trong công dụng này, mình áp dụng 2 hàm khác hỗ trợ là get_audio() và 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 thực hiện thư viện speech_recognition (sr) có chức năng là nhấn dạng các giọng nói để chuyển âm nhạc thành văn bản. Âm thanh được gọi vào microphone của dòng sản phẩm tính tiếp nối được cách xử lý qua hàm listen của sr.Recognition rồi lưu tài liệu âm thanh vào trở thành audio. Dữ liệu âm thanh audio chiếm được sẽ được trao dạng ở ngôn từ 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 tài liệu vào vươn lên là text.

Nếu dữ liệu âm thanhaudio ko lỗi tức là hàmr.recognize_google có thể nhận dạng được audio để chăm thành text thì hàm get_audio() sẽ được trả về quý hiếm là text còn nếu dữ liệu audio bị lỗi mà hàm r.recognition_google không sở hữu và nhận dạng được thì hàm get_audio() sẽ tiến hành trả về giá trị là 0 (Mục đích là khi máy tính không 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 chúng ta sau!")Hàm stop() đơn giản và dễ dàng là gọi đoạn text "Hẹn chạm chán lại chúng ta sau" sử dụng hàm speak() nghỉ ngơi 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 bạn đọc tối đa 3 lần cho tới khi máy tính xách tay hiểu. Mình thực hiện hàm for lặp lại 3 lần, nếu như đoạn text có giá trị khác 0 thì hàm get_text sẽ tiến hành trả về giá trị text.lower() (Chuyển chữ cái in hoa thành in thường), còn trường hợp text nhận cực hiếm là 0 (Tức là minh gọi mà máy tính không hiểu) mà chưa đọc mang lại lần sản phẩm công nghệ 3 thì mình vẫn yêu cầu người tiêu dùng đọc lại. Nếu như sau 3 lần mà laptop vẫn không hiểu biết thì bản thân nói gì hay không nghe thấy gì thì mình đang cho dừng lại sử dụng hàm stop với hàm get_text lúc này sẽ được trả về giá trị là 0 (Mục đích là khi laptop không nghe thấy gì thì bản thân sẽ cho dừng chương trình luôn).

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

5. Công dụng giao tiếp, chào hỏi

def hello(name): day_time = int(strftime("%H")) if day_time Nội dung công dụng này là để tiếp xúc thông thường giữa người và máy tính. Đơn cử như: xin 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 vẫn mô rộp bằng công dụng chào hỏi thực hiện hàm hello.

Mình áp dụng biến day_time nhằm lưu giờ bây giờ trong ngày. Sau đó, đổi thay sẽ được so sánh với các mốc giờ đồng hồ 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ẽ chào buổi sáng, từ bỏ 12 giờ mang đến sau 18 giờ mình sẽ kính chào buổi chiều, từ 18 giờ trở đi mình sẽ chào buổi tối.

6. Chức năng hiển thị thời gian

def get_time(text): now = datetime.datetime.now() if "giờ" in text: speak("Bây tiếng là %d giờ %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 biết đến ý của bạn. Bạn nói lại được không?")Chức năng này khá là đối chọi giản. Mình sử dụng thư viện datetime để lưu thông tin thời gian tại thời điểm hiện tại trong ngày rồi lưu giữ vào đổi mới now.

Mình bình chọn nếu trong khúc text mình hỏi bao gồm chữ "giờ", mình đang đọc thời gian hiện tại trong ngày còn nếu tất cả chữ "ngày" vào text thì mình sẽ đọc thời điểm hiện tại trong năm.

Ví dụ:

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

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

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

7. Chức năng mở ứng dụng hệ thống, website và chức 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 chưa được cài đặt. Các bạn hãy thử lại!")Khi lộ diện các trường đoản cú khóa đặc biệt quan trọng như google tuyệt word tuyệt excel trong text thì mình dùng hàm os.startfile() nhằm mở những file áp dụng từ hệ thống.

Chỉ kiểm soát từ google giỏi word hay excel vào text là chưa đủ. Mình cần giới hạn ngữ nghĩa của text ở trong hàm assistant nhằm bot hoàn toàn có thể hiểu là mở công tác Google Chrome, Word, Excel chứ không nhầm lẫn với các tính năng khác.

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

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

Nếu domain được hàm re.search() tìm thấy thì mình vẫn thực hiện tác dụng mở website và hàm open_website được trả về cực hiếm là True, còn nếu domain name không được tìm thấy thì mình sẽ không thực hiện công dụng gì cả cùng hàm open_website trả về quý giá 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<