1.语音识别
这里用到了百度api的语音识别,目前开源的语音识别成文字的效果都很差,百度api的语音识别效果还可以。

2.机器人对话,这里用到了青云客机器人对话,通过爬虫获取对话的内容,机器人对话效果一般,没有图灵机器人灵活,但是目前免费,这个是很好的优点。

3.文字播报
文字转成mp3格式的音频保存,然后使用pygame播放出保存的mp3格式的语音

4.完整代码呈现

from aip import AipSpeech
import pyaudio
import pygame
import ffmpy
import time
import wave
import os
import requests
import json
import pyttsx3# BaiduAPI
APP_ID = '你的id'
API_KEY = '你的key'
SECRET_KEY = '你的SECRET_KEY'
client = AipSpeech(APP_ID, API_KEY, SECRET_KEY)e = pyttsx3.init()
e.runAndWait()while True:# 语音识别CHUNK = 1024FORMAT = pyaudio.paInt16CHANNELS = 2RATE = 16000RECORD_SECONDS = 2WAVE_OUTPUT_FILENAME = "input.wav"try:p = pyaudio.PyAudio()stream = p.open(format=FORMAT,channels=CHANNELS,rate=RATE,input=True,frames_per_buffer=CHUNK)except:print("请插上录音设备!!!")exit()print("开始录音,请说话......")time.sleep(1)frames = []for i in range(0, int(RATE / CHUNK * RECORD_SECONDS)):data = stream.read(CHUNK)frames.append(data)print("AI:让我听听你在说什么.....")stream.stop_stream()stream.close()p.terminate()wf = wave.open(WAVE_OUTPUT_FILENAME, 'wb')wf.setnchannels(CHANNELS)wf.setsampwidth(p.get_sample_size(FORMAT))wf.setframerate(RATE)wf.writeframes(b''.join(frames))wf.close()# FFmpeg调用ff = ffmpy.FFmpeg(executable='F:\\ffmpeg\\bin\\ffmpeg.exe',  # 不同电脑路径需要修改inputs={'input.wav': None},outputs={'output.pcm': '-f s16le -ar 16000 -ac 1 -acodec pcm_s16le -y'})ff.run()# 创建函数 读取文件def get_file_content(filePath):with open(filePath, 'rb') as fp:return fp.read()# 删除.wav文件path = 'input.wav'if os.path.exists(path):os.remove(path)# 识别本地文件 语音转文字result_dict = client.asr(get_file_content('output.pcm'), 'pcm', 16000, {'dev_pid': 1537,})result_list = result_dict['result']user_PO = result_list[0]  # 转换后的字符串存入POprint("你说: %s" % user_PO)a = user_POif "再见。" in a:e.say("再见")e.runAndWait()print("再见")exit()else:r = requests.get('http://api.qingyunke.com/api.php?key=free&appid=0&msg=' + a)v = json.loads(r.content)user_P1 = v['content']print("菲菲:" + v['content'])# AI回答转语音# e.say(user_P1)result = client.synthesis(user_P1, 'zh', 1, {'vol': 5, 'per': 4})if not isinstance(result, dict):with open('audio.mp3', 'wb') as f:f.write(result)# 自定义函数,用于播放mp3音频def play_mp3(file):pygame.mixer.init()pygame.mixer.music.load(file)pygame.mixer.music.play()while pygame.mixer.music.get_busy():time.sleep(1)pygame.mixer.music.stop()pygame.mixer.quit()play_mp3('audio.mp3')e.runAndWait()

