第一次写AI,写得不怎么样,还望大佬们能赏脸看看,不足的地方,请多多指教!!
实现目的:借助百度AI的语音识别和语音合成,以及图灵机器人来实现智能语音聊天机器人

文章目录

  • 1.图灵机器人的创建
  • 2.录音功能的实现
  • 3.百度AI接口创建
  • 4.语音合成技术的实现
  • 5.如何将合成的语音在python环境中播放出来
  • 6.语音识别技术的实现
  • 7.图灵API自动回复
  • 8.代码汇总
  • 9.结果显示
  • 10.总结

1.图灵机器人的创建

图灵机器人
创建属于自己的图灵机器人
注意:密钥一定要关闭,不然结果会出现加密方式错误!!!!!
在这里,我们可以对它进行人物设置,把它打造成我们想要的机器人……

2.录音功能的实现

在百度AI中语音合成比语音识别技术要简单些,因为语音识别会有一些噪音的干扰等,无法识别,所以我们就要对噪音进行处理,处理方法在录音功能中实现

import pyaudio
import wave
def record(seconds,filename):RATE=8000#采样率CHANNELS=2#采样管道数FORMAT=pyaudio.paInt16#量化位数SECONDS=seconds#录音时长p = pyaudio.PyAudio()stream=p.open(rate=RATE,channels=CHANNELS,format=FORMAT,input=True)frames=[]#存储所有读取到的数据print("录音开始,还有",seconds,"秒")data=stream.read(RATE*SECONDS)frames.append(data)stream.stop_stream()print("录音结束!!!")stream.close()p.terminate()   #关闭会话wf=wave.open(filename,"wb")wf.setnchannels(CHANNELS)wf.setframerate(RATE)wf.setsampwidth(p.get_sample_size(FORMAT))wf.writeframes(b''.join(frames))wf.close()return filename
record(5,'F:\\auido.wav')

3.百度AI接口创建

百度AI官网


然后创建应用,获取想要的API和密码

4.语音合成技术的实现

在使用百度AI的时候要学会看技术文档

""" 你的 APPID AK SK """
APP_ID = '您的APP_ID'
API_KEY = '您的API_KEY'
SECRET_KEY = '您的SECRET_KEY'client = AipSpeech(APP_ID, API_KEY, SECRET_KEY)
result  = client.synthesis(mm, 'zh', 1, {'vol': 5, 'spd':4, 'per':1
})
if not isinstance(result, dict):with open('F:\\auido.mp3', 'wb') as f:f.write(result)

5.如何将合成的语音在python环境中播放出来

首先需要导入pygame模块,用pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pygame来下载速度会快些

import pygame
import time
filename="F:\\auido.mp3"
pygame.mixer.init()
pygame.mixer.music.load(filename)
pygame.mixer.music.play()
time.sleep(5)

6.语音识别技术的实现

from aip import AipSpeech
import pyaudio
import wave
import time
def record(seconds,filename):RATE=8000#采样率CHANNELS=2#采样管道数FORMAT=pyaudio.paInt16#量化位数SECONDS=seconds#录音时长p = pyaudio.PyAudio()stream=p.open(rate=RATE,channels=CHANNELS,format=FORMAT,input=True)frames=[]#存储所有读取到的数据print("录音开始,还有",seconds,"秒")data=stream.read(RATE*SECONDS)frames.append(data)stream.stop_stream()print("录音结束!!!")stream.close()p.terminate()   #关闭会话wf=wave.open(filename,"wb")wf.setnchannels(CHANNELS)wf.setframerate(RATE)wf.setsampwidth(p.get_sample_size(FORMAT))wf.writeframes(b''.join(frames))wf.close()return filename
record(5,'F:\\auido.wav')
""" 你的 APPID AK SK """
APP_ID = '20178217'
API_KEY = 'DXpGC2WesUxvGpzcqFuk55de'
SECRET_KEY = 'ILPB25e9GSOAnxlokVSu4yWVVik2qtz9'client = AipSpeech(APP_ID, API_KEY, SECRET_KEY)
# 语音识别
def get_file_content(filePath):with open(filePath, 'rb') as fp:return fp.read()# 识别本地文件
result=client.asr(get_file_content('F:\\auido.wav'), 'wav', 16000, {'dev_pid': 1537,
})
mm=result['result'][0]

7.图灵API自动回复

