ros实例_百度语音+图灵
1 百度语音模块
参考http://blog.csdn.net/u011118482/article/details/55001444
1.1 百度语音识别包
git clonehttps://github.com/DinnerHowe/simple_voice.git
在catkin下编译
1.2 安装pyaudio播放器
sudo apt-get install python-pyaudio
1.3 安装python所需环境
sudo apt-get install vlc
1.4 测试安装
roslaunch simple_voicesimple_voice.launch
测试语音合成
rostopic pub /speak_string std_msgs/String-- '请让一下'
会在home中生成Xbot文件,里面按合成的语句的固定字节截断作为名字存放下载的合成语音。如果两段话前几句相同,会相互覆盖。
roslaunch simple_voice simple_voice.launch
1.5 建议
可以改写成服务比节点好。
2 图灵聊天机器人模块
图灵机器人只支持一轮对话,而且不提供sdk,如果有条件可以自己开发聊天机器人。
目前聊天机器人基本还是模板匹配,依靠检索问答,使用通配符或者文本相似度。
目前免费,收费版也很便宜,免费版有次数限制。
1.1 注册

1.2 机器人个性

设置一些属性,以及在线训练。
1.3 私有语料库
语料库基于相似度匹配,但有时智障,一摸一样的句子,它会回答自己的语料库,而不是你的私有语料库
1.4 机器人技能

机器人的一些技能拓展。
1.5 后台分析

