探索使用科大迅飞语音包控制机器狗(五)--实现基础语音播报功能

本文介绍了如何使用科大迅飞的语音合成SDK移植到机器狗项目中,实现语音唤醒后进行语音识别控制机器狗运动,并通过语音播报机器狗的状态。在移植SDK过程中,主要修改了回调函数和主函数,而在编写`voice_control.py`发布器时,遇到了因Python缩进格式问题导致的启动失败,最终通过修正空格和tab键的格式解决了问题。
摘要由CSDN通过智能技术生成

已经实现了的功能:

  • 实时语音流控制机器狗的运动

预期实现的功能还有将机器狗的状态进行语音播报,先记录一下实现过程。我的设计思路是这样的,首先进行snowboy语音唤醒,然后唤醒后进入语音识别功能,之后运动控制部分订阅语音识别的消息进行相应的动作,并且发布消息给语音合成模块进行状态的播报。

移植语音合成SDK

首先要先移植语音合成SDK,所使用的还是科大讯飞SDK,移植方式和之前的语音识别部分类似,也是将给的源码修改成cpp文件即可,并编写订阅器接收话题消息。主要需要修改回调函数和主函数部分。

void xfcallback(const std_msgs::String::ConstPtr& msg)
{
   
  char cmd[2000];
  const char* text;
  int         ret                  = MSP_SUCCESS;
  const char* session_begin_params = "voice_name = xiaoyan, text_encoding = utf8, sample_rate = 16000, speed = 50, volume = 50, pitch = 50, rdn = 2";
  const char* filename             = "tts_sample.wav"; 
  char* ss="nothing"; 		//语音识别的结果不是关键词的情况,语音播报nothing
if (wakeupflag)				//只有在snowboy语音唤醒的情况下才进行语音合成
{
   
	if(voiceupflag)			//如果机器狗开始执行相应的动作
	{
   
  		std::cout<<"I heard :"<<msg->data.c_str()<<std::endl
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值