# -*- coding: utf-8 -*-#

# -------------------------------

# Name:SpeechRobot

# Date:2019年10月21日 09:43:46

# 用python3实现自己的语音对话机器人

# -------------------------------

from aip import AipSpeech

import requests

import json

import speech_recognition as sr

import win32com.client

# 初始化语音

speaker = win32com.client.Dispatch("SAPI.SpVoice")

# 1、语音生成音频文件,录音并以当前时间戳保存到voices文件中

# Use SpeechRecognition to record 使用语音识别录制

def my_record(rate=16000):

r = sr.Recognizer()

with sr.Microphone(sample_rate=rate) as source:

print("你好,我是机器人,有什么想问的吗?")

speaker.Speak("你好,我是机器人,有什么想问的吗?")

audio = r.listen(source)

with open("voices/myvoices.wav", "wb") as f:

f.write(audio.get_wav_data())

# 2、音频文件转文字:采用百度的语音识别python-SDK

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

# 百度语音识别API配置参数

APP_ID = '17527531'

API_KEY = 'sGeHlRhneatUOLZAGpu0G3ef'

SECRET_KEY = 'jM4iRjwpKkgVqclQlTxnc26daZTdXist'

client = AipSpeech(APP_ID, API_KEY, SECRET_KEY)

path = 'voices/myvoices.wav'

# 将语音转文本STT

def listen():

# 读取录音文件

with open(path, 'rb') as fp:

voices = fp.read()

try:

# 参数dev_pid:1536普通话(支持简单的英文识别)、1537普通话(纯中文识别)、1737英语、1637粤语、1837四川话、1936普通话远场

result = client.asr(voices, 'wav', 16000, {'dev_pid': 1537, })

# result = CLIENT.asr(get_file_content(path), 'wav', 16000, {'lan': 'zh', })

# print(result)

# print(result['result'][0])

# print(result)

result_text = result["result"][0]

print("you said: " + result_text)

speaker.Speak(result_text)

return result_text

except KeyError:

print("KeyError")

speaker.Speak("我没有听清楚,请再说一遍...")

# 3、与机器人对话:调用的是图灵机器人

# 图灵机器人的API_KEY、API_URL

turing_api_key = "8b559122eba24ee39a20ebb9acb875dc"

api_url = "http://openapi.tuling123.com/openapi/api/v2"  # 图灵机器人api网址

headers = {'Content-Type': 'application/json;charset=UTF-8'}

# 图灵机器人回复

def Turing(text_words=""):

req = {

"reqType": 0,

"perception": {

"inputText": {

"text": text_words

},

"selfInfo": {

"location": {

"city": "北京",

"province": "北京",

"street": "北太平庄"

}

}

},

"userInfo": {

"apiKey": turing_api_key,  # 你的图灵机器人apiKey

"userId": "test"  # 用户唯一标识(随便填, 非密钥)

}

}

req["perception"]["inputText"]["text"] = text_words

response = requests.request("post", api_url, json=req, headers=headers)

response_dict = json.loads(response.text)

result = response_dict["results"][0]["values"]["text"]

print("AI Robot said: " + result)

return result

# 语音合成,输出机器人的回答

while True:

my_record()

request = listen()

response = Turing(request)

speaker.Speak(response)

