python实现语音机器人

众所周知,人工智能是未来的趋势

作为一个牛X的程序员,当然得 蹭蹭热度 赶上潮流啦

那……就展示一下我在编程课上学到的智能语音机器人吧

算了,再附送一个《完整》的QQ代码吧

(前提是你关注了我)

            不

                  怎

                        么

                              华

                                    丽

                                           的

                                                分

                                                      隔

                                                            线

好了,现在你……应该点了关注了吧

那我们继续↓

我们一段一段解析:

import requests
import easygui
import time
import random

这里就是导入库↑

​
​
API_KEY="XXX"
API_SECRET="XXX"
easygui.msgbox("欢迎来到木子的QQ!","木子的QQ","愉快地进入","1.gif")#记得要放个1.gif
person=None

​

​

先初始化爬虫语音助手的账号,再做个启动页面↑

while 1:
    from easygui import*
    password=multpasswordbox(msg="请输入账号及密码"+chr(10)+"(区分大小写)",title="木子的QQ",fields=["用户名","密码"],values=["admin","123456789"])
    if password[0]=="123"or"456"or"789":#验证账号
        if password[1]=="XXXXX": #验证密码
            if password[0]=="1234567890":#验证身份(1)
                easygui.msgbox("欢迎您,XX!","木子的QQ","进入QQ")
                person="XX"
                break
            elif password[0]=="1234567890":#验证身份(2)
                easygui.msgbox("欢迎您,XX!","木子的QQ","进入QQ")
                person="XX"
                break
            elif password[0]=="1234567890":#验证身份(3)
                easygui.msgbox("欢迎您,开发者!","木子的QQ","进入QQ")
                person="XX"
                break
        else:
            easygui.msgbox("账号或密码错误(a02)","木子的QQ")#密码错误
    else:
        easygui.msgbox("账号或密码错误(a01)","木子的QQ")#账号错误

做一个登录的GUI界面↑

easygui.msgbox("正在进入QQ......","木子的QQ","LOADING...")
time.sleep(random.randint(0, 3))
easygui.msgbox("成功进入QQ!","木子的QQ","进入")
loop()

然后做一个正在进入的界面,再运行“loop”(即主页界面)↑

def loop():#重复QQ窗口
    age=easygui.choicebox("“XX”的好友列表"+chr(10)+"昵称:无聊的木子",choices=["家人","同学","路人","智能机器人"])#进入目录
    if age=="家人":
        family()
    elif age=="同学":
        classmate()
    elif age=="路人":
        passerby()
    elif age=="智能机器人":
        robot()
    else:
        easygui.msgbox("拜拜了"+chr(10)+"(;´༎ຶД༎ຶ`)","木子的QQ","离开")
        exit()

然后是主界面(选择聊天)↑

def family():#进入“家庭”的目录
    a=easygui.choicebox("“家人”中的目录",choices=["爸爸","妈妈","无聊的木子","EXIT"])
    if a=="EXIT":
        loop()
    elif a=="爸爸"or a=="妈妈"or a=="无聊的木子":
        chat=""
        newchat=easygui.textbox("(聊天记录已清空)","和"+a+"的聊天")
        while True:
            if newchat:
                chat=chat+"\n"+person+":"+newchat
                newchat=easygui.textbox(chat,"和"+a+"的聊天")
            else:
                loop()
    else:
        loop()

def classmate():#进入“同学”的目录
    a=easygui.choicebox("“同学”中的目录",choices=["张三","李四","王二麻子","EXIT"])
    if a=="EXIT":
        loop()
    elif a=="张三"or a=="李四"or a=="王二麻子":
        chat=""
        newchat=easygui.textbox("(聊天记录已清空)","和"+a+"的聊天")
        while True:
            if newchat:
                chat=chat+"\n"+person+":"+newchat
                newchat=easygui.textbox(chat,"和"+a+"的聊天")
            else:
                loop()
    else:
        loop()

def passerby():#进入“路人”的目录
    a=easygui.choicebox("“路人”中的目录",choices=["路人甲","路人乙","路过的机器人(智能AI)","EXIT"])
    if a=="EXIT":
        loop()
    elif a=="路人甲"or a=="路人乙":
        chat=""
        newchat=easygui.textbox("(聊天记录已清空)","和"+a+"的聊天")
        while True:
            if newchat:
                chat=chat+"\n"+person+":"+newchat
                newchat=easygui.textbox(chat,"和"+a+"的聊天")
            else:
                loop()
    else:
        loop()

这里就是一些简单的聊天窗口↑

最重要的来了——

他来了他来了……

就是爬虫聊天机器人(图灵机器人)

