شاید در مورد ماژول 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 را ببینید.