【工程配套】在Unity项目中接入思必驰语音SDK,实现类似“语音助手”的功能

#王者杯·14天创作挑战营·第2期#

思必驰提供了安卓SDK,基于此实现Unity调用安卓SDK的原生接口。

在Unity项目中接入思必驰语音SDK,实现了简单的语音助手Demo。

此文档为工程配套文档。


一、获取思必驰SDK的Token

这里采用动态注册的方式(注册仅为一种鉴权方式,无论哪种鉴权方式,都不会影响语音识别、语音合成、语音唤醒的功能)。

若是要使用其它注册方式,请参考官方文档。https://cloud.aispeech.com/docs/product_authorization

1. 创建产品

  • 登入控制台https://cloud.aispeech.com/

  • 选择“基础单项技术”
    在这里插入图片描述

  • 右上角添加,“基础技术接入”
    在这里插入图片描述

  • 选择单项技术,勾选所需的“语音识别|语音合成|语音唤醒”相关单项
    在这里插入图片描述

2. 申请Token

思必驰SDK提供了动态注册的授权方式,这里需要申请所需的Token

  • 进入授权管理
    在这里插入图片描述
  • 点击申请APIKEY,输入(你要开发的安卓程序的包名)packagename和(你要开发的安卓程序打包签名时用到的keystore文件)keystore的SHA256值。
    在这里插入图片描述
  • 点击确定,得到APIKEY(记录下红框中的内容,后续备用)

在这里插入图片描述

3. 补充:包名获取

原生开发方式获取

获取build.gradle文件中的ApplicationId作为PackageName;如果没有设置ApplicationId,请以AndroidManifest.xml配置文件的package 属性为准。

Unity开发获取

安卓平台下

在ProjectSettings中设置PackageName
在这里插入图片描述

4. 补充:生成keystore文件

生成keystore文件

参考文档:https://eqgis.blog.csdn.net/article/details/148040233
对于Unity开发者,建议直接在Unity中创建
在这里插入图片描述

5. 补充:获取SHA256值

注意:JDK需配置环境变量

  • 检查是否将JDK配置环境变量,输入“keytool”,以下情况为正常。
    在这里插入图片描述

  • 输入命令:keytool -v -list -keystore keystore文件路径

debug.keystore:命令为:keytool -list -v -keystore debug.keystore

自定义的 keystore:命令为:keytool -list -v -keystore apk的keystore

  • 查看SHA256,复制内容。在之前的申请APIKEY的地方时使用

在这里插入图片描述

二、Unity配置

注意:这里需使用我提供的工程Demo(或是导入我提供的unitypackage)

1. 配置Token

  • 打开EQGIS->Settings,填写思必驰的相关Token信息
    在这里插入图片描述
  • 保存修改

2. 创建“Assistant”

  • 在场景中创建对象

示例工程中的SampleScene中默认创建,无需额外创建。这里记录仅是作参考
在这里插入图片描述

  • 检视对象

默认已在对象挂载脚本并绑定
在这里插入图片描述

三、语音唤醒

1. 修改唤醒词

唤醒词要求为拼音。

在以下代码位置替换唤醒词即可
在这里插入图片描述

四、语音合成

TTS功能(文本转语音)

1. 预设文本转语音

关键步骤:

  • 替换textContent
  • 启动ttsEngine
    代码示例:
entity.ttsEngine.textContent = entity.RandomResponse(entity.wakeupResponses);
entity.status = VoiceAssistantStatus.SPEEKING;
entity.ttsEngine.StartEngine();

补充说明:你可以找到SbcTtsEngine.cs中StartEngine的引用位置。自定义语音反馈,亦或是通过Unity的AudioClip播放预设音频也可以实现语音反馈。

在这里插入图片描述

五、语音识别

ASR功能(语音转文本)

1. 修改本地语音识别的预设文本

当前采用本地识别,则需要预先根据XBNF语法,设置文件。
当前安卓原生部分引入的SDK配置的XBNF文件在Assets目录下。