urls = 'http://openapi.tuling123.com/openapi/api/v2'    # 图灵接口的url
api_key = "输入您的apiKey"
# 回复
def Turing(data,n):data_dict = {"reqType": 0,"perception": {"inputText": {"text": data},},"userInfo": {"apiKey": api_key,"userId": "输入用户ID"}}result = requests.post(urls, json=data_dict)content = result.text# print(content)ans = json.loads(content)text = ans['results'][0]['values']['text']print('Niubility:',text)  # 机器人取名就叫Niubility

8.代码汇总

import requests
import json
from aip import AipSpeech
import wave
import pyaudio
import pygame
import time
urls = 'http://openapi.tuling123.com/openapi/api/v2'   # 图灵接口的url
api_key = "38a0a09b87424c948d5ad92e7964e3db"count = 1  # 用来计数输入的次数
def record(seconds,filename):RATE=8000#采样率CHANNELS=2#采样管道数FORMAT=pyaudio.paInt16#量化位数SECONDS=seconds#录音时长#第一步:创建PyAudio的实例对象p = pyaudio.PyAudio()#第二步:调用PyAudio实例对象的open方法创建流Streamstream=p.open(rate=RATE,channels=CHANNELS,format=FORMAT,input=True)frames=[]#存储所有读取到的数据print("录音开始,还有",seconds,"秒")#第三步:根据需求,调用Stream的write或者read方法data=stream.read(RATE*SECONDS)frames.append(data)#第四步:调用Stream的stop方法停止播放音频或者是录制音频stream.stop_stream()print("录音结束!!!")#第五步:调用Stream的close方法,关闭流stream.close()#第六步:调用pyaudio.PyAudio.terminate() 关闭会话p.terminate()#写入到wav文件里面wf=wave.open(filename,"wb")wf.setnchannels(CHANNELS)wf.setframerate(RATE)wf.setsampwidth(p.get_sample_size(FORMAT))wf.writeframes(b''.join(frames))wf.close()return filename
""" 你的 APPID AK SK """
APP_ID = '20178217'
API_KEY = 'DXpGC2WesUxvGpzcqFuk55de'
SECRET_KEY = 'ILPB25e9GSOAnxlokVSu4yWVVik2qtz9'client = AipSpeech(APP_ID, API_KEY, SECRET_KEY)
# 语音识别
def get_file_content(filePath):with open(filePath, 'rb') as fp:return fp.read()# 回复
def Turing(data,n):data_dict = {"reqType": 0,"perception": {"inputText": {"text": data},},"userInfo": {"apiKey": api_key,"userId": "630194"}}result = requests.post(urls, json=data_dict)content = result.text# print(content)ans = json.loads(content)text = ans['results'][0]['values']['text']print('Niubility:',text)  # 机器人取名就叫Niubilityresult2 = client.synthesis(text, 'zh', 1, {'vol': 5, 'spd': 4, 'per': 1})# 识别正确返回语音二进制 错误则返回dict 参照下面错误码if not isinstance(result2, dict):with open('F:\\auido{}.mp3'.format(n), 'wb') as f:f.write(result2)pygame.mixer.init()pygame.mixer.music.load("F:\\auido{}.mp3".format(n))pygame.mixer.music.play()time.sleep(10)f.close()
if __name__ == "__main__":print("Niubility:主人您好,我是Niubility,爱你哦~")for n in range(1,51):record(5,'F:\\auido.wav')result = client.asr(get_file_content('F:\\auido.wav'), 'wav', 16000, {'dev_pid': 1537,})mm = result['result'][0]data = input('{}//你:'.format(count)+mm)  # 输入对话内容Turing(mm,n)count+=1

9.结果显示

10.总结

做实验遇到的问题:
(1)结果出现错误信息:加密方式不正确,解决:把密钥关闭,再次运行
(2)出现[Errno 13] Permission denied: ‘audio.mp3’……解决:写入到不同的mp3文件

简单的智能聊天机器人终于做出来了,心里还是有点小激动哈哈哈哈哈

