“零基础-- 搭建一个属于自己的机器人

首先请想象一下,当你回到家,只有一个人在家,但却没有人聊天,然后你发出了一个命令,电脑便开始自动与你对话,而你不需要打字,不需要看屏幕,因为她会自己发出声音,回应你的问题,以及问候。

01—编程思路很重要

有一个好的想法,并把它用代码实现出来,怎么实现,这就比较重要了。

首先,想一下,假如没有看这篇文章,你们会怎么去实现自动回复的机器人,然后再来看我的解决方式,因为我这个也不是最优的解决方式。

思路:

1、首先想到的是宏观的,我想要说话,然后让机器立马做出响应,并通过喇叭回答我们,这是我们的需求。

2、我们把他拆分,变成一些小的需求。

(1)我要说话,会产生声音,系统不能翻译声音,那我们要记录下我们发出的声音。

(2)将声音转化为文字。

(3)将文字发送给自己训练的机器人,但自己训练机器人比较难,这时候使用第三方接口,自动回复,就像公众后台的小灵机器人一样。

3、那我们具体的流程就出来了。

声音---->音频文件----->调用第三方接口(语音识别)------->文字------->发送给图灵机器人------->机器人做出回复------->返回文字------->文字转语音---->输出并发出声音。

突然感觉一阵头晕

,怎么调来调去的。

02—语音生成音频文件

语音生成文件,我们需要录音,并保存到文件中,那python要怎么实现启动录音并保存文件呢?

好好想一想!

这里需要导入一个模块,正所谓,那里不会导哪里!嘿嘿,python就是这么强。

导入模块,这里需要安装一个pip install pyaudio

import wave
from pyaudio import PyAudio,paInt16

有兴趣的可以去了解一下,继续来看实现代码

def save_wave_file(filename,data):#保存音频文件wf=wave.open(filename,'wb')wf.setnchannels(1)wf.setsampwidth(2)wf.setframerate(8000)wf.writeframes(b"".join(data))wf.close()def my_record():#实现录音pa=PyAudio()stream=pa.open(format = paInt16,channels=1,rate=8000,input=True,frames_per_buffer=2000)my_buf=[]count=0print("正在录音")while count<2*15:#控制录音时间,15秒audio= stream.read(2000)my_buf.append(audio)count+=1# print('.')save_wave_file('01.wav',my_buf)#调用保存音频文件函数stream.close()print("录音完成!")

语音生成音频文件搞定

03—音频文件转文字

我们已经在上面获取到了音频文件,那要怎么把音频文件转化为文字呢?

我们继续:

这里可以使用第三方的语音识别接口,这里我使用的事百度的接口,因为比较简单,相关的api大家可以自己去研究一下。

导入模块:pip install baidu_aip

from aip import AipSpeech

导入我们需要的模块名,然后将音频文件发送给出去,返回文字。

这里的三个参数就交给大家去获取了。

def audio_word():APP_ID = ''API_KEY = ''SECRET_KEY = ''client = AipSpeech(APP_ID, API_KEY, SECRET_KEY)def get_file_content(filePath):with open(filePath, 'rb') as fp:return fp.read()ret = client.asr(get_file_content('01.wav'), 'wav', 16000, {'dev_pid': 1537, })print(ret)#获取识别到的文字

这里我没有做异常处理,来考验一下大家的能力,给大家链接让大家自己动手试一下,

这是百度的文档,和开放平台,需要使用的可以申请一个自己的应用试一下:

相关文档    http://ai.baidu.com/docs#/ASR-Online-Python-SDK/top

开放平台   https://console.bce.baidu.com/ai/#/ai/speech/app/detail~appId=608501

04—与机器人对话

好了,到这里了,我们的声音成功转化为文字,然后呢?

这次再调用第三方接口,做自动应答。

这里我调用的是图灵机器人,大家也可以去了解一下。

因为某些原因,这里我直接使用了平台对话框的聊天机器人,

如下(这里需要导入requests模块):

def tu_ling(text):url = "http://www.tuling123.com/robot-chat/robot/chat/227960/jwt7"data = {"perception": {"inputText": {"text": text}}, "userInfo": {"userId": "demo123"}}header = {"Referer": "http://www.tuling123.com/member/robot/1140264/center/frame.jhtml?page=0&child=0","User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 UBrowser/6.2.4094.1 Safari/537.36"}tuling = requests.post(url, json=data, headers=header)conent = tuling.json()

我是不会告诉你,这里我使用的是爬虫的方式的

05—文字转换为语音

好了,(敲黑板)重点,前年没有考,去年没有考,今年一定考

我们要把文字转换为语音,使用输出设备输出,怎么弄?

怎么办?再导入一个模块呀!

pip install Pywin32

导入成功之后,我安装的时候,pywin32好像是python2的代码,需要修改几个地方,让它支持python3

然后就是调用

import win32com.client
speaker = win32com.client.Dispatch("SAPI.SpVoice")
speaker.Speak("我是语音助手,小灵!")

好了我们的语音伙伴就这么搞定了。

分解开来看,感觉是不是非常简单呢!还等什么,自己也制造一个吧!

相关推荐:

​自动操作浏览器之--无界面selenium爬虫

自动打开浏览器,自动进行操作

python实现祝福弹框

微信自动添加好友

python爬虫教程

在公众号后台回复  :    “语音机器人”   获取完整代码,以及有关的插件。

欢迎关注我们哟!