打包后的安卓aar文件,在Unity的Eqgis/Plugins/Android目录下
在这里插入图片描述

打开aar(当做一个zip文件打开就行)
在这里插入图片描述- 查看local_asr.xbnf(替换文本内容),需保持替换前后文件同名。
在这里插入图片描述

补充:若是你无法通过上述方式替换成功,请将xbnf文件提供给源码作者,重新编译aar。

此外需要注意的是:
在这里插入图片描述

2. 识别到语音内容

默认逻辑:唤醒词唤醒->助手答复后->(启动语音识别监听)语音识别

你可以参考以下代码位置的实现修改逻辑

  • 在第一次TTS(文本转语音)后,(认定为助手答复)启动语音识别监听。
    在这里插入图片描述
  • 当识别到语音内容时,触发Recognize事件

Unity开发者,在此处处理识别到的语音文本
在这里插入图片描述

3. 允许超时的次数设置

ASR识别超时重试,若是超时。可以执行“请再说一遍”(预设文本可在源码中修改)
在这里插入图片描述

六、指令任务

在识别到语音内容后,我们得到一个String。通过字符串匹配,我们可实现简单的指令任务。

1. VoiceCommandManager

  • 场景中创建一个游戏对象,挂载VoiceCommandManager脚本
  • 在ASR识别回调的Recognize(String)事件中,回调出的String就是监听到用户说的话。
  • 调用挂载VoiceCommandManager组件的Rec(string)方法

这里实现了根据指令修改Cube颜色的字符串匹配示例,可做参考。

在这里插入图片描述

七、运行说明

1. 运行平台

项目采用安卓原生的aar,仅可运行在安卓设备上。

2. 运行日志

接口预留了日志打印方法。Unity项目中配置条件编译。“DEBUG_LOG”
参考EqLog.cs

#if DEBUG_LOG
        private static string logFilePath = Application.persistentDataPath + "/runtime.log";
#endif

文件日志保存在安卓根目录/Android/data/你的包名/files/runtime.log文件中。示例如下:
在这里插入图片描述

3. 缓存文件

  • 思必驰通过Token动态注册(鉴权)时,第一次会联网鉴权,生成缓存文件。后续动态注册会根据缓存文件鉴权。(因此无需再联网)
  • 鉴权成功后,语音识别引擎启动时,会根据xbnf文件编译bin文件,保存在缓存文件夹中。(因此第一次启动语音识别引擎时,耗时会受到xbnf文件大小影响)

在这里插入图片描述

内容概要:本文深入探讨了折扣店快消品定价的研究,涵盖快消品与折扣店行业的概述、定价影响因素、定价策略、定价方法、定价技巧及案例分析。快消品行业涉及日常生活用品、食品、饮料等,具有高频次和重复购买的特点。折扣店市场规模不断扩大,主要参与者包括赵一鸣、好特卖等。影响定价的因素包括成本(生产、库存、物流)、市场需求(规模、购买力、需求弹性)、竞争(对手定价策略、市场份额)、产品特性(差异化、品牌形象)、渠道与分销成本、政府政策等。定价策略分为成本导向(成本加成、目标收益)、需求导向(理解价值、需求差异)和竞争导向(随行就市、投标定价)。定价方法包括市场调研、成本加成、竞争比较和价值定价。定价技巧涵盖高价撇脂、渗透定价、价格歧视和捆绑定价。最后通过好特卖、嗨特购、零食很忙的案例分析,展示了不同折扣店的定价策略及其效果。 适合人群:从事快消品行业、折扣店运营的管理人员及对定价策略感兴趣的商业人士。 使用场景及目标:①帮助折扣店管理者了解定价的基本理论和实际操作方法;②为快消品企业提供定价决策支持,优化定价策略;③通过案例分析,提供实际操作中的经验和教训。 其他说明:折扣店在制定快消品定价时,应综合考虑多种因素,灵活运用不同的定价策略和技巧,以应对市场变化,提升竞争力。建议企业定期监控市场动态,分析消费者反馈,不断优化定价方案。
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

EQ-雪梨蛋花汤

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值