[初识]使用百度AI接口,图灵机器人实现简单语音对话
一.准备
1.百度ai开放平台提供了优质的接口资源https://ai.baidu.com/ (基本免费)
2.在语音识别的接口中, 对中文来说, 讯飞的接口是很好的选择https://www.xfyun.cn/ (收费)
3.图灵机器人提供了可以用http访问的接口, http://www.turingapi.com/
二.创建
1.百度: 在具体功能中创建应用, 点击技术文档-> python sdk 按照文档使用
2.图灵机器人, 如果所示,创建机器人
在设置中可以对机器人的属性设置,包括年龄星座等, 之后可以点击查看api使用文档进行使用
三.使用
由于百度的语音识别需要的格式为.pcm, 而示例中主要用win系统自带的录音机文件进行声音采集,需要对文件转码.所以需要安装ffmpeg, 安装后将目录/bin配置进系统环境变量
配置完环境变量之后,编译器(pycharm)要重启一下,重新加载一下环境变量,否则会报错
如图,环境变量配置成功, cd命令切换到音频文件目录下, 使用下面的命令将文件转换为pcm格式
ffmpeg -y -i audio.wav -acodec pcm_s16le -f s16le -ac 1 -ar 16000 audio.pcm
# 1.你说一句话 # 2.根据语音转化为文字 # 3.机器人通过对文字的处理返回应答 # 4.将应答文字转化为语音,实现对话 import os import requestsfrom aip import AipNlp, AipSpeech""" 你的 APPID AK SK """ APP_ID = '输入 app_id' API_KEY = '输入api_key' SECRET_KEY = '输入secret_key'client = AipNlp(APP_ID, API_KEY, SECRET_KEY) client2 = AipSpeech(APP_ID, API_KEY, SECRET_KEY) client3 = AipSpeech(APP_ID, API_KEY, SECRET_KEY)# 1. 说-> 转换为文字 # 读取文件 def get_file_content(filePath):os.system(f'ffmpeg -y -i {filePath} -acodec pcm_s16le -f s16le -ac 1 -ar 16000 {filePath}.pcm')with open(f'{filePath}.pcm', 'rb') as fp:return fp.read()# 调用图灵机器人交互 def to_url(text, uid):url = 'http://openapi.tuling123.com/openapi/api/v2'data = {"reqType": 0,"perception": {"inputText": {"text": ""},},"userInfo": {"apiKey": "图灵机器人的apikey","userId": "1"}}data['userInfo']['userId'] = uiddata['perception']['inputText']['text'] = text # 使用requests模块模拟http请求res = requests.post(url, json=data).json()return res.get('results')[-1].get('values').get('text')# 将语音转化为文字 def text(file):# 识别本地文件ret = client2.asr(get_file_content(file), 'pcm', 16000, {'dev_pid': 1536,})text = ret.get('result')[-1]return text# 将交互结果转化为语音 def to_audio(text):result = client3.synthesis(text, 'zh', 1, {'vol': 5, # 音量'spd': 5, # 语速'pit': 8, # 音调'per': 4, # 发声人选择 })# 识别正确返回语音二进制 错误则返回dict 参照下面错误码if not isinstance(result, dict):with open('auido.mp3', 'wb') as f:f.write(result)# 在win系统下 os.system可以直接打开这个文件os.system('auido.mp3') # ####入口#### t = text('录音.m4a') # 录音文件 放在这里 # NLP自然语言处理 ret = client.simnet('你爸爸是谁', t) print(ret) # {'log_id': 7122976772040456976, 'texts': {'text_2': '你把我是谁', 'text_1': '你爸爸是谁'}, 'score': 0.656308} # 0.656308 score = ret.get('score') print(score) # 0.656308if score >= 0.58: # score在0.58以上证明两个文本表达的意思基本一致to_audio('当然是罗伯特X了') else:to_audio(t)
import osfrom aip import AipSpeech,AipNlp""" 你的 APPID AK SK """ APP_ID = '16027154' API_KEY = '5a8u0aLf2SxRGRMX3jbZ2VH0adfa' SECRET_KEY = 'UAaqS13z6DjD9Qbjd065dAh0HjbqPrzVadfad'client = AipSpeech(APP_ID, API_KEY, SECRET_KEY) client_nlp = AipNlp(APP_ID, API_KEY, SECRET_KEY)# res = client_nlp.simnet("你叫什么名字","你的名字是什么") # print(res)def text2audio(text):result = client.synthesis(text, 'zh', 1, {"spd": 4,'vol': 5,"pit": 8,"per": 4})# 识别正确返回语音二进制 错误则返回dict 参照下面错误码if not isinstance(result, dict):with open('audio.mp3', 'wb') as f:f.write(result)return 'audio.mp3'def audio2text(filepath):res = client.asr(get_file_content(filepath), 'pcm', 16000, {'dev_pid': 1536,})print(res.get("result")[0])return res.get("result")[0]def get_file_content(filePath):os.system(f"ffmpeg -y -i {filePath} -acodec pcm_s16le -f s16le -ac 1 -ar 16000 {filePath}.pcm")with open(f"{filePath}.pcm", 'rb') as fp:return fp.read()def goto_tl(text,uid):URL = "http://openapi.tuling123.com/openapi/api/v2"import requestsdata = {"perception": {"inputText": {"text": "你叫什么名字"}},"userInfo": {"apiKey": "be41cf8596a24aec95b0e86be895cfa9asd","userId": "123"}}data["perception"]["inputText"]["text"] = textdata["userInfo"]["userId"] = uidres = requests.post(URL, json=data)# print(res.content)# print(res.text)print(res.json())return res.json().get("results")[0].get("values").get("text")text = audio2text("jttqhbc.m4a") # 自然语言处理 简单实现 score = client_nlp.simnet("你叫什么名字",text).get("score") print(score) if score >= 0.58:filename = text2audio("需要回复的音频文件名")# os.system(f"ffplay {filename}") os.system(filename)answer = goto_tl(text,"qiaoxiaoqiang") filename = text2audio(answer) os.system(filename)
库版
转载于:https://www.cnblogs.com/robertx/p/10719302.html
[初识]使用百度AI接口,图灵机器人实现简单语音对话相关推荐
- 用Python3调用百度AI和图灵机器人实现一个智能(bushi)AI聊天机器人
题目看起来高大上,但其实这只是假象.关键是要理清思路和流程,掌握了这个之后,整个项目基本就简化成了"傻瓜"项目,对编程能力的要求较低. 思路及流程 一定要搞清这个流程,不要被绕晕. ...
- python调用百度AI接口识别营业执照
上一篇文章介绍了应用python中的pytesseract库和OCR识别软件进行文字识别.本文介绍应用百度AI的文字识别功能对营业执照进行识别,感兴趣的朋友一起来看看效果吧. 一.安装baidu ...
- 调用百度AI接口实现图片文字识别
一.准备阶段 进入百度AI网址点击这里跳转 ,点击导航栏的开放能力 ---- 文字识别 ---- 通用文字识别,进入文字识别OCR界面. 在文字识别ORC界面点击 技术文档 进入帮助文档. 在左侧可以 ...
- 调用百度ai接口实现图片文字识别详解
调用百度ai接口实现图片文字识别详解 首先先介绍一下这篇博文是干嘛的,为了不浪费大家时间.公司最近和短视频公司合作,需要监控app的截图上的文字是否符合规范,也就是确保其没有违规的文字.到网上找了一些 ...
- Python调用百度AI接口用以实现在线语音合成 并创建简单的GUI界面 生成可执行应用程序
调用百度AI接口用以实现在线语音合成 并创建简单的GUI界面 生成可执行应用程序 1. 实验环境 Python3.8.Pycharm.window10 2.实验过程 1.首先登陆百度智能云:https ...
- Linux下QT软件使用C++语言调用百度AI接口实现人脸库人脸搜索
参考文档Qt+百度AI实现人脸识别之人脸检测_画茧自缚-CSDN博客 本文档对于以上文档进行精简,参考以上文档实现百度AI人脸库管理-人脸搜索:百度AI接口一通具通,可以以此方法扩展. .h部分 #i ...
- 通过QT_TCP和百度AI接口实现的支持语音输入的多人聊天室
本项目主要通过tcp实现的并发聊天室再加上百度ai的语音识别接口,实现的支持语音识别输入的并发聊天室. 1.服务器 服务器设置的一个没有ui的界面的软件,实现聊天数据的中介 2.客户端 客户端通过qt ...
- python 人脸比对,python 使用百度AI接口进行人脸对比的步骤
1. 注册百度云账号 注册百度智能云,提交申请. 创建应用获取AppID,API Key,Secret Key. 2. 安装baidu python api 人脸对比 API 文档 pip insta ...
- php百度大脑,百度大脑和图灵机器人制作一个简单的自动聊天机器人【PHP代码】...
可以和机器人聊天 文字发送消息 网页进行语音回复 这里主要用到了两个接口 一个是百度大脑 用来实现语音合成 一个是图灵机器人用来实现自动聊天 以下是代码分两个版本 版本一是没有语音合成 版本二是加上 ...
最新文章
- android显示温湿度设计与实现,基于Android平台蝴蝶兰大棚温湿度测控系统的设计与实现...
- asp.net中的<%%>形式的详细用法总结
- 计算机网络向用户提供的最重要的功能
- Java IO流之缓冲流
- 你写的前端到底用没用到这些
- SQL Server 数据库部分常用语句小结
- C++面试常见问题整理汇总(面试者必看哦!)
- DTLS协议中的509证书和密钥如何传输
- ImportError: DLL load failed: 找不到指定的模块。
- Sampling-Argmax:用重参数技巧优化Soft-Argmax
- 建模实训报告总结_模型实训心得体会
- 微信视频文件保存在服务器吗,如何发送大的视频文件给朋友和家人
- 门户通专访蓝色理想曾沐阳:用户需慢慢沉淀
- Linux内存占用过高排查过程
- 怎么把ppt转化成图片
- 树莓派编译ffmpeg支持x264硬解码播放视频
- JFrog Artifactory的数据备份与恢复教程
- 弹出窗口全攻略,代码,方法
- Vite 4.0 正式发布!
- 用友Java面试汇总