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. 不插电的计算机科学读心术,科学“读心术”,当脑电波扫描图遇到人工智能
  2. Qt中定时器使用的两种方法
  3. 直播预告丨6 大趋势,5 种核心能力,证券业数字新基建趋势全面解读
  4. RecyclerView局部刷新机制——payload
  5. 自旋锁和互斥锁实例_自旋锁和互斥锁的实现以及使用区别
  6. python3 object_detection_demo_yolov3_async.py出现ImportError: numpy.core.multiarray failed to import
  7. java 子进程id,Java程序如何获得自己的进程ID?
  8. AttributeError: module 'tensorflow' has no attribute 'FIFOQueue'
  9. Qt实践| HTTP知识点-接入某图片验证码系统查询余额
  10. 《用户故事与敏捷方法》阅读笔记三
  11. 这位BAT大佬写的Leetcode刷题笔记,让我offer拿到手软
  12. DIV布局美丽家乡网站设计——美丽家乡-含论文(4页) HTML+CSS+JavaScript web前端设计与开发期末作品_期末大作业
  13. c++学习————VC报错解决方案(vc2013)
  14. CCPC-wannafly Camp Day2 讲课内容总结(杜瑜皓-数据结构)
  15. MT7621AT,MT7620A,WIFI6,MT7975D+MT7915DAN
  16. Git廖雪峰 常用命令总结
  17. 聊一聊为什么JAVA只允许单继承
  18. 符号常量和常变量的区别
  19. 陈平,温铁军视频思想笔记
  20. python画三角形并涂色_如何用python画叠加三角形?

热门文章

  1. Go语言编写设计模式
  2. DirectPlay分组功能
  3. UnicodeDecodeError: ‘utf-8‘ codec can‘t decode byte 0xc8 in position 0: invalid continuation byte
  4. 头条号自媒体运营技巧,百万爆文运营经验分享
  5. 基于 python的猫、狗、鼠、兔宠物识别系统
  6. 如何使用WinDBG跟踪调试ASL/ACPI?
  7. RxSwift的第一印象
  8. MD5工具类(java实现版)
  9. 请问一下这个j1是什么啊,是排阻吗?
  10. MPU9250的Motion Driver