功能

声控修改唤醒词

以下的说法只是结合实际使用场景的举例和推荐,实际支持的说法更加丰富后续会不断增加更多用户可能使用的说法

操作 模式 声控指令
修改唤醒词 在线 帮你取个名字叫同行者

免唤醒指令

操作 模式 声控指令
屏幕控制 离线
无需手工启动声控
打开/关闭屏幕
音量控制 离线
无需手工启动声控
增大/减小音量
亮度控制 离线
无需手工启动声控
提高/降低亮度
智能识别 无需手工启动声控 同行者我要去白石洲
同行者打开播放器
同行者查下上海的天气
播放音乐 无需手工启动声控 我要听张学友的歌
播放 陈奕迅的歌
点一首 刘德华的歌
开始导航 无需手工启动声控 导航到附近的加油站
我要去 白石洲
导航去 宝安机场

导航功能

操作 模式 声控指令
发起导航 在线 我要去世界之窗
导航到 宝安机场
中山公园怎么走
怎么去 海岸城
带我去 荷兰花卉小镇
打开导航 离线 打开导航/开始导航/返回导航/回到导航/进入导航
修改家的地址 在线 修改家的地址(两轮交互)
修改家的地址为 白石洲
回家 离线 我要回家/导航回家/带我回家
修改公司的地址 在线 修改公司的地址(两轮交互)
修改公司的地址为中科大厦
去公司 离线 我要去公司/导航去公司/带我去公司
周边搜索 在线 附近的餐馆/附近的停车场/附近的加油站
商圈搜索 在线 我饿了/我想吃饭/我想吃肯德基/我想上网/我要洗车/找一下北京五星级酒店
搜索结果选择 无需手工启动声控 按序号选择说法:第一个/第二个…….第十个
存在多页时:上一页/下一页
列表项位置说法:上面那个/下面那个/前面那个/后面那个/最上面那个/最下面那个
结果排序说法:距离排序/远近排序/分数排序/评分排序/评价排序/价钱排序/消费排序
智能筛选说法:南山区那个/好神餐饮湘厨大碗菜/深南大道那个
其他方式说法:有电话的/有团购的
取消选择说法:取消
导航路径操作
无需手工启动声控 总览:查看全程
选择规划策略:躲避拥堵/高速优先/少收费/不走高速
切换视图模式:2D模式/3D模式/自动模式
功能操作:关闭路况/打开路况/白天模式/黑夜模式
取消/退出
导航视图操作
无需手工启动声控 退出导航
选择规划策略:最佳路线/少收费/少路程/躲避拥堵
地图控制:放大地图/缩小地图/车头朝上/正北朝上
询问功能:还有多久/多久到/还有多远/前面怎么走

打电话

操作 模式 声控指令
打电话给已知联系人 离线 打电话给张三/给李四打电话/呼叫中国电信
拨打号码 在线 呼叫13012345678
联系人选择 无需手工启动声控 按序号选择说法:第一个/第二个/第三个
列表项位置说法:最上面那个/最前面那个/最下面那个/最后面那个/最后一个
名称筛选说法:腾讯那个/同行者那个
归属地筛选说法:上海那个/北京那个
取消选择说法:取消
号码选择 无需手工启动声控 按序号选择说法:第一个/第二个/第三个
列表项位置说法:最上面那个/最前面那个/最下面那个/最后面那个/最后一个
开头/尾号筛选说法:153开头那个/7890结尾那个
号码类型筛选说法:短号那个/座机那个/手机那个
运营商筛选说法:移动那个/联通那个
取消选择说法:取消
自动呼叫确定 无需手工启动声控 确定:确定/呼叫
取消
来电 无需手工启动声控 接听
挂断

音乐

