讯飞语音开发之语音唤醒

article/2025/9/12 16:36:13

只有前面讲到的语音合成,语音理解,语义理解,语音识别确实可以实现人机交流。但是还不能实现完全智能,不能狗做到实时问道,间歇式问答。要实现实时问答,切不用手动操作。这时候语音唤醒功能就大选伸手了。下面我们来看看语音唤醒功能的实现吧。

使用语音唤醒,首先你要在你的应用中开通语音唤醒服务。











设置唤醒词,设置的过程中最好是四个字以上且唤醒词之间相互区分度比较大一些,这样识别率会好一些





















然后下载体验包(或者购买包),在含有语音唤醒功能的sdk中我们可以看到一个.jet文件。这个文件含有你设置的唤醒词。把他放在assets文件夹下,






其他的资源加载可以参考前面几节的内容。再次不再赘述

主要代码设置


主要代码:

1,初始化sdk

SpeechUtility.createUtility(MainActivity.this, SpeechConstant.APPID+"=********");

2.初始化唤醒对象

voiceWake = VoiceWakeuper.createWakeuper(MainActivity.this, null);


3,获取唤醒资源

/** 获取唤醒词等唤醒资源* */private String getResourse(){/** 加载唤醒资源* */StringBuffer param = new StringBuffer();String resPath = ResourceUtil.generateResourcePath(MainActivity.this,RESOURCE_TYPE.assets,"ivw/"+getString(R.string.app_id)+".jet");param.append(SpeechConstant.IVW_RES_PATH+"="+resPath);param.append(","+ResourceUtil.ENGINE_START+"="+SpeechConstant.ENG_IVW);return ResourceUtil.generateResourcePath(MainActivity.this,RESOURCE_TYPE.assets, "ivw/"+getString(R.string.app_id)+".jet");}


4,初始化唤醒那个对象