python机器人语音_python语音机器人相关推荐

  1. python 微信自动回复_python微信机器人自动回复

    python3环境 一.需要的包 import itchat import requests import re 图灵机器人api 所需的包安装都比较简单,re是python自带的模块,itchat是 ...

  2. python中文朗读_python语音朗读

    1.安装python2.7 2.安装pyttsx: pip install pyttsx (需安装pip) 3.安装pywin32(对应python版本) 代码1只需pywin32#-*-coding ...

  3. python微信机器人库_Python微信机器人

    1.需要用到的模块: requests:Requests 是用 Itchat:itchat是一个开源的微信个人号接口,使用python调用微信从未如此简单. 使用不到三十行的代码,你就可以完成一个能够 ...

  4. python土味情话_Python微信机器人,聊天、撩妹、提醒,垃圾分类,它样样精通

    看过 pk 哥之前的文章的小伙伴知道,pk 哥写过关于微信机器人的文章(用 Python 玩微信,机器人陪你唠嗑)和定时给心仪的伙伴发送早安或者祝福语录(Python 教你脱单),最近在 GitHub ...

  5. 基于python的微信机器人开发_python 微信机器人

    [实例简介] [实例截图] [核心代码] from config import TOKEN,XML_STR from flask import Flask, request, make_respons ...

  6. python机器人助手--丫丫1.0版本(基于百度语音和图灵机器人)

    语音实时对话机器人(基于百度语音和图灵机器人) 注:本版软件是树莓派语音聊天机器人(基于讯飞语音和图灵机器人)的重构版本.本版全部使用python编程,不涉及bash等的操作与编程:本版使用百度语音代 ...

  7. 基于Python+百度语音的智能语音ChatGPT聊天机器人(机器学习+深度学习+语义识别)含全部工程源码 适合个人二次开发

    目录 前言 总体设计 系统整体结构图 系统流程图 运行环境 Python 环境 Pycharm 环境 ChatterBot 环境 模块实现 1. 模型构建 2. 服务器端 3. 客户端 4. 语音录入 ...

  8. python语音属于什么语音_python语音识别

    python语音识别 发布时间:2018-05-27 20:57:23编辑:admin阅读(5589) 语音识别技术,也被称为自动语音识别,目标是以电脑自动将人类的语音内容转换为相应的文字.应用包括语 ...

  9. 智能电话机器人(AI语音机器人)时什么?

    什么是电话机器人 通过ASR(语音识别)和TTS(文本转语音)模拟真人和用户通话,可用于问卷调查,自动催缴等业务,电话咨询服务,支持百度,科大,阿里云,腾讯等ASR系统,可以真人预先录音,用户完全察觉 ...

最新文章

  1. 遇到大容量磁盘你该怎么办?
  2. sudo: unable to resolve host ubuntu提示的解决
  3. 程序员成长的三个方法
  4. Delphi XE2 之 FireMonkey 入门(10) - 常用结构 TPoint、TPointF、TSmallPoint、TSize、TRect、TRectF 及相关方法...
  5. 【Intellij Idea】设置JDK
  6. 好用的pdf预览插件
  7. linux下tmux
  8. spark 运行自带python示例的方式
  9. swoole实现Timer定时器、心跳检测及Task进阶实例:mysql连接池
  10. CSDN有奖任务答案
  11. MSTAR数据集的SAR图像识别 准确率99.17%
  12. 信息收集-CDN绕过
  13. CT前瞻(三):Adobe系列XD软件绘制简单的原型图与交互设计
  14. 第一篇 香橙派刷机和开发环境准备(Armbian版)
  15. Internal Error (Network has dynamic or shape inputs, but no optimization profile has been defined.)
  16. 任务分配到每个工作日
  17. VIM复制到系统剪切板
  18. 37_Crop 选择相册图片并手动裁切
  19. 3D角色模型欣赏:战斗类CG模型武士和风设计欣赏
  20. mysql根据出生日期,查询年月日,并且拼接

热门文章

  1. 做人要有一颗感恩的心
  2. socket编程之sockaddr和sockaddr_in的区别
  3. Gitflow分支管理策略
  4. 魔兽世界怀旧服服务器最新阵营比例,《魔兽世界怀旧服》人口普查2019 阵营及服务器人口比例...
  5. 不卷不成魔,新时代的IT人员更需要卷,不卷不成活
  6. linux NTP时间服务器Chrony配置
  7. Blender - 渲染动画:体积云、动画、运动模糊、Compositor数据输出
  8. 东炜庭电机:数字化管理赋能,全面夯实行业竞争优势
  9. 社会心理学的未来课题
  10. Win11如何进行系统还原?Win11系统还原的方法