操作 模式 声控指令
播放音乐 离线 打开音乐/播放音乐/播放歌曲/我要听音乐
暂停音乐 离线 暂停音乐/暂停/暂停播放/停止/停止播放
继续播放 离线 继续播放/播放/恢复播放
关闭音乐(暂停并关掉界面) 离线 关闭音乐
随便听听 离线 随便听听
切换歌曲 离线 切歌/换一首
上一首
下一首
播放模式 离线 单曲循环/顺序播放/随机播放
播放特定的歌曲 在线
在线(网络音乐)
歌曲名:我要听小苹果/播放月亮代表我的心
歌手名:我要听汪峰的歌/播放陈奕迅的歌
专辑名:我要听明年今日/播放明年今日这个专辑
智能播放 在线 我要听热情歌曲/60后歌曲/中文歌曲/钢琴曲/摇滚/胎教音乐

电台

操作 模式 声控指令
播放电台 在线 打开电台/播放电台/我要听电台
暂停电台 离线 暂停电台
关闭电台(暂停并关掉界面) 在线 关闭电台
切换电台 在线 上一首
下一首
播放特定的电台 在线 艺术家搜索:我要听郭德纲的相声
节目名:我要听逻辑思维
智能选择 在线 我要听新闻/小说节目/言情小说节目

其他

操作 模式 声控指令
退出声控 离线 再见/拜拜/返回/取消
系统控制 启动声控界面
离线
音量控制:静音/打开声音/关闭声音/增加音量/降低音量/最大音量/最小音量
亮度控制:增加亮度/降低亮度/最大亮度/最小亮度
打开应用:打开QQ/手机淘宝/UC浏览器/FM
无线操作:打开蓝牙/关闭蓝牙/打开wifi/关闭wifi/打开无线网络/关闭无线网络
应用管理 离线 打开应用:打开文件管理器/启动浏览器
关闭应用:关闭文件管理器/退出浏览器
时间查询 离线 几点/现在几点/时间是多少/现在时间是多少
日期查询 离线 今天多少号/今天日期多少/今天星期几/今天农历多少号
位置查询 在线 查一下我的位置/我现在在哪儿
股票查询 在线 查一下上证指数/腾讯的股票怎么样
天气查询 在线 今天的天气怎么样/上海明天的天气
讲笑话 在线 讲一个笑话
翻译 在线 我想抽烟的英文怎么说
帮助 在线 打开帮助/查看帮助

如何接入

工程配置

将TXZ_SDK.jar加入到Android工程中

参考demo在工程AndroidManifest.xml里增加通讯服务的配置


初始化SDK配置

在Application的onCreate入口处调用TXZConfigManager.getInstance().initialize接口对SDK初始化

需要初始化语音引擎参数的需要填写InitParam参数,可以在这里配置项目的appId、设置语音唤醒词等等

初始化完成后会回调InitListener进行结果通知,只有初始化成功后之后才能进行其他操作


语音合成TTS

需要播报语音的地方使用TXZTtsManager.getInstance().speakText进行播报
同行者语音已为您做了语音播报的队列管理,Android的音频焦点管理
Tts播报可以指定使用哪个音频流来播报,也可以对播报的结果进行处理
Tts播报会返回个播报任务ID,你可以调用 TXZTtsManager.getInstance().cancel来进行取消播报

蓝牙电话接入

蓝牙电话demo工程TXZCallManager.getInstance().setCallTool进行接口对接
由设置的 CallTool对象实现对应的拨打电话、挂断电话、接听电话、拒接电话,当声控引擎识别到对应的操作时会调用相关的接口进行操作

调用SDK设置完CallTool后,SDK会自动调用您的CallTool对象setStatusListener接口传递一个 CallToolStatusListener对象给您,您可以通过它告诉同行者电话的可用状态和电话的通话状态,您需要记录下这个对象供之后状态通知使用,并立即通知蓝牙的连接状态和最新的通话状态过来

默认同行者会为您读取Android系统通讯录(效率较低),您可以使用 TXZCallManager.getInstance().syncContacts同步联系人,之后同行者将不会再从系统读取联系人数据

