Xây Dựng Trợ Lý ảo Tiếng Việt Bằng Ngôn Ngữ Python (cơ Bản)
Có thể bạn quan tâm
1. Tổng quan về các bước xây dựng trợ lý ảo tiếng việt
Mình sẽ có một bài phân tích về sự khác nhau giữa chatbot và trợ lý ảo sau nhé! Còn bây giờ cứ xem như nó là một! Chúng ta bắt đầu xây dựng nào!
Để xây dựng một hệ thống trợ lý ảo gồm có 3 bước:
- 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.
- 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).
- 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.
Xem hình sau để hiểu về cách hoạt động của hệ thống:
2. Speech to text
Mục đính bài viết này mình chỉ muốn các bạn viết được một chương trình trợ lý ảo bằng python cho nên mình sẽ không đi sâu vào phần lý thuyết!
Để thực hiện bước này mình sẽ sử dụng thư viện (API) của google là Speech Recognition:
pip install SpeechRecognitionTiếp theo, để SpeechRecognition xử lý phần Microphone bạn cần cài thêm thư viện pyaudio:
pip install pyaudioNếu bước cài pyaudio bị lỗi, bạn vào đây ,nhấn ( ctrl + f ) gõ “pyaudio” để di chuyển đến phần thư viện pyaudio và tải thư viện tương thích với máy của bạn về sau đó cài đặt.
VD: mình tải phiên bản “PyAudio-0.2.11-cp37-cp37m-win_amd64.whl” (Do mình dùng python3.7 và win 64 bit) vào thư mục Download thì tại thư mục Download mở cmd và thực hiện lệnh cài như sau:
pip install PyAudio-0.2.11-cp37-cp37m-win_amd64.whlNhư vậy đã xong phần cài đặt thư viện cho speech to text, chúng ta bắt đầu code thôi. Tạo một thư mục Trolyao và thêm vào 3 file như sau: speechtotext.py, action.py, texttospeech.py . Mỗi file tương ứng từng phần xử lý.
File speechtotext.py bạn thực hiện cho mình đoạn code sau:
import speech_recognition as sr import pyaudio r = sr.Recognizer() with sr.Microphone() as source: print("Mời bạn nói: ") audio = r.listen(source) try: text = r.recognize_google(audio,language="vi-VI") print("Bạn -->: {}".format(text)) except: print("Xin lỗi! tôi không nhận được voice!")Lưu ý: language=”vi-VI” là để khai báo Tiếng Việt. Nếu bạn không khai báo thì mặc định sẽ là Tiếng Anh.
Và sau đây là kết quả khi mình chạy file speechtotext.py:
3. Text to speech
Tiếp theo thì mình sẽ viết file texttopeech.py trước, để khi viết file action.py sẽ dễ hiểu hơn. Để chuyển văn bản thành giọng nói thì mình sẽ sử dụng thư viện gTTS cũng của Google:
pip install gTTSCài thêm thư viện playsound để phát âm thanh trực tiếp cho python.
pip install playsoundSau khi cài đặt xong 2 thư viện trên, bạn thực hiện cho mình đoạn code sau vào file texttopeech.py:
from gtts import gTTS import playsound text = "Em nhà ở đâu thế" output = gTTS(text,lang="vi", slow=False) output.save("output.mp3") playsound.playsound('output.mp3', True)Lưu ý: lang=”vi” để khai báo Tiếng Việt.
Sau đây là kết quả khi chạy file texttopeech.py:
4. Action
Để thuận tiên hơn trước khi viết file action.py thì các bạn chuyển file speechtotext.py và texttospeech.py thành các hàm (function), cụ thể như sau:
Đối với file speechtotext.py thì cần đưa vào hàm không tham số, :trả về text.
import speech_recognition as sr import pyaudio def speechtotext(): r = sr.Recognizer() with sr.Microphone() as source: print("Mời bạn nói: ") audio = r.listen(source) try: text = r.recognize_google(audio,language="vi-VI") print("Bạn -->: {}".format(text)) except: print("Xin lỗi! tôi không nhận được voice!") return textCòn file texttospeech.py thì cần đưa vào hàm nhận tham số là text, không cần trả về:
from gtts import gTTS import playsound # text = "tôi có thể giúp gì cho bạn" def texttospeech(text): output = gTTS(text,lang="vi", slow=False) output.save("output.mp3") playsound.playsound('output.mp3', True)Sau khi có 2 hàm trên ta bắt đầu viết file action.py:
from speechtotext import speechtotext from texttospeech import texttospeech text = speechtotext() if (text=="Hello"): texttospeech("chào bạn") elif (text=="Bạn tên gì"): texttospeech("tôi là trợ lý ảo quán trà ai") else: texttospeech("xin lỗi tôi chưa thông minh nên không hiểu câu này")Giải thích về action: nếu người dùng nói “Hello” thì bot sẽ là “chào bạn”. Nếu hỏi “Bạn tên gì” bot sẽ trả lời “tôi là trợ lý ảo quán tra ai”, câu hỏi khác thì nó không biết.
Sau đây là kết quả:
5. Tổng kết:
Trong bài viết trên mình đã hướng dẫn các bạn viết một chương trình một trở lý ảo cơ bản bằng ngôn ngữ Python. Vấn đề của con robot hiện tại:
- Còn phải nhấn Enter để giao tiếp.
- Nó chưa hề có gì là thông minh.
Trong bài viết tiếp theo, mình sẽ hướng dẫn các bạn giải quyết các vấn đề trên. Sử dụng kỹ thuật xử lý ngôn ngữ tự nhiên (NLP) và Machine Learning để làm cho con bot của mình thông minh lên nhé!
Cảm ơn các bạn đã xem bài viết của mình! mọi thắc mắc xin để lại bình luận bên dưới!
🤖 Hơn 1 năm rồi mình mới quay lại viết tiếp phần nâng cao 2. Mong các bạn ủng hộ và đăng ký kênh nhé!
Từ khóa » Thư Viện Playsound Python
-
Phát âm Thanh Bằng Python - HelpEx
-
Playsound - PyPI
-
Trợ Lý Ảo | Sửa Lỗi Khi Nói Trong Thư Viện Playsound - YouTube
-
Hướng Dẫn Làm Trợ Lý ảo đơn Giản 2020 Với Python (phần 3/4)
-
Winsound — Sound-playing Interface For Windows — Python 3.10.5 ...
-
Play A Sound With Python - Audio - Stack Overflow
-
Play Sound In Python
-
Một Việc Là Chương Trình Spyder Có Thể Chèn Nhạc Vào Không ?
-
Lập Trình Trợ Lý Ảo Tiếng Việt Toàn Diện Với Python - CodeLearn
-
Hướng Dẫn Các Bước Tạo đồng Hồ Báo Thức Bằng Ngôn Ngữ Python
-
Thư Viện cx - Thư Viện Os Trong Python Thư Viện Os...
-
#1 Trợ Lý Ảo | Sửa Lỗi Khi Nói Trong Thư Viện Playsound - Vzone
-
Tạo Trợ Lý Giọng Nói Bằng Python Và đó Là Các Thư Viện
-
Cách Thêm âm Thanh Vào Video Trong Python Bằng Thư Viện MoviePy