/** 初始化设置--语音理解对象,语音唤醒对象,语音合成对象* */private void initSet(){//语音理解设置understander.setParameter(SpeechConstant.LANGUAGE,"zh_cn");//语音合成设置speechSyn.setParameter(SpeechConstant.VOICE_NAME,"xiaoyan");speechSyn.setParameter(SpeechConstant.SPEED,"50");speechSyn.setParameter(SpeechConstant.ENGINE_TYPE,SpeechConstant.TYPE_CLOUD);//语音唤醒设置	
//		voiceWake.setParameter(SpeechConstant.IVW_THRESHOLD,"0"+-80);

//		voiceWake.setParameter(SpeechConstant.IVW_SST,"oneshot");voiceWake.setParameter(SpeechConstant.ENGINE_TYPE,"cloud");
//		voiceWake.setParameter(SpeechConstant.CLOUD_GRAMMAR, grammarID);voiceWake.setParameter(SpeechConstant.IVW_THRESHOLD, "0:"+0);voiceWake.setParameter(SpeechConstant.IVW_SST,"wakeup");voiceWake.setParameter(SpeechConstant.KEEP_ALIVE, "0");voiceWake.setParameter(SpeechConstant.IVW_NET_MODE,""+0);voiceWake.setParameter(SpeechConstant.IVW_RES_PATH,getResourse());}

5,开始语音唤醒

voic.startListening(mWakeuperListener);


6,唤醒监听器

/** 唤醒监听器* */private WakeuperListener mWakeuperListener = new WakeuperListener(){@Overridepublic void onEvent(int eventType, int arg1, int arg2, Bundle obj) {}@Overridepublic void onResult(WakeuperResult results) {}@Overridepublic void onBeginOfSpeech() {// TODO Auto-generated method stub}@Overridepublic void onError(SpeechError arg0) {// TODO Auto-generated method stub}@Overridepublic void onVolumeChanged(int arg0) {// TODO Auto-generated method stub}};



最后记得添加权限,(前面几节介绍的也有,再次也不再赘述了),至此语音唤醒功能已经实现,注意次还行是设置在单纯的唤醒,还有一种能唤醒是唤醒+识别,后面会单独介绍。再次不说了。

至于代码回头我会单独列出下载地址,今天时间关系,暂时不上代码。




http://chatgpt.dhexx.cn/article/gknehRDf.shtml

相关文章

百度语音唤醒

一&#xff1a;前期准工作 &#xff08;1&#xff09;进入百度开放平台&#xff0c;注册账号&#xff0c;创建应用&#xff0c;拿到应用相对应的 AppID&#xff0c;API密钥&#xff0c;密钥 &#xff08;2&#xff09;配置相关信息 <uses-permission android:name"an…

语音唤醒原理

百度语音唤醒时的日志 D/audio_hw_primary: adev_open_input_stream is_karaoke_fastcapture0 D/audio_hw_primary: adev_open_input_stream: enter: sample_rate(16000) channel_mask(0x10) devices(0x80000004) stream_handle(0xf3439a00) io_handle(454) source(1) …

语音唤醒功能篇

语音唤醒功能 语音唤醒使得系统中的各个功能模块能够很好的分隔开来。用户通过唤醒词“依米”唤醒系统&#xff0c;发送语音指令&#xff0c;系统检测到语音指令中的关键词&#xff0c;然后去执行相对应的功能。当系统执行完成后&#xff0c;便进入等待下一次被唤醒状态&#…

语音唤醒

语音唤醒 前言一、语音唤醒相关环境搭建二、使用步骤1.使用流程2.示例代码 总结 前言 针对语音交互过程&#xff0c;提供了一种语音唤醒的方法供大家参考&#xff0c;语音交互采用snowboy离线语音唤醒引擎&#xff0c;snowboy已经被kitt.AI团队下架&#xff0c;但我们仍能够在…

语音唤醒简单说明

随着 Echo 出现,all in one 音响类产品雏形开始显现,语音交互成为最直接的控制方式,Amazon Echo作为最佳代表,智能语音交互成为互联网入口的新价值所在。ABI Research 在 2017 年収布的预测报告指出,估计到 2022 年,支持语音控制的装置出货量将达到 7500万台,其中智能喇…

语音唤醒技术的原理是什么?

https://www.toutiao.com/a6644766450860950024/ 2019-01-10 15:27:29 “天猫精灵。”“哎&#xff0c;在的&#xff0c;你说” “小爱同学&#xff0c;定明天早上8点的闹钟。”“好的&#xff0c;已经帮你定好明天早上8点的闹钟” 不少同学家里都有AI智能音箱产品&#xff0…

android系统看片软件,真正的手机看片神器 和视界手机APP评测

播放界面支持丰富的手势操作&#xff0c;我们可以通过上下左右的滑动手指来调整影片进度以及音量大小。和视界还可以选择不同的输出设备——只要硬件设备支持&#xff0c;我们可以通过手机将和视界中的视频内容投射到电视上观看。 注重影片的口碑效应&#xff0c;支持用户打分与…

FreeRTOS时间片调度

一、FreeRTOS时间片调度概述 FreeRTOS支持多个任务同时拥有一个优先级&#xff0c;这些任务的调度就可以使用时间片来进行调度。在FreeRTOS中允许一个任务允许一个时间片&#xff08;一个时钟节拍的长度&#xff09;后让出CPU的使用权&#xff0c;让拥有同优先级的下个任务运行…

MongoDB 分片集群技术

在了解分片集群之前&#xff0c;务必要先了解复制集技术&#xff01; 1.1 MongoDB复制集简介 一组Mongodb复制集&#xff0c;就是一组mongod进程&#xff0c;这些进程维护同一个数据集合。复制集提供了数据冗余和高等级的可靠性&#xff0c;这是生产部署的基础。 1.1.1 复制集的…

片偏移怎么计算_计算机网络学习笔记(四)之网络层

点击蓝字关注我吧 越努力越幸运!!! 1 网络层的功能 1.1异构网络互联 网络的互联:指将两个以上的计算机网络,通过一定的方法, 用一种或多种通信处理设备(即中间设备)相互联接起来,以构成更大的网络系统。中间设备又称为中间系统或中继系统。根据中继系统所在…

IP分片浅析

一、IP分片原理 IP分片是网络上传输IP报文的一种技术手段。 IP协议在传输数据包时&#xff0c;将数据报文分为若干分片进行传输&#xff0c;并在目标系统中进行重组。 不同的链路类型规定有不同最大长度的链路层数据帧&#xff0c;称为链路层MTU&#xff08;最大传输单元&#…

硅钢片知识点

文章目录 一、电工钢为什么选硅钢二、为什么要用硅钢“片”三、为什么电机用无取向&#xff0c;变压器用有取向硅钢片四、其他关于硅钢片应该了解的4.1 热轧和冷轧4.2 厚度4.3 牌号4.4 叠片系数4.5 冲片性 一、电工钢为什么选硅钢 电机和变压器的内部主要组成是铜绕组&#xf…

wireshark捕获IP分片数据包实践

一 简介 如果一个数据包超过1500个字节&#xff0c;就需要将该包进行分片发送。通常情况下&#xff0c;是不会出现这种情况的。 下面通过使用ICMP包&#xff0c;来产生IP分片数据包。 使用ICMP包进行测试时&#xff0c;如果不指定包的大小&#xff0c;可能无法查看被分片的数据…

mongo分片

分片 在Mongodb里面存在另一种集群&#xff0c;就是分片技术,可以满足MongoDB数据量大量增长的需求。 当MongoDB存储海量的数据时&#xff0c;一台机器可能不足以存储数据&#xff0c;也可能不足以提供可接受的读写吞吐量。这时&#xff0c;我们就可以通过在多台机器上分割数据…

IP分片报文的接收与重组

对于长度超过接口MTU的数据包&#xff0c;需要进行分片处理&#xff0c;IP报头中与分片相关的字段有如下几个&#xff1a; Identification - 用来确认不同的分片是否属于同一个IP报文&#xff1b; Flags - 其中IP_MF表示还有分片&#xff0c;此分片为…

数据 分片

背景 传统的将数据集中存储至单一节点的解决方案&#xff0c;在性能、可用性和运维成本这三方面已经难于满足海量数据的场景。 从性能方面来说&#xff0c;由于关系型数据库大多采用 B 树类型的索引&#xff0c;在数据量超过阈值的情况下&#xff0c;索引深度的增加也将使得磁…

MongoDB:海量存储基础-分片架构

文章目录 1.分片架构2.分片策略3.读写策略4.数据迁移 1.分片架构 分片是数据库中常用的提升存储容量的方式&#xff0c;它基于水平拓展的思想&#xff0c;将大量的数据按一定规则分配到不同的服务器中存储&#xff0c;比如MySQL集群可以借助Sharding-JDBC等外部框架对数据进行…

SpringBoot文件分片上传

背景 最近好几个项目在运行过程中客户都提出文件上传大小的限制能否设置的大一些&#xff0c;用户经常需要上传好几个G的资料文件&#xff0c;如图纸&#xff0c;视频等&#xff0c;并且需要在上传大文件过程中进行优化实时展现进度条&#xff0c;进行技术评估后针对框架文件上…

芯片的设计流程和流片成本

每天都在用&#xff0c;但你知道芯片的设计流程和流片成本吗&#xff1f; 2017-05-10 06:10 来源&#xff1a;半导行业观察 芯片&#xff0c;是无数设计工程师们烧死很多脑细胞后产生的作品&#xff0c;完全可以称得上是当代的艺术品。无论是电工们&#xff0c;还是科技小白…

华为防火墙分片缓存

分片缓存 分片缓存功能用来缓存先于首片分片报文到达的后续分片报文&#xff0c;避免分片报文被防火墙丢弃。 网络设备在传输报文时&#xff0c;如果设备上配置的MTU&#xff08;Maximum Transfer Unit&#xff09;小于报文长度&#xff0c;则会将报文分片后继续发送。 我们知道…