您还需要在蓝牙状态发生变化时及时调用SDK通知过来
联系人同步的时机: SDK初始化完成、蓝牙连接上、联系人数据发生变更
来电时使用记录的 CallToolStatusListener调用onIncoming来通知,可以设置语音参数,同行者将会有语音播报来电人信息、并启动声控识别“接听”和“挂断”
来电接通时使用记录的 CallToolStatusListener调用onOffhook来通知电话已接通,同行者将会处理来电接通的逻辑
去电发起时使用记录的 CallToolStatusListener调用onMakecall来通知电话已发起,接通后使用记录的CallToolStatusListener调用onOffhook来通知电话已接通(如果取不到接通状态不通知也可以)
通话结束(去电挂断、对方放弃、来电拒接等)时使用记录的 CallToolStatusListener调用onIdle来通知电话已释放,同行者将会处理电话释放的逻辑
蓝牙连接时使用记录的 CallToolStatusListener调用onEnable来通知电话功能可用了,同时需要同步最后的通话状态过来
蓝牙断开连接时使用记录的 CallToolStatusListener调用onDisable来通知电话功能禁用了,同时调用onIdle,通知电话变空闲过来

接入蓝牙连接状态:调用TXZCallManager.getInstance()上的syncLocalBluetoothInfo同步设备的蓝牙信息,syncRemoteBluetoothInfo同步连接上本设备的蓝牙信息,断开连接也需要调用同步

SIM卡电话接入

参考蓝牙电话,实现对应的呼叫接口,并按Android的通知接口,通知对应的通话状态即可
参考代码,下载后请参照不同平台进行适配权限和广播通知等

自定义命令注册

注册命令字使用TXZAsrManager.getInstance().regCommand进行注册

取消注册命令字使用 TXZAsrManager.getInstance().unregCommand进行反注册

命令字的回调处理使用 TXZAsrManager.getInstance().addCommandListener增加命令回调监听器

FM功能接入

使用TXZAsrManager.getInstance().regCommandForFM注册FM识别频率范围和回调

FM的回调处理使用 TXZAsrManager.getInstance().addCommandListener增加命令回调监听器,data将按注册的data#频率返回

导航接入

1)默认同行者支持多家导航程序,根据安装的应用按以下优先级选择: 同行者工具 >>凯立德导航 >>高德导航 >>百度导航HD >>百度导航 >>百度地图 >>高德地图
2)要对接自己的导航工具,使用 TXZNavManager.getInstance().setNavTool实现自己的导航工具对接,主要实现以下三个接口

3)可以使用 TXZNavManager.getInstance().setNavToolType强制指定使用导航工具,当对应的导航工具没有安装时会按默认策略进行

实景导航接入

导航过程中,同行者将通过广播的方式实时将导航数据以json格式广播出来,接受广播处理实景导航数据
Action: com.txznet.txz.NAVI_INFO KEY:KEY_NAVI_INFO
支持实景导航数据接口的导航软件有: 高德导航定制版高德地图车机版凯立德导航对接版
广播携带的数据字段,部分字段不存在值以-1或"":

key 描述
toolPKN 导航工具(导航包名)
direction 转弯方向
dirDes 转向描述
dirDistance 距离转向点的距离,单位m
dirTime 距离转向点的时间,单位秒
remainDistance 距离目的地的距离,单位m
remainTime 距离目的地的剩余时间
carDir 车的方向,以正北方向顺时针增加,单位为度
longitude 自车经度
latitude 自车纬度
totalDistance 出发地与目的地之间的总距离,单位m
totalTime 出发地与目的地之间的总时间
currentLimitedSpeed 当前限制车速,单位km/h
currentRoadName 当前道路名字
nextRoadName 下一道路名字
currentRoadType 当前道路类型
currentSpeed 当前车速,单位km/h
direction转弯方向 dirDes转向描述
1 自车图标
2 左转图标
3 右转图标
4 左前方图标
5 右前方图标
6 左后方图标
7 右后方图标
8 左转掉头图标
9 直行图标
10 到达途经点图标
11 进入环岛图标
12 驶出环岛图标
13 到达服务区图标
14 到达收费站图标
15 到达目的地图标
16 进入隧道图标

