215
云计算
负载均衡
产品简介
产品价格
快速入门
用户指南
实践操作
常见问题
购买指南
云服务器
产品简介
计费规则
购买指导
控制台使用指南
常见问题
云数据库
产品简介
计费规则
购买指导
快速入门
连接实例
控制台使用指南
对象存储
产品简介
控制台使用指南
程序员百科
Python
百度智能云AR开放平台AR场景开发(编辑器)指南-AR语音交互

产品推荐:

1、安全稳定的云服务器租用,2核/2G/5M仅37元,点击抢购>>>

2、高防物理服务器20核/16G/50M/200G防御仅350元,点击抢购>>>

3、百度智能建站(五合一网站)仅880元/年,点击抢购>>> 模板建站(PC+手机站)仅480元/年,点击抢购>>>



点击这里点击这里申请百度智能云特邀VIP帐号,立即体验AR开放平台>>>

百度智能云AR开放平台AR场景开发(编辑器)指南-AR语音交互

AR语音交互

为提升用户交互的多样性,百度AR编辑器集成了语音识别功能,可以通过语音交互来取代之前场景中的部分手势交互,成为百度AR新型的交互方式。

百度AR语音交互1.0 (最低兼容版本SDK 20)

  • 提供开启和关闭语音的能力。
  • 提供一个官方的开启语音按钮,可通过点击按钮调起语音,再次点击关闭。

API

语音交互类 : Speech

语音交互主要是方便开发者快速接入并使用,API简单易懂。

  • start_listen 开启语音识别并监听 详解
  • stop_listen 关闭语音识别并监听 详解
  • show_mic_icon 显示麦克风按钮 详解
  • hide_mic_icon 隐藏麦克风按钮 详解
  • callBack 语音识别过程中返回状态 详解

AR语音 status

  • VOICE_STATUS_READYFORSPEECH 语音准备就绪
  • VOICE_STATUS_BEGINNINGOFSPEECH 可以开始说话
  • VOICE_STATUS_ENDOFSPEECH 说话结束
  • VOICE_STATUS_ERROR 识别出错
  • VOICE_STATUS_RESULT 识别最终结果
  • VOICE_STATUS_RESULT_NO_MATCH 识别结果不匹配
  • VOICE_STATUS_PARTIALRESULT 识别临时结果
  • VOICE_STATUS_CANCLE 识别取消

AR语音 errorId

  • VOICE_ERROR_STATUS_NULL 未知错误
  • VOICE_ERROR_STATUS_SPEECH_TIMEOUT 没有语音输入
  • VOICE_ERROR_STATUS_NETWORK 网络错误
  • VOICE_ERROR_STATUS_INSUFFICIENT_PERMISSIONS 权限错误

能力实现

场景中需要用到语音识别能力时在项目配置中进行语音交互配置。如图:

图片

其中【显示错误提示】开启后语音识别判断到错误时将会显示在脚本配置中设置的错误提示。 【语音关键词配置】此项配置语音识别的关键词,匹配词与关键词的关系为当语音识别到匹配词时将会触发对应的关键词,关键词的配置需要在脚本配置中完成,为您的的关键词提供更多的匹配词语音识别率会更高,右侧的删除按钮可删除配置错误的匹配词。

除此之外还须在脚本配置中添加语音相关的回调,在lua脚本右边搜索”语音”即可检索到相关代码。

app.on_loading_finish = function()
	-- 此处是否展示语音按钮或是否需要直接开启语音, 可以根据项目创意需求灵活选择
	-- 展示语音按钮
  	-- Speech.show_mic_icon()

  	-- 开启语音
  	Speech.start_listen()
end
  • lua中callBack代码如下,可直接copy复用。

注意:

  1. voiceCallback中可以在不同状态下实现不同的效果。
  2. 当状态为识别最终结果 时,会调用matchResult(str),通过识别判断当前属于哪一个key,执行对应func()实现逻辑。
-- AR语音回调响应
Speech.callBack = function(data)
	 voiceCallback(data)
end


-- AR语音callback
function voiceCallback(mapData)
    local status = mapData['status']
    if(status ~= nil) then
        if(status == VOICE_STATUS_READYFORSPEECH) then
        end
        
        if(status == VOICE_STATUS_BEGINNINGOFSPEECH) then
        end
        
        if(status == VOICE_STATUS_ENDOFSPEECH) then
        end
        
        if(status == VOICE_STATUS_ERROR) then
	        errorid = mapData['error_id']
	        errorId(errorid)
        end
        
        if(status == VOICE_STATUS_RESULT) then
	        str = mapData['voice_result']
	        matchResult(str)
        end
        
        if(status == VOICE_STATUS_RESULT_NO_MATCH) then
        end
        
        if(status == VOICE_STATUS_PARTIALRESULT) then
        end
        
        if(status == VOICE_STATUS_CANCLE) then
        end
    end
end


-- AR语音结果匹配
function matchResult(str)
	if( str == 'example1')then
		-- 此处 `example1` 与【语音关键词配置】中字段匹配,识别不同的字段,执行不同的代码逻辑.
		-- func1() 为具体实现代码逻辑
		func1()
	end
	
	if( str == 'example2')then
		func2()
	end
	
	if( str == 'example3')then
		func3()
	end
end

-- AR语音错误提示
function errorId(id)
	if( id == VOICE_ERROR_STATUS_NULL) then
	end
	
	if( id == VOICE_ERROR_STATUS_SPEECH_TIMEOUT) then
	end
	
	if( id == VOICE_ERROR_STATUS_NETWORK) then
	end
	
	if( id == VOICE_ERROR_STATUS_INSUFFICIENT_PERMISSIONS) then
	end
end


这条帮助是否解决了您的问题? 已解决 未解决

提交成功!非常感谢您的反馈,我们会继续努力做到更好! 很抱歉未能解决您的疑问。我们已收到您的反馈意见,同时会及时作出反馈处理!