python编写的语音识别+机器人对话+文字播报一体相关推荐

  1. python编写游戏测试机器人客户端(一)

    系列文章目录 python编写游戏测试机器人客户端(一) python编写游戏测试机器人客户端(二) python编写游戏测试机器人客户端(三) python编写游戏测试机器人客户端(四) pytho ...

  2. python编写游戏测试机器人客户端(四)

    游戏测试机器人搭建 - 玩家登录 运行机器人 需要导入的模块 定义Main,检测账号参数 开始登录 登录成功 机器人下线 运行机器人 需要导入的模块 @File : main.py @Contact ...

  3. 利用python编写钉钉机器人工作日提醒

    1.需求说明 需要在工作日向部门钉钉群发送特定信息,本次是每日待办任务更新,同时有明天地区的天气预报以及打工寄语 2.获取钉钉机器人 在项目群中获取钉钉机器人, 主要是获取Webhook值,通过Web ...

  4. python对话机器人框架_长篇文讲解:使用Python AIML搭建聊天机器人的方法示例(收藏)...

    本文内容主要介绍了使用Python AIML搭建聊天机器人的方法示例,我觉得挺不错的,现在分享给大家,也给大家做个参考.一起跟随我过来看看吧 AIML全名为Artificial Intelligenc ...

  5. 树莓派百度语音识别+图灵机器人对话聊天机器人

    硬件 树莓派3B.USB声卡.麦克.USB音响 软件 python.百度语音识别API.图灵机器人.espeak 树莓派官方系统自带python环境.注册百度语音识别开发者账号,获取api key. ...

  6. 用WeRoBot和Python编写一个不使用网页版微信且能够回复消息微信群聊机器人

    要用 WeRoBot 和 Python 编写一个不使用网页版微信且能够回复消息的微信群聊机器人,您需要以下步骤: 安装 WeRoBot 和相关依赖: pipinstall werobot 创建一个 P ...

  7. 用WeRoBot和Python编写一个不使用网页版微信的微信群聊机器人

    要使用 WeRoBot 和 Python 编写一个不使用网页版微信的微信群聊机器人,您需要执行以下步骤: 安装 WeRoBot 库: pipinstall WeRoBot 创建一个 Python 脚本 ...

  8. python 视频语音转文字_使用Python和百度语音识别生成视频字幕的实现

    从视频中提取音频 安装 moviepy pip install moviepy 相关代码: audio_file = work_path + '\\out.wav' video = VideoFile ...

  9. python 语音识别机器人控制系统_python实现百度语音识别api

    本文实例为大家分享了python实现百度语音识别的具体代码,供大家参考,具体内容如下 详细百度语音识别api文档 先下载python用SDK,可以用python setup.py install安装 ...

最新文章

  1. FPGA多功能应用处理器
  2. as 不显示gradle视图_Python构建RESTful网络服务[Django篇:基于类视图的API]
  3. 超详细的Guava RateLimiter限流原理解析
  4. C++ | C++实现高精度加法——数组加法(附源代码)
  5. 栏目图片 栏目描述_昕街拍|长期福利栏目来啦,秀街拍赢礼品!
  6. Caffe cuDNN
  7. 10. HTML基本标签
  8. python批量读取文件赋值给一个参数_求助一个Python 循环读取文件,并对读到的字符串进行赋值,然后进一步生成json file 的方法。...
  9. 我的Android进阶之旅------解决:debug-stripped.ap_' specified for property 'resourceFile' does not exist....
  10. 【工具使用系列】关于 MATLAB 神经网络故障诊断,你需要知道的事
  11. shell习题第8题:监控nginx的502状态
  12. (美)梅耶(Myers, G. J.) 等《软件测试的艺术(原书第3版)》书籍(第3版)
  13. 基于React实现的【绿色版电子书阅读器】,支持离线下载
  14. 人全外显子组测序WES学习笔记 第一天
  15. 手把手教你开发App(HelloWorld)
  16. CISCO ISIS
  17. 淘宝触屏版宝贝详情改造(一)
  18. Web与排版学上的字体问题
  19. 快捷方式 ABP——切换MySQL数据库
  20. 浏览器沙盒--它是什么,我们为什么需要它?

热门文章

  1. 做一个电影院选座功能-前端
  2. 摔跤吧爸爸-影评感悟(匍匐泥泞,不忘星空-目标)
  3. 2020.2.28基础
  4. office2003-2007 绿色版 出错 文件丢失(未解决)
  5. 病毒防火墙推荐 - Comodo AntiVirus
  6. Python绘制各大城市职工工资分布地图
  7. Docker: docker network 容器网络
  8. 谈谈Xilinx UltraScale的6输入LUTS(查找表)和SLICE(二)
  9. VisMoment摄像机使用指南
  10. 如何计算图像采集应用所需要的带宽?