1.6 图灵聊天机器人原理
问句输入后,进入筛选器,筛出机器人技能,就是计算和天气之类的,匹配使用文本相似度。中间可以使用一些特定命令进入一些成语接龙游戏。
以检索式结构为主,应用一些机器学习处理。
数据来源是爬取的百度知道,百科,可能有各大论坛,和以前人人网小黄鸡的语料。
3 聊天机器人搭建
在百度语音包中新建start.py。之后运行
rosrun baidu_speech start.py
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import rospy
from std_msgs.msg import String
from simple_voice.srv import *
import urllib
import json
state = 0
LAN = 0
file_strs =[]
def getHtml(url):
page = urllib.urlopen(url)
html = page.read()
return html
def listener():
rospy.Subscriber("Rog_result", String, callback)
rospy.spin()
def str_fix(str):
global file_strs
result = ""
for file_str in file_strs:
file_strs_left= file_str.split('|')[0]
strs = file_strs_left.split(',')
b = True
for ele in strs:
if ele not in str:
b=False
break
if b:
pub_msg(file_str.split('|')[2])
return file_str.split('|')[1]
return str
def callback(data):
words=data.data
if words !='识别错误':
s=get_ans(words)
pub.publish(s)
rospy.loginfo(s)
def get_ans(info):
key = '###############此处为密钥###################'
api = 'http://www.tuling123.com/openapi/api?key=' + key + '&info='
request = api + info
response = getHtml(request)
dic_json = json.loads(response)
result = dic_json['text']
return result
if __name__ == '__main__':
rospy.init_node("Main")
rospy.loginfo('开始')
pub = rospy.Publisher('speak_string', String, queue_size=10)
# str=raw_input("press to publish")
listener()
4 案例源码
https://github.com/fengmao31/ros-demo
ros实例_百度语音+图灵的更多相关文章
- ros下基于百度语音的,语音识别和语音合成
代码地址如下:http://www.demodashi.com/demo/13153.html 概述: 本demo是ros下基于百度语音的,语音识别和语音合成,能够实现文字转语音,语音转文字的功能. ...
- unity3d百度语音+图灵机器人
using NAudio.Wave; using System; using System.Collections; using System.Collections.Generic; using S ...
- Android 通过调用系统,如接口 谷歌语音、百度语音、科大讯飞语音等语音识别方法对话框
现在app在发展过程中会集成一些语音识别功能,不具有其自己的显影剂一般正在开发的语音识别引擎,所以在大多数情况下,它是选择一个成熟的语音识别引擎SDK集成到他们的app在. 平时,这种整合被分成两个, ...
- BaiduSpeechDemo【百度语音SDK集成】(基于v3.0.7.3)
版权声明:本文为HaiyuKing原创文章,转载请注明出处! 前言 本Demo将百度语音SDK(其中一部分功能)和自定义的UI对话框封装到一个module中,便于后续的SDK版本更新以及调用. 本De ...
- 利用百度语音API进行语音识别。
由于项目需要,这几天都在试图利用百度语音API进行语音识别.但是识别到的都是“啊,哦”什么的,我就哭了. 这里我只是分享一下这个过程,错误感觉出现在Post语音数据那一块,可能是转换问题吧. API请 ...
- Docker入门实战_正版电子书在线阅读_百度阅读
Docker入门实战_正版电子书在线阅读_百度阅读 Docker入门实战
- RCMTM _百度百科
RCMTM _百度百科 RCMTM
- 火狐解决 OCSP 回应包含过期信息的问题_firefox吧_百度贴吧
火狐解决 OCSP 回应包含过期信息的问题_firefox吧_百度贴吧 火狐解决 OCSP 回应包含过期信息的问题
- 您好,想问一下目前哪些营业厅可以办理NFC-SIM卡的更换业务?_百度知道
您好,想问一下目前哪些营业厅可以办理NFC-SIM卡的更换业务?_百度知道 您好,想问一下目前哪些营业厅可以办理NFC-SIM卡的更换业务? 2013-06-14 10:39 maxre ...
随机推荐
- Spring学习(一)idea中创建第一个Spring项目
1.前言 Spring框架是一个开放源代码的J2EE应用程序框架,由Rod Johnson发起,是针对bean的生命周期进行管理的轻量级容器(lightweight container). Sprin ...
- JAVA获取html中的所有img链接
public static List<String> getImageSrc(String htmlCode) { List<String> imageSrcList = ne ...
- 【LeetCode】461. Hamming Distance 解题报告(java & python)
作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 Java解法 方法一:异或 + 字符串分割 方法二: ...
- 1632 B君的连通
B国拥有n个城市,其交通系统呈树状结构,即任意两个城市存在且仅存在一条交通线将其连接.A国是B国的敌国企图秘密发射导弹打击B国的交通线,现假设每条交通线都有50%的概率被炸毁,B国希望知道在被炸毁之后 ...
- Linux中架构中的备份服务器搭建(rsync)
本期内容概要 Linux中的备份方式 架构中备份服务器搭建(rsync) 内容详细 1.备份方式 1. cp : 本机复制(只能作用在本机) 2. scp : 远程复制 两种模式: 推 : 本地上传到 ...
- HITCON 2019 Lost Modular again writeup
HITCON 2019 Lost Modular again writeup 算是基础题,有很多之前题的影子,做不出来纯属菜. 题目 加密脚本 from Crypto.Util.number impo ...
- [opencv]使用g++编译opencv程序演示
gcc/g++ 编译命令 1. gcc -E source_file.c -E,只执行到预编译.直接输出预编译结果. 2. gcc -S source_file.c -S,只执行到源代码到汇编代码的 ...
- 新来的实习生测post接口老漏测,搞清楚原理再执行真的很重要
一.GET方法和POST方法传递数据的异同 一.GET方法和POST方法传递数据的异同 http请求方法get和post是最常被用到的两个方法,get常用于向服务器请求数据,post常用于提交数据 ...
- .NET 微服务——CI/CD(3):镜像自动分发
如何通过Jenkins完成镜像分发?基本做法是:打包镜像→上传镜像到仓库→脚本分发.镜像仓库也有很多,比如docker hub.Harbor等,今天这一篇讲一下基于阿里云镜像仓库的操作. 首先,准备一 ...
- python使用String的Template进行参数动态替换
1.前言: 之前使用string的find(),从指定的param里面查找,是否包含了某个字符,有的话,使用replace进行替换,一个接口的param要替换的参数少的话,使用这种方式,的确可行,如果 ...