使用baidu_speech让你的机器人开口说话 语音交互

2024-02-20 18:10

本文主要是介绍使用baidu_speech让你的机器人开口说话 语音交互,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!


参考张瑞雷老师的博文
在ROS中使用中文语音交互(百度语音baidu_speech)
http://blog.csdn.net/zhangrelay/article/details/78867450

百度语音包
http://wiki.ros.org/baidu_speech
https://github.com/DinnerHowe/baidu_speech


语音节点订阅了speak_string主题。
如图


向主题发布文本字符串 就可以听到文本的语音了。
语音节点应该是将字符串发送给后台接口传回mp3保存并播放。

this package is python package for ROS speech, which use online baidu speech to do TTS and speech recognition.
this code is run well in ubuntu 14.04, thinkpad T44s.
you can visit the baidu speech home page at here: http://yuyin.baidu.com/

并且这个包可以做在线的语音识别。

可以在识别节点把识别出的文本发布到speak_string话题。这样就可以同时测试speech recognition和tts两个功能了。





安装两个必须的Python库pyaudio和python-vlc(安装vlc遇到问题见下文)

$ sudo apt-get install python-pip portaudio19-dev vlc libvlc-dev

$ sudo pip install pyaudio

$ sudo pip install python-vlc

下载包并编译完成


在运行Python程序时提示:

 import requests
 ImportError: No module named requests

解决

Requests is not a built in module, so you will have to download it. You can get it here:https://pypi.python.org/pypi/requests

$ sudo pip install requests



错误
requests.exceptions.InvalidHeader:Value for header{Content-length:37523} must be of type str or bytes, not <type 'int'>
解决
voice_node.py

HTTP_HEADER=          {  'Content-Type':      'audio/%s;rate=%s'%(self.FORMAT,self.SAMPLING_RATE),'Content-length':    len(json.dumps(RegData))}#改为
HTTP_HEADER=          {  'Content-Type':      'audio/%s;rate=%s'%(self.FORMAT,self.SAMPLING_RATE),'Content-length':    str(len(json.dumps(RegData)))}


错误
KeyError 3312
解决

 
def define(self):self.error_reason={3300:      '输入参数不正确',3301:      '识别错误',3302:      '验证失败',3303:      '语音服务器后端问题',3304:      '请求 GPS 过大,超过限额',3305:      '产品线当前日请求数超过限额',3312:      'param format invalid'}






ros版本kinetic
系统是ubuntu 16.04
其中 vlc 出错

下列软件包有未满足的依赖关系:
 vlc : 依赖: libgles1-mesa (>= 7.8.1) 但是它将不会被安装 或
               libgles1
E: 无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系。
解决

http://ubuntuhandbook.org/index.php/2017/05/install-vlc-2-2-5-in-ubuntu-16-04-14-04/

引用

How to Install VLC 2.2.5 in Ubuntu / Linux Mint:

Besides building VLC 2.2.5 from the source tarball, Ubuntu 14.04, 16.04, and Linux mint 18 users can install it from the unofficial PPA.

1. Open terminal via Ctrl+Alt+T or by searching “Terminal” from start menu. When it opens, run command to add PPA:

sudo add-apt-repository ppa:jonathonf/vlc

Type in your password (no visual feedback due to security reason) when prompts and hit Enter.

VLC 2.2.5 PPA

2. (IMPORTANT) Remove old VLC version to avoid a package conflict:

sudo apt remove vlc vlc-nox

3. Finally run commands in terminal to check updates and install VLC 2.2.5:

sudo apt update && sudo apt install vlc

How to Restore:

To restore VLC media player to the stock version in your main Ubuntu repository, run command to purge the PPA:

sudo apt install ppa-purge && sudo ppa-purge ppa:jonathonf/vlc








这篇关于使用baidu_speech让你的机器人开口说话 语音交互的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/729082

相关文章

C语言中联合体union的使用

本文编辑整理自: http://bbs.chinaunix.net/forum.php?mod=viewthread&tid=179471 一、前言 “联合体”(union)与“结构体”(struct)有一些相似之处。但两者有本质上的不同。在结构体中,各成员有各自的内存空间, 一个结构变量的总长度是各成员长度之和。而在“联合”中,各成员共享一段内存空间, 一个联合变量

Tolua使用笔记(上)

