Python打造会聊天的AI机器人!保姆级教程+完整代码,零基础也能玩转人工智能!

导语:想用Python亲手实现一个能语音对话、查天气、讲笑话的智能机器人吗?本文将手把手教你从零搭建一个“钢铁侠贾维斯”雏形!内含完整代码和避坑指南,小白也能轻松上车!文末附【完整项目源码】下载方式!


一、项目效果预览

  • 语音唤醒:喊“小智”唤醒机器人

  • 多轮对话:支持闲聊、查天气、讲笑话、算数学题

  • 语音交互:麦克风输入 + TTS语音回复

  • 技能扩展:可自由添加翻译、新闻播报等功能


二、环境准备

1. 安装Python库(需Python 3.6+)

pip install speechrecognition pyttsx3 requests nltk

2. 申请免费API密钥


三、核心代码分步实现

1. 语音识别模块

import speech_recognition as sr

def listen():
    r = sr.Recognizer()
    with sr.Microphone() as source:
        print("请说话...")
        audio = r.listen(source, timeout=5)
    try:
        text = r.recognize_google(audio, language='zh-CN')
        print(f"识别结果:{text}")
        return text
    except Exception as e:
        print("识别失败:", e)
        return ""
2. 语音合成模块
import pyttsx3

engine = pyttsx3.init()
# 设置语速音量(可自定义AI音色)
engine.setProperty('rate', 150)  
engine.setProperty('volume', 0.9)

def speak(text):
    print(f"AI:{text}")
    engine.say(text)
    engine.runAndWait()

 3. 智能对话核心逻辑

import random
import requests
from nltk.chat.util import Chat, reflections

# 自定义对话规则(可无限扩展)
pairs = [
    [r'你好|嗨', ['你好呀!我是小智~', '嗨,有什么能帮您?']],
    [r'(.*)天气(.*)', get_weather],  # 天气查询函数
    [r'讲个笑话', tell_joke],
    [r'退出|再见', ['再见啦,记得常来找我玩!', '小智下线中...']]
]

chatbot = Chat(pairs, reflections)

def get_weather(city):
    API_KEY = "YOUR_API_KEY"
    url = f"https://api.seniverse.com/v3/weather/now.json?key={API_KEY}&location={city}"
    res = requests.get(url).json()
    weather = res['results'][0]['now']['text']
    return f"{city}现在天气:{weather},温度{res['results'][0]['now']['temperature']}℃"

def tell_joke():
    jokes = ["为什么程序员总分不清万圣节和圣诞节?因为Oct31 == Dec25!",
            "SQL查询走进酒吧,看见两张表,问:我可以JOIN你们吗?"]
    return random.choice(jokes)
4. 主程序循环

def main():
    speak("小智已启动,唤醒词是'小智'哦~")
    while True:
        text = listen().lower()
        if "小智" in text:
            speak("在呢,请吩咐!")
            while True:
                query = listen()
                if not query: continue
                if "退出" in query: 
                    speak("下次见!")
                    return
                response = chatbot.respond(query)
                speak(response or "小智还在学习中,换个问题试试?")
                
if __name__ == "__main__":
    main()

四、项目优化技巧

  1. 增加唤醒词检测:使用wakeword_detection库实现离线唤醒

  2. 接入ChatGPT:替换pairs为OpenAI API调用

  3. 添加图形界面:用PyQt5/Tkinter制作可视化UI

  4. 异常处理增强:网络错误时自动重试


五、常见问题解决

  • Q:麦克风无法识别?

    • A:检查麦克风权限,尝试更换sr.Microphone(device_index=1)

  • Q:中文识别不准?

    • A:改用百度语音API(需申请BAIDU_APP_ID/KEY

  • Q:运行报nltk错误?

    • A:终端执行python -m nltk.downloader punkt


结语:本文实现了智能机器人的核心功能,点赞收藏过500立即更新《用GPT-4升级机器人》教程!你在项目中遇到什么问题?欢迎评论区留言讨论!

已上传完整代码,欢迎查阅!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

夏末之花

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值