音乐接入

1)同行者根据安装的应用默认使用同行者音乐,其次选择酷我音乐,同行者音乐需要安装qq音乐才能支持在线音乐
2)要对接自己的音乐工具,使用 TXZMusicManager.getInstance().setMusicTool实现自己的MusicTool对接
3)可以使用 TXZMusicManager.getInstance().setMusicTool(MusicToolType)强制指定使用音乐工具,当对应的音乐工具没有安装时会按默认策略进行

远程助手抓拍接入

1)调用TXZCameraManager.getInstance().setCameraTool设置抓拍工具,当识别到需要抓拍或者微信需要远程抓拍时,会调用对应的TXZCameraManager.CameraTool上的capturePicure方法进行抓拍
2)抓拍完成后,调用capturePicure传入的 CapturePictureListener上的onSave方法回调通知保存抓拍图片,出错则调用onError通知出错,错误码参考TXZCameraManager.CAPTURE_ERROR_XXX

3)需要启用抓拍唤醒词,使用 TXZCameraManager.getInstance().useWakeupCapturePhoto(true)开启,开启后将支持我要拍照/抓拍照片/抓拍图片发起抓拍,若安装了远程助手,抓拍的图片将同步推送到微信

休眠唤醒处理

1)休眠前调用TXZPowerManager.getInstance().notifyPowerAction(POWER_ACTION_BEFORE_SLEEP)通知同行者将要休眠,并调用TXZPowerManager.getInstance().releaseTXZ()释放同行者资源
2)唤醒后调用 TXZPowerManager.getInstance().reinitTXZ()重新初始化同行者,并调用TXZPowerManager.getInstance().notifyPowerAction(POWER_ACTION_WAKEUP)通知同行者设备已经唤醒

适配应用程序列表/适配启动关闭应用

1)默认同行者读取系统安装包中包含android.intent.action.MAINandroid.intent.category.LAUNCHER的第一个activity,调用TXZSysManager.getInstance().syncAppInfoList 接口传入需要识别的应用的列表,同步后同行者将不再从系统自动读取,请在卸载和安装新包后重新同步
2)识别到了指定应用,同行者会通过包名来启动或关闭应用
3)启动应用若需要按自己的行为启动,通过调用 TXZSysManager.getInstance().setAppMgrTool传入AppMgrTool抽象类,实现上面的openApp来启动应用
4)同行者默认按切换到launcher后关闭后台进程尝试关闭,关闭应用一般都需要系统权限,建议通过调用 TXZSysManager.getInstance().setAppMgrTool传入AppMgrTool抽象类,实现上面的closeApp来关闭应用

激活说明

激活简介

同行者为设备激活声控功能提供了自动或手动2种激活方式,且支持2种方式间进行切换。
1.自动激活对于设备的激活申请不做任何限制,只要设备联网向后台申请激活即予以通过。
2.手动激活则会在设备激活时校验路由器的wifi地址或wifi名称,且对于激活的总量进行限制。
对于自动激活,设备只需联网即可完成;手动激活则需客户或同行者对激活申请进行严格管理。

激活步骤