目录   1.准备工作 2.运行例子 01.HelloWorld:在C#中,创建和销毁Lua虚拟机 和 简单调用。 02.ScriptsFromFile:在C#中,对一个lua文件的执行调用 03.CallLuaFunction:在C#中,对lua函数的操作 04.AccessingLuaVariables:在C#中,对lua变量的操作 05.LuaCoroutine:在Lua中,

Vim使用基础篇

本文内容大部分来自 vimtutor,自带的教程的总结。在终端输入vimtutor 即可进入教程。 先总结一下,然后再分别介绍正常模式,插入模式,和可视模式三种模式下的命令。 目录 看完以后的汇总 1.正常模式(Normal模式) 1.移动光标 2.删除 3.【:】输入符 4.撤销 5.替换 6.重复命令【. ; ,】 7.复制粘贴 8.缩进 2.插入模式 INSERT

Lipowerline5.0 雷达电力应用软件下载使用

1.配网数据处理分析 针对配网线路点云数据,优化了分类算法,支持杆塔、导线、交跨线、建筑物、地面点和其他线路的自动分类;一键生成危险点报告和交跨报告;还能生成点云数据采集航线和自主巡检航线。 获取软件安装包联系邮箱:2895356150@qq.com,资源源于网络,本介绍用于学习使用,如有侵权请您联系删除! 2.新增快速版,简洁易上手 支持快速版和专业版切换使用,快速版界面简洁,保留主

如何免费的去使用connectedpapers?

免费使用connectedpapers 1. 打开谷歌浏览器2. 按住ctrl+shift+N,进入无痕模式3. 不需要登录(也就是访客模式)4. 两次用完,关闭无痕模式(继续重复步骤 2 - 4) 1. 打开谷歌浏览器 2. 按住ctrl+shift+N,进入无痕模式 输入网址:https://www.connectedpapers.com/ 3. 不需要登录(也就是

Toolbar+DrawerLayout使用详情结合网络各大神

最近也想搞下toolbar+drawerlayout的使用。结合网络上各大神的杰作,我把大部分的内容效果都完成了遍。现在记录下各个功能效果的实现以及一些细节注意点。 这图弹出两个菜单内容都是仿QQ界面的选项。左边一个是drawerlayout的弹窗。右边是toolbar的popup弹窗。 开始实现步骤详情: 1.创建toolbar布局跟drawerlayout布局 <?xml vers

移动硬盘盒:便携与交互的完美结合 PD 充电IC

在数字化时代的浪潮中,数据已成为我们生活中不可或缺的一部分。随着数据的不断增长,人们对于数据存储的需求也在不断增加。传统的存储设备如U盘、光盘等,虽然具有一定的便携性,但在容量和稳定性方面往往难以满足现代人的需求。而移动硬盘,以其大容量、高稳定性和可移动性,成为了数据存储的优选方案。然而,单纯的移动硬盘在携带和使用上仍存在诸多不便,于是,移动硬盘盒应运而生,以其独特的便携性和交互性,成为了数据存储

人工和AI大语言模型成本对比 ai语音模型

这里既有AI,又有生活大道理,无数渺小的思考填满了一生。 上一专题搭建了一套GMM-HMM系统,来识别连续0123456789的英文语音。 但若不是仅针对数字,而是所有普通词汇,可能达到十几万个词,解码过程将非常复杂,识别结果组合太多,识别结果不会理想。因此只有声学模型是完全不够的,需要引入语言模型来约束识别结果。让“今天天气很好”的概率高于“今天天汽很好”的概率,得到声学模型概率高,又符合表达

C#中,decimal类型使用

在Microsoft SQL Server中numeric类型,在C#中使用的时候,需要用decimal类型与其对应,不能使用int等类型。 SQL:numeric C#:decimal

探索Elastic Search:强大的开源搜索引擎,详解及使用

🎬 鸽芷咕:个人主页  🔥 个人专栏: 《C++干货基地》《粉丝福利》 ⛺️生活的理想,就是为了理想的生活! 引入 全文搜索属于最常见的需求,开源的 Elasticsearch (以下简称 Elastic)是目前全文搜索引擎的首选,相信大家多多少少的都听说过它。它可以快速地储存、搜索和分析海量数据。就连维基百科、Stack Overflow、