科大讯飞-语音唤醒 Windows

语音唤醒(Voice Wakeuper)通过辨别输入的音频中特定的词语(如“讯飞语点”),返回被命中(唤醒)结果,应用通过回调的结果,进行下一步的处理,如点亮屏幕,或与用户进行语音交互等。唤醒资源中含有一个或多个资源,只要命中其中一个,即可唤醒。需下载使用对应的语音唤醒SDK。

语音唤醒详细的接口介绍及说明请参考: MSC Windows API 文档 , 在集成过程中如有疑问,可登录讯飞开放平台论坛 ,查找答案或与其他开发者交流。

注:支持Windows XP以上系统版本,开发环境建议使用VS2010版本,暂不兼容VS2017版本。

需要先在科大讯飞后台进行唤醒词的设置,目前支持中文和英文。唤醒词设置最多支持8个,每个为4-6个汉字或不超过2个英文单词。中英文不可同时配置。

另外该服务为付费项目,需要向科大讯飞购买服务。

设置成功后,下载sdk:

awaken_sample为唤醒功能项目,进入awaken_sample.c:

有两种方式唤醒,一种直接按音频解析,一种走mic,样例代码默认为音频,需要稍微修改下按mic进行处理。

代码直接运行:

,然后从麦克风喊:小沙小沙 则出现下列内容:

出现wakeup:ivm param内容则证明从麦克风喊入的命令有效,此时就可以结合语言:java C#做其他功能了

提供的引用内容未涉及在Windows系统下Unity接入科大讯飞新版语音唤醒功能的方法。不过,一般而言,在Windows系统下Unity接入科大讯飞新版语音唤醒功能可按以下通用步骤进行: ### 1. 注册与获取SDK 前往科大讯飞开放平台注册账号,创建应用以获取对应的AppID和密钥。然后下载适用于Windows平台的最新语音唤醒SDK。 ### 2. 配置Unity项目 将下载的SDK文件导入到Unity项目中。通常要把相关的dll文件、头文件等放置在Unity项目的合适目录,像Plugins文件夹。 ### 3. 初始化SDK 在Unity中编写脚本,对SDK进行初始化操作。这需要调用SDK提供的初始化函数,同时传入之前获取的AppID和密钥。示例代码如下: ```csharp using System.Collections; using System.Collections.Generic; using UnityEngine; using IFlytek.Speech; public class VoiceWakeupInit : MonoBehaviour { void Start() { // 初始化SDK int ret = SpeechUtility.CreateUtility("appid=your_appid"); if (ret != (int)ErrorCode.MSP_SUCCESS) { Debug.LogError("初始化失败,错误码: " + ret); } else { Debug.Log("初始化成功"); } } } ``` ### 4. 配置语音唤醒参数 依据需求配置语音唤醒的相关参数,例如唤醒词、灵敏度等。示例代码如下: ```csharp using IFlytek.Speech; public class VoiceWakeupConfig : MonoBehaviour { private Wakeuper mWakeuper; void Start() { mWakeuper = new Wakeuper(); // 配置唤醒参数 mWakeuper.SetParameter("ivw_threshold", "0:1450"); // 灵敏度设置 mWakeuper.SetParameter("ivw_res_path", "fo|res/ivw/wakeupresource.jet"); // 唤醒资源路径 } } ``` ### 5. 启动语音唤醒功能 在Unity中编写脚本以启动语音唤醒功能。示例代码如下: ```csharp using IFlytek.Speech; public class VoiceWakeupStart : MonoBehaviour { private Wakeuper mWakeuper; void Start() { mWakeuper = new Wakeuper(); // 启动唤醒 mWakeuper.StartListening(OnWakeupResult); } private void OnWakeupResult(string result) { Debug.Log("唤醒结果: " + result); } } ``` ### 6. 处理唤醒结果 在回调函数里处理语音唤醒的结果。示例代码如下: ```csharp private void OnWakeupResult(string result) { if (!string.IsNullOrEmpty(result)) { // 处理唤醒结果 Debug.Log("唤醒成功,结果: " + result); } else { Debug.Log("未唤醒"); } } ``` ### 7. 停止语音唤醒功能 在不需要语音唤醒功能时,停止该功能。示例代码如下: ```csharp public class VoiceWakeupStop : MonoBehaviour { private Wakeuper mWakeuper; void StopWakeup() { if (mWakeuper != null) { mWakeuper.StopListening(); } } } ``` ### 8. 错误处理 在整个过程中,要对可能出现的错误进行处理,保证程序的稳定性。示例代码如下: ```csharp private void OnWakeupError(int errorCode) { Debug.LogError("唤醒出错,错误码: " + errorCode); } ``` 以上步骤和代码示例为通用的接入方法,实际操作时要依据科大讯飞最新的SDK文档和API进行调整。
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值