搭建一个属于自己的语音对话机器人相关推荐

  1. 有没有python与机械结合的工作-Python3从零开始搭建一个语音对话机器人的实现...

    01-初心缘由 最近在研究语音识别方向,看了很多的语音识别的资料和文章,了解了一下语音识别的前世今生,其中包含了很多算法的演变,目前来说最流行的语音识别算法主要是依赖于深度学习的神经网络算法,其中RN ...

  2. python发音机器人_Python3从零开始搭建一个语音对话机器人

    目录 01-初心缘由 最近在研究语音识别方向,看了很多的语音识别的资料和文章,了解了一下语音识别的前世今生,其中包含了很多算法的演变,目前来说最流行的语音识别算法主要是依赖于深度学习的神经网络算法,其 ...

  3. 从零开始搭建一个语音对话机器人

    点击上方[全栈开发者社区]→右上角[...]→[设为星标⭐] ♪ 点击上方绿标 收听从零开始搭建一个语音对话机器人 从零开始搭建一个语音对话机器人 目录 01-初心缘由 01-准备工作 02-语音机器 ...

  4. espeak 中文语音包_从零开始搭建一个语音对话机器人

    点击上方[全栈开发者社区]→右上角[...]→[设为星标⭐] ♪ 点击上方绿标 收听从零开始搭建一个语音对话机器人 从零开始搭建一个语音对话机器人 目录 01-初心缘由 01-准备工作 02-语音机器 ...

  5. 开源项目叮当-中文语音对话机器人在ubuntu上的安装

    在叮当的官网(http://dingdang.hahack.com)上看到,它这是如下图这样介绍叮当的,它的安装流程也是基于树莓派来写的流程.而我对硬件不感兴趣,我不想去买树莓派的开发板,又没有SD卡 ...

  6. 中文语音对话 机器人 在 ubuntu 上的 安装

    开源项目叮当-中文语音对话机器人在ubuntu上的安装 在叮当的官网(http://dingdang.hahack.com)上看到,它这是如下图这样介绍叮当的,它的安装流程也是基于树莓派来写的流程.而 ...

  7. 语音对话机器人(语音客服实现探索)

    01-初心缘由: 从节目<财经半小时>战役之中的科技之光看到,医疗设备可以通过自动拨打电话采集信息语音识别后上传后台,经探索语音实现方面可以参考:Python3从零开始搭建一个语音对话机器 ...

  8. JLing中文语音对话机器人 -- 1、介绍

    JLing JLing是一个可以工作在Linux的自定义中文语音对话机器人 (csdn :https://blog.csdn.net/weixin_40490238) (github: https:/ ...

  9. JLing中文语音对话机器人 -- 2、离线唤醒引擎(Snowboy的编译与运行,编写Demo)

    JLing JLing是一个可以工作在Linux的自定义中文语音对话机器人 (csdn :https://blog.csdn.net/weixin_40490238) (github: https:/ ...

  10. python语音对话查询起始路和目的地_精选:语音对话机器人,百行Python代码就能轻松实现...

    原标题:精选:语音对话机器人,百行Python代码就能轻松实现 前言: Python现在非常火,语法简单而且功能强大,很多同学都想学Python! 所以小的给各位看官们准备了收藏已久的视频教程分享给大 ...

最新文章

  1. 贝塞尔结合CAShapeLayer绘制路线,CABasicAnimation实现的小动画
  2. zabbix3.0禁用guest用户
  3. C++0x FAQ中文版:什么时候C++0x会成为一部正式的标准呢?
  4. 用python编程、假设一年期定期利率_python,练习题网站.doc
  5. 几分钟了解阿里云云服务器ECS
  6. google四件套之Dagger2
  7. 那些读博的女生,怎样通过“九九八十一关”?
  8. 电脑安装python后开不了机_Python学习第145课——关于无法正常启动centOS问题的解决方案...
  9. 讨论一个比较有意思的业务需求
  10. Image Processing --- Gaussian Pyramid Laplacian Pyramid
  11. Bootstrap CSS 编码规范之简写形式的属性声明
  12. 深度解密 Go 语言之基于信号的抢占式调度
  13. 我,23 岁 深漂女 Python自动化测试的心路历程|2021 总结
  14. Segment Routing MPLS介绍
  15. windows7 内部版本7601 此windows副本不是正版 ---解决方案
  16. Bzoj1208 宠物收养所
  17. copy ctor、copy assignment(拷贝构造函数和拷贝赋值函数)
  18. STM32使用外设热敏打印机进行打印
  19. 解决Ubuntu 20.04 播放视频,因缺少编解码器无法处理音频/视频流,以及解决‘因没有公钥,无法验证下列签名’问题
  20. 01. Web漏洞靶场的搭建

热门文章

  1. rgb转nv12 nv12转rgb
  2. linux系统的手机刷机包,ubuntu系统修复工具-ubuntu手机操作系统刷机包v20.04 官方版 - 极光下载站...
  3. 基于单片机智能自动浇花控制系统设计(毕业设计)
  4. PreferenceScreen
  5. multisim10中设置变压器匝数比的两种方法
  6. 获取硬盘序列号(VC)
  7. 人工智能数学基础--概率与统计8:一个很有意思的下棋输赢概率问题
  8. 基于SSH的电子政务系统(附论文)
  9. 使用汉化版srvinstw.exe安装/卸载Windows系统服务
  10. VMware 15.6版本下载安装