自动激活
准备一台已联网可用于设备激活的wifi路由器或手机,设备通过wifi连接后即可激活
手动激活
通过wifi路由器或手机分享热点这2种不同的联网方式,进行激活,操作步骤有一定的区别。
1)wifi路由器
step1:准备一台已联网可用于设备激活的wifi路由器,以及准备一台安卓手机,安装同行者提供的 wifi地址查询工具
step2: 手机通过wifi连接上路由器后,打开工具,查询路由器的wifi地址
step3:告知同行者该wifi地址下的激活数量,待同行者反馈确认
step4:设备通过wifi连接路由器即可开始激活。
2)手机热点
Step1:预先准备一台已联网可用于激活设备的安卓手机
Step2:告知同行者准备激活设备的数量,同行者及时生成激活码并反馈
Step3:打开手机wlan共享热点,将wifi名称修改为激活码字符(建议通过复制粘贴进行操作)
step4:设备通过连接手机热点即可开始激活
如需查询剩余数量前往: http://license.txzing.com/web/query_live.html

激活管理

对于使用手动激活方式的客户,同行者提供了同行者托管与客户自行管理2种方式来管理激活申请。
3.1同行者托管
同行者托管激活权限,如有激活需求,请预先告知同行者激活数量及其他相关信息,由同行者在后台配置。
3.2客户自行管理
同行者在“同行者科技”微信公众号为客户提供了自行管理激活的能力,客户可在公众号查询名下的license使用情况,也可以自行设置激活数量和查询剩余数量。

公众号说明

“同行者科技”公众号主要提供license数量查询及管理激活的入口,客户在获取权限后,可通过公众号便捷的查询license消耗情况,还可自行更改激活方式,方便管理激活需求。

权限介绍

公众号对查询、设置激活数量等操作都设定了相应权限,要实现某个操作需预先获取权限。以下是所有权限的类型及作用:
1)license查询——默认权限,查询appid、license消耗情况、激活流水情况;
2)再次授权——可将自己名下权限授予给他人;
3)修改激活方式 ——将激活方式由自动激活改为手动激活,或由手动激活改为自动激活;
4)Token查询——查询token字符;
5)管理激活申请——添加新的激活申请以及查询激活记录。

如何获取权限

目前的权限分配方式是:同行者商务首先把所有权限分享至客户接口人,然后接口人再在内部进行分享。具体操作如下:
第一步:点击同行者商务发来的链接,获取包含激活数量查询、修改激活方式等所有权限,然后关注同行者科技公众号,方便快速查阅已有权限及查看激活情况。

查询license数量

点击项目管理—查询,进入license查询页面,查看已激活量、剩余数量。

查看激活记录

点击项目管理—查询—激活记录,进入查询页面。

申请激活

点击项目管理—查询—激活方式—添加新的激活申请。
如通过手机热点激活选择校验方式:激活码,点击获取按钮,自动生成激活码,其他步骤参考同行者托管方式下的手机热点激活步骤。

修改激活方式

点击项目管理—查询—激活方式,修改项目的激活方式。

对内授权

点击授权—选择项目—选择权限,分享给公司内其他同事。

常见问题

支持那些声控说法

如何支持回音消除

回音消除后可以大大增加音乐时的唤醒率,并且可以实现打断tts来进行识别
软件回音消除,需要采集到speaker输出流,利用回音消除算法,利用speaker回路录音将mic录音进行滤波消除回音
具体speaker回路采集方案参考 AEC实施工程手册
默认软件回音消除采用立体声录音,左声道为mic录音,右声道为speaker,在SDK初始化时 InitParam.setFilterNoiseType(1)开启回音消除功能
测试立体声录音可以使用 录音测试工具进行
1)设备打开音乐后,打开 录音测试工具,点击立体声录音进行录音
2)录音结束后点击 全部停止停止录音
3)分别点击 播放立体声、播放左声道、播放右声道,可以收听每一个声道的声音,看录音是否正常
4)获取/sdcard/txz/recordTest下的pcm录音文件进行交给工程师分析

开发接入如何修改唤醒词?

1)在初始化SDK的InitParam参数使用setWakeupKeywordsNew设置唤醒词
2)在初始化SDK后使用 TXZConfigManager.getInstance().setWakeupKeywordsNew设置唤醒词

如何彻底关闭语音唤醒功能?

1)参考上文设置唤醒词为空
2)使用 TXZConfigManager.getInstance().enableChangeWakeupKeywords(false)不允许用户修改唤醒词