​
def robot():
    easygui.msgbox("Remember:please keep the network connected."+chr(10)+"Otherwise, the voice assistant can't be used","木子的QQ","network is OK")
    newchat=" "
    chat="(聊天记录已清空)"
    API_KEY=""#记得填啊,你以为我会给你吗
    API_SECRET=""
    while True:
        if newchat:
            url=('http://i.itpk.cn/api.php?question='+newchat+"&api_key="+API_KEY+"&api_secret="+API_SECRET)
            file=requests.get(url)#获取网页代码文件
            data=file.text#把代码转换成文字
            chat=chat+"\n"+person+":"+newchat+"\n"+"机器人:"+data#说话   
        else:
            loop()
        newchat=easygui.textbox(chat,"和智能机器人的聊天")

​

这一段可是

混沌未分天地乱,茫茫渺渺无人见。

自从盘古破鸿蒙,开辟从兹清浊辨。

覆载群生仰至仁,发明万物皆成善。

欲知造化会元功,须看西游释厄传。

…………………………

哈哈也不是啦,就是简单的爬虫而已嘛

但是你要给我点赞转发加关注

源码如下:(我可是贡献了自己的最大力量了,给个评论不过分吧)

​
​
def robot():
    easygui.msgbox("Remember:please keep the network connected."+chr(10)+"Otherwise, the voice assistant can't be used","木子的QQ","network is OK")
    newchat=" "
    chat="(聊天记录已清空)"
    API_KEY=""
    API_SECRET=""#不填就会报错
    while True:
        if newchat:
            url=('http://i.itpk.cn/api.php?question='+newchat+"&api_key="+API_KEY+"&api_secret="+API_SECRET)
                file=requests.get(url)#获取网页代码文件
                data=file.text#把代码转换成文字
                chat=chat+"\n"+person+":"+newchat+"\n"+"机器人:"+data#说话   
        else:
            loop()
        newchat=easygui.textbox(chat,"和智能机器人的聊天")

def family():#进入“家庭”的目录
    a=easygui.choicebox("“家人”中的目录",choices=["爸爸","妈妈","弟弟","EXIT"])
    if a=="EXIT":
        loop()
    elif a=="XX"or a=="XX"or a=="XX":
        chat=""
        newchat=easygui.textbox("(聊天记录已清空)","和"+a+"的聊天")
        while True:
            if newchat:
                chat=chat+"\n"+person+":"+newchat
                newchat=easygui.textbox(chat,"和"+a+"的聊天")
            else:
                loop()
    else:
        loop()

def classmate():#进入“同学”的目录
    a=easygui.choicebox("“同学”中的目录",choices=["张三","李四","王二麻子","EXIT"])
    if a=="EXIT":
        loop()
    elif a=="张三"or a=="李四"or a=="王二麻子":
        chat=""
        newchat=easygui.textbox("(聊天记录已清空)","和"+a+"的聊天")
        while True:
            if newchat:
                chat=chat+"\n"+person+":"+newchat
                newchat=easygui.textbox(chat,"和"+a+"的聊天")
            else:
                loop()
    else:
        loop()

def passerby():#进入“路人”的目录
    a=easygui.choicebox("“路人”中的目录",choices=["路人甲","路人乙","路过的机器人(智能AI)","EXIT"])
    if a=="EXIT":
        loop()
    elif a=="路人甲"or a=="路人乙":
        chat=""
        newchat=easygui.textbox("(聊天记录已清空)","和"+a+"的聊天")
        while True:
            if newchat:
                chat=chat+"\n"+person+":"+newchat
                newchat=easygui.textbox(chat,"和"+a+"的聊天")
            else:
                loop()
    else:
        loop()

def loop():#重复QQ窗口
    age=easygui.choicebox("“XX”的好友列表"+chr(10)+"昵称:无聊的木子",choices=["家人","同学","路人","智能机器人"])#进入“XX”的目录
    if age=="家人":
        family()
    elif age=="同学":
        classmate()
    elif age=="路人":
        passerby()
    elif age=="智能机器人":
        robot()
    else:
        easygui.msgbox("拜拜了"+chr(10)+"(;´༎ຶД༎ຶ`)","木子的QQ","离开")
        exit()

import requests
import easygui
import time
import random
API_KEY="xxx"#你以为我会送你账号密码吗?
API_SECRET="XXX"
easygui.msgbox("欢迎来到木子的QQ!","木子的QQ","愉快地进入","1.gif")
easygui.msgbox("请先关注“无聊的木子”!博主等着呢")
person=None
while 1:
    from easygui import*
    password=multpasswordbox(msg="请输入账号及密码"+chr(10)+"(区分大小写)",title="李睿QQ",fields=["用户名","密码"],values=["admin","123456789"])
    if password[0]=="1234567"or"1234567890"or"12345678":#验证账号
        if password[1]=="XXXXXXXX": #验证密码
            if password[0]=="1234567890":#验证身份(1)
                easygui.msgbox("欢迎您,XX!","木子的QQ","进入QQ")
                person="XX"
                break
            elif password[0]=="1234567890":#验证身份(2)
                easygui.msgbox("欢迎您,XX!","木子的QQ","进入QQ")
                person="XX"
                break
            elif password[0]=="1234567890":#验证身份(3)
                easygui.msgbox("欢迎您,开发者!","木子的QQ","进入QQ")
                person="XX"
                break
        else:
            easygui.msgbox("账号或密码错误(a02)","木子的QQ")#密码错误
    else:
        easygui.msgbox("账号或密码错误(a01)","木子的QQ")#账号错误