python图灵智能语音聊天机器人相关推荐

  1. 基于 QT5 百度语音API 图灵机器人API 的智能语音聊天机器人

    基于 QT5 百度语音API 图灵机器人API 的智能语音聊天机器人 程序简介 代码一共分为以下几个模块 伪代码形式为 部分代码 源代码下载地址 程序简介 程序界面包含录音和发送两个按钮 点录音将开始 ...

  2. python实现类似Siri的AI语音聊天机器人(需要图灵机器人和百度语音合成的API)

    程序简介:模仿Siri,参考微信公众号:学习python的正确姿势,在语音播放和搜索的基础上,增加了语音输入和打开常用软件功能. 一.配置 Windows10系统 python3.7 pycharm ...

  3. alsa 测试 linux_python语音智能对话聊天机器人--linuxamp;amp;树莓派双平台兼容

    此项目只不过是之前大三刚学python就想做点好玩的项目试试看(因此技术含量不高),后来这个成为毕业设计的一部分,长期看博客上访问量也不错,就发布出来,希望有想入门python 的朋友可以参考写来玩玩 ...

  4. 树莓派智能家居-语音聊天机器人实现

    个人博客:http://www.chenjianqu.com/ 原文链接:http://www.chenjianqu.com/show-42.html 最近开始复习考研了,所以博客更新频率要降下来了, ...

  5. 树莓派语音聊天机器人

    树莓派语音聊天机器人 前期工作 DAY1 DAY2 DAY3 使用代码 带有VAD的录音程序 语音转文字程序 图灵聊天机器人代码 文字转语音程序 注 前期工作 本人拟在树莓派中设计一个GUI,GUI包 ...

  6. 人工智能 - 语音合成,语音识别,语音聊天机器人

    目录 人工智能 - 语音合成,语音识别,语音聊天机器人 语音合成 语音识别 语音聊天机器人 人工智能 - 语音合成,语音识别,语音聊天机器人 现成的AI算法平台http://ai.baidu.com/ ...

  7. python制作聊天机器人原理_用 Python 来做一个聊天机器人吧!(一)

    在我的一个回答里,我提到了用 Python 搭建聊天机器人.从今天开始,我就带着大家从0开始搭建一个聊天机器人. (顺便说一句,我喜欢把链接像上面这样加在文字里,如果找不到文中所说的资源,可以看看周围 ...

  8. 用python实现语音的传输功能_用Python打造一款智能语音聊天小软件!

    最近小编与中科院的同学吃饭的时候,偶然讲起来他最近的一个项目就是利用语音识别的技术和聊天机器人来实现人机交互,简而言之就是我们说话,程序识别出来我们讲的是什么,然后通过聊天机器人跟我们实现交流.我感到 ...

  9. python模块大全_哎呀,不错哦!3步带你用Python打造一款智能语音聊天小软件

    最近小编与中科院的同学吃饭的时候,偶然讲起来他最近的一个项目就是利用语音识别的技术和聊天机器人来实现人机交互,简而言之就是我们说话,程序识别出来我们讲的是什么,然后通过聊天机器人跟我们实现交流.我感到 ...

最新文章

  1. 零基础的前端开发初学者应如何系统地学习?
  2. mysql select into和insert into select
  3. 第二节:思维导图学习Shell脚本编程之命令之美
  4. 单词拆分Python解法
  5. java考驾照_基于JavaWeb的驾校考试系统.doc
  6. resnet网络结构_ResNet网络详细解析(超详细哦)
  7. Svn服务器之必须提交更改日志篇
  8. 全栈工程师可以分为哪几类?
  9. docker装LibreELEC_如何在LibreELEC上安装Entware?
  10. 小白量化彩票实战(5)彩票号码快速生成组合及利用数据库生成彩票号码组合
  11. 修改才是写作的本质所在
  12. android 自定义圆点,Android自定义带圆点的半圆形进度条
  13. Labelme直接生成灰度图
  14. 强化学习经典算法笔记(六):深度Q值网络 Deep Q Network
  15. html 通知页面,12款体验不错的网站提示/通知样式
  16. nachos学习笔记(一)
  17. 闭关修炼(六)各种锁
  18. QUECTEL上海移远4G通讯CAT4模组EC20CEFAG模块串口调试指南之02【EC20模组硬件供电和开关机复位操作】
  19. 2022广西省安全员B证题库模拟考试平台操作
  20. 如何解决python中打印数据的时候显示不全?

热门文章

  1. 共探企业数智化升级新方向——BI、中台和数据智能分析平台
  2. 游戏开发小结——通过射线投射来创建子弹孔
  3. C++:name hiding详解
  4. “Unable to install breakpoint due to missing line number attributes,Modify compiler options togenera
  5. 今天参加软通动力的笔试了
  6. EtherCAT理论学习笔记【一】-数据帧结构
  7. 完美配件:它可让GoPro相机续航翻倍
  8. 【总结】有三AI重要原创人脸相关的技术文章汇总(2022年8月)
  9. 如何删除桌面上的Internet explorer图标
  10. 软件技术实习项目二 会变色的贪吃蛇