如何隐藏声控悬浮图标?

1)在初始化SDK的InitParam参数使用showFloatTool(FloatToolType.FLOAT_NONE)隐藏悬浮声控按钮
2)在初始化SDK后使用 TXZConfigManager.getInstance().showFloatTool(FloatToolType.FLOAT_NONE)隐藏悬浮声控按钮

如何启动声控?

1)建议模拟悬浮声控图标行为,使用TXZAsrManager.getInstance().triggerRecordButton()实现模拟声控按钮行为
2)需要打开声控界面并使用对应引导语打开声控,使用 TXZAsrManager.getInstance().start("有什么可以帮您")实现启动声控
3)不需要打开声控界面打开声控,使用 TXZAsrManager.getInstance().start()实现启动声控
4)结束录音立即进行识别,使用 TXZAsrManager.getInstance().stop()
5)取消识别,使用 TXZAsrManager.getInstance().cancel()

如何获取音乐播放的状态?

1)在初始化SDK后调用TXZStatusManager.getInstance().addStatusListener增加状态监听器onMusicPlayonMusicPause状态
2)使用 TXZMusicManager.getInstance()isPlaying()getCurrentMusicModel()获取音乐状态和标签

如何查看同行者的用户ID?

在/sdcard/txz/目录查看生成uid_xxxx.txt,其中xxxx就是用户的ID

声控的图标出不来是怎么回事?

1)开发需要有个服务来初始化同行者语音引擎,在调用TXZConfigManager.getInstance().initialize 接口时传入InitParam参数
2)如果之前没有激活过,请确保设备可以联网使用
3)确定开发是否使用隐藏了声控图标
3)如果还是无法激活,请联系同行者开发分析

如何监听录音窗口的打开和关闭?

通过监听广播通知实现
打开时 com.txznet.txz.record.show
关闭时 com.txznet.txz.record.dismiss

常见认证错误原因

请先连接网络,上网激活后才能使用语音助手:没有联网认证导致,认证成功会自动关闭错误提示
接入未经认证,请联系厂商解决:appId或者appToken错误导致
非正规授权途径,请联系厂商解决:手动激活模式下,接入的wifi的地址不合法
配额不足,设备激活失败,请联系厂商解决:后台配额不足,需要联系商务解决license数量
缺少设备唯一标识码,请联系厂商解决:设备没有烧录唯一设备标志,后台不允许激活

为什么没有单曲播放和顺序播放模式?

行车环境下,音乐突然停住对用户来说是非常奇怪的,用户声控说单曲播放的目的基本都是单曲循环,用户声控说顺序播放即全部顺序播放,播放完后循环
内置三种模式( 单曲循环、随机播放、全部循环)才是符合用户预期的

导航选择一个地址导航后退出导航,为什么还可以看到地址选择界面?

导航路径规划后如果离开,地址选择界面超过30秒,会自动关闭选择界面,如果进入没有超过30秒用户就退出了,说明选择的地址不符合用户预期,用户退出后可以重新选择个新地址进行导航

为什么有时候声控拨打电话会自动呼叫,有时不会?

当语音识别结果有多个联系人,其中一个匹配度很高时,会自动呼叫该联系人,其他相似联系人作为备选
当语音识别结果有一个高匹配联系人时,会自动呼叫,如果该人有多号码,默认呼叫第一个号码,其他作为备选
当语音识别结果为号码呼叫时,并且地址簿存在该号码,会自动呼叫

相关下载

声控指南手册

Demo参考程序

Demo参考程序下载后请根据申请的appId和appToken修改project_config.xml

Android电话适配参考程序

录音测试工具

接入WIFI的MAC地址查询工具

下载方式:鼠标移到所需的图片上,点击右键选择“图片另存为...”,保存即可。

同行者LOGO

340*128

同行者LOGO源文件下载

PSD源文件下载