easygui.msgbox("正在进入QQ......","木子的QQ","LOADING...")
time.sleep(random.randint(0, 3))
easygui.msgbox("成功进入QQ!","木子的QQ","进入")
loop()

​

​

好吧,拿(留)走(下)不(评)谢(论)

谢谢!

(要图灵的点赞收藏私信)

  • 4
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 11
    评论
Python语音助手是一个能够接收语音输入并进行文字识别、聊天回复、文字合成为语音并播放的应用程序实现一个Python语音助手的过程可以分为以下几个步骤: 1. 语音转文字:使用百度AI开放平台的语音识别API,将音频文件转换为文字。可以使用FFmpeg工具将音频格式转换为API支持的格式。 2. 聊天接口:使用图灵机器人接口,将用户的文字输入发送给机器人,获取机器人的回复。 3. 文字转语音:使用讯飞开放平台的语音合成API,将机器人的回复文字转换为语音文件。 4. 播放语音:使用pyaudio模块录制和播放音频,将语音文件播放出来。 下面是一个简单的Python语音助手的代码示例: ``` from aip import AipSpeech import pyaudio import wave import requests import json # 初始化百度语音识别的API APP_ID = '25016634' API_KEY = 'Qsj6XGf0m1ilsV0QwLTmHeiy' SECRET_KEY = 'Mctl1jHY85Hr3wmTpizLI********' client = AipSpeech(APP_ID, API_KEY, SECRET_KEY) # 录音函数 def record_audio(): # 使用pyaudio录制音频 CHUNK = 1024 FORMAT = pyaudio.paInt16 CHANNELS = 1 RATE = 16000 RECORD_SECONDS = 5 p = pyaudio.PyAudio() stream = p.open(format=FORMAT, channels=CHANNELS, rate=RATE, input=True, frames_per_buffer=CHUNK) print("* recording") frames = [] for i in range(0, int(RATE / CHUNK * RECORD_SECONDS)): data = stream.read(CHUNK) frames.append(data) print("* done recording") stream.stop_stream() stream.close() p.terminate() # 保存录音文件 wf = wave.open("record.wav", 'wb') wf.setnchannels(CHANNELS) wf.setsampwidth(p.get_sample_size(FORMAT)) wf.setframerate(RATE) wf.writeframes(b''.join(frames)) wf.close() # 语音转文字函数 def speech_to_text(): # 读取录音文件 with open("record.wav", 'rb') as f: data = f.read() # 调用百度语音识别API,将音频文件转为文字 result = client.asr(data, 'wav', 16000, { 'dev_pid': 1536, }) # 提取识别结果 if 'result' in result.keys(): text = result['result'][0] else: text = "" return text # 聊天函数 def chat(text): # 调用图灵机器人接口,进行文字聊天 url = 'http://openapi.tuling123.com/openapi/api/v2' data = { "reqType": 0, "perception": { "inputText": { "text": text } }, "userInfo": { "apiKey": "YOUR_API_KEY", "userId": "YOUR_USER_ID" } } response = requests.post(url, json=data) result = json.loads(response.text) # 提取机器人的回复 reply = result['results'][0]['values']['text'] return reply # 文字转语音函数 def text_to_speech(text): # 调用讯飞开放平台的语音合成API,将文字转为语音文件 # 这里省略具体代码 # 返回生成的语音文件路径 return "speech.wav" # 播放语音函数 def play_audio(file_path): # 使用pyaudio播放音频 CHUNK = 1024 wf = wave.open(file_path, 'rb') p = pyaudio.PyAudio() stream = p.open(format=p.get_format_from_width(wf.getsampwidth()), channels=wf.getnchannels(), rate=wf.getframerate(), output=True) data = wf.readframes(CHUNK) while data: stream.write(data) data = wf.readframes(CHUNK) stream.stop_stream() stream.close() p.terminate() # 主函数 def main(): # 录音 record_audio() # 语音转文字 text = speech_to_text() # 聊天 reply = chat(text) # 文字转语音 speech_file = text_to_speech(reply) # 播放语音 play_audio(speech_file) # 运行主函数 if __name__ == '__main__': main() ``` 这段代码实现了一个基本的Python语音助手,可以录制音频文件,并将其转换为文字,然后发送给机器人进行聊天回复,最后将回复的文字转换为语音并播放出来。需要注意的是,其中的一些API的调用需要替换为你自己的API Key和Secret Key。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [小白如何做一个Python人工智能语音助手](https://blog.csdn.net/m0_57307642/article/details/120849915)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [简易语音助手—python](https://blog.csdn.net/chqhong/article/details/112427268)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值