شاید در مورد ماژول chatterbot چیزی خوانده باشید یا شنیده باشید.این ماژول برای شما یک چتبات که میتواند یاد بگیرد را فراهم میسازد و از الگوریتمهای یادگیری ماشینی استفاده میکند.
پیش از هر کاری پیشنیازها را نصب کنید:
pip3 install chatterbot chatterbot_corpus SpeechRecognition --user
sudo apt install espeak-ng
chatterbot را که هسته اصلی برنامهی ما هست.ماژول SpeechRecognition کار تبدیل گفتار به متن را برایمان انجام میدهد و espeak-ng نیز متن را به گفتار تبدیل میکند.اسکریپت زیر را در یک فایل پایتون ذخیره کنید:
import speech_recognition as sr
import subprocess as sp
import chatterbot
from chatterbot.conversation import Statement as St
def say(text):
sp.Popen(("espeak-ng", "-v", "fa", text))
r = sr.Recognizer()
bot = chatterbot.ChatBot("Kalpak", read_only=True)
with sr.Microphone() as source:
r.adjust_for_ambient_noise(source)
while True:
try:
audio = r.listen(source, timeout=0.5)
text = r.recognize_google(audio, language="fa-IR")
res = bot.get_response(St(text)).text
print(text, "->", res)
say(res)
except sr.WaitTimeoutError:
print("Timed out...")
continue
except:
continue
همچنین دیتابیس زیر را دانلود کنید و در همان دایرکتوری اسکریپت قرار دهید.
سپس اسکریپت را اجرا کنید و با بات حرف بزنید.توجه کنید که بسته به سرعت پردازنده کامپیوتر شما میتواند چند ثانیه یا بیشتر طول بکشد تا بات جواب دهد و باید به اینترنت متصل باشید تا بات بتواند بفهمد شما چه میگویید.این بات هنوز بسیار نادان و ابله است.اگر میخواهید باهوشتر باشد باید به او یاد بدهید.برای اطلاعات بیشتر مستندات chatterbot را ببینید.
اگه مثلا توی یه برد بزاریش میتونی همیشه همرات داشته باشی و بهش یاد بدی ((: