Hướng dẫn đọc tiếng việt python

  • 1. Tổng quan về các bước xây dựng trợ lý ảo tiếng việt
  • 2. Speech to text
  • 3. Text to speech
  • 4. Action
  • 5. Tổng kết:

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 SpeechRecognition

Tiếp theo, để SpeechRecognition xử lý phần Microphone bạn cần cài thêm thư viện pyaudio:

pip install pyaudio

Nế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.whl

Như 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 gTTS

Cài thêm thư viện playsound để phát âm thanh trực tiếp cho python.

pip install playsound

Sau 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.pytexttospeech.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 text

Cò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é!

Bài Viết Liên Quan

Chủ Đề