Unity3D 交互式AI桌面宠物开发系列【二】ivw 语音唤醒
该系列主要介绍怎么制作AI桌面宠物的流程,我会从项目开始创建初期到最终可以和AI宠物进行交互为止,项目已经开发完成,我会仔细梳理一下流程,分步讲解。 这篇文章主要讲有关于语音唤醒ivw方面的一些方法。
提示:内容纯个人编写,欢迎评论点赞,来指正我。
文章目录
- [Unity3D 交互式AI桌面宠物开发系列【二】ivw 语音唤醒](#Unity3D 交互式AI桌面宠物开发系列【二】ivw 语音唤醒)
- 前言
- 一、什么是ivw语音唤醒?
- [二、Unity 内置语音唤醒 API](#二、Unity 内置语音唤醒 API)
- 三、讯飞ivw语音唤醒接入本地版
-
- [1. 注册账号](#1. 注册账号)
- [2. 领取免费测试包](#2. 领取免费测试包)
- [3. 创建应用](#3. 创建应用)
- [4. 设置唤醒词](#4. 设置唤醒词)
- [5. 生成SDK](#5. 生成SDK)
- [6. 下载插件包](#6. 下载插件包)
- [7. 替换SDK库](#7. 替换SDK库)
- [8. 修改配置](#8. 修改配置)
- [9. 运行程序](#9. 运行程序)
- [10. 大功告成!!!](#10. 大功告成!!!)
- 总结
前言
本篇内容主要讲Unity开发桌面宠物语音唤醒功能,大家感兴趣也可以了解一下这个开发方向,目前还是挺有前景的,AI智能科技发展这么迅猛,紧跟步伐哈~
下面让我们出发吧 ------------>----------------->
一、什么是ivw语音唤醒?
顾名思义,就是用户可以通过使用指定关键词来让桌面宠物做某件事或者有某种响应。原理即是通过实时监听用户语音,来检测其中是否含有指定关键词,监听到之后绑定某个事件。

二、Unity 内置语音唤醒 API
1.API讲解
- KeywordRecognizer类
- 引入命名空间 using UnityEngine.Windows.Speech;
- 通过 Windows 系统自带的一个dll库,在Unity封装后可以轻松使用
2.方法讲解
- private string[] m_Keywords = { "小姐姐" };
首先声明一个关键词数组- private KeywordRecognizer m_Recognizer;
然后创建一个关键词识别器- m_Recognizer.OnPhraseRecognized += OnPhraseRecognized;
然后给识别器绑定一个用户的自定义事件- m_Recognizer.Start();
这个是识别器的打开方法- m_Recognizer.Stop();
这个是识别器的关闭方法
2.方法封装
- 直接上代码,前面讲解过使用大概方法了
csharp
using System.Collections;
using System.Collections.Generic;
using System.Text;
using UnityEngine;
#if UNITY_STANDALONE_WIN
using UnityEngine.Windows.Speech;
#endif
/// <summary>
/// unity内置语音唤醒 windows有效
/// </summary>
public class UnityWakeOnVoice : MonoBehaviour
{
/// <summary>
/// 关键词
/// </summary>
[SerializeField]
private string[] m_Keywords = { "小姐姐" };
/// <summary>
/// 关键字识别器
/// </summary>
#if UNITY_STANDALONE_WIN
private KeywordRecognizer m_Recognizer;
void Start()
{
//创建一个关键字识别器
m_Recognizer = new KeywordRecognizer(m_Keywords);
Debug.Log("创建识别器成功");
m_Recognizer.OnPhraseRecognized += OnPhraseRecognized;
}
/// <summary>
/// 开始识别
/// </summary>
public void StartRecognizer()
{
if (m_Recognizer == null)
return;
if (!m_Recognizer.IsRunning)
{
m_Recognizer.Start();
}
}
/// <summary>
/// 结束识别
/// </summary>
public void StopRecognizer()
{
if (m_Recognizer == null)
return;
if (m_Recognizer.IsRunning)
{
m_Recognizer.Stop();
}
}
/// <summary>
/// 识别关键词回调
/// </summary>
/// <param name="args"></param>
private void OnPhraseRecognized(PhraseRecognizedEventArgs args)
{
StringBuilder builder = new StringBuilder();
builder.AppendFormat("{0}", args.text);
string _keyWord = builder.ToString();
Debug.Log("识别器捕捉到关键词:"+_keyWord);
}
private void OnDestroy()
{
if (m_Recognizer != null)
{
m_Recognizer.OnPhraseRecognized -= OnPhraseRecognized;
if (m_Recognizer.IsRunning)
{
m_Recognizer.Stop();
}
m_Recognizer.Dispose();
m_Recognizer = null;
}
}
#endif
}
- 代码很简单,根据需求直接调用Start方法开始识别,Stop进行关闭就可以了
- 重点来了,第三方平台的唤醒怎么接入,下面来看一下讯飞平台的吧
三、讯飞ivw语音唤醒接入本地版
1. 注册账号

- 注册讯飞账号,新用户有免费的服务量可以用来测试。注册完登录点击控制台
2. 领取免费测试包

- 按需求领取,领测试包,我的是二级测试包,新人也有不一样的包,领语音唤醒的包
3. 创建应用
- 点击用户下面的 "我的应用" 然后创建应用,命名语音唤醒的应用,创建成功后会生成一个APPKey或者APPID 保存好。
4. 设置唤醒词

-自己随便设置唤醒词,最好是不要加标点,可以同时设置好几个。

-点击前往SDK下载中心
5. 生成SDK

- 一定要先点回到旧版,新版没有普通的语音唤醒的,根据需求选择,可能和我的界面不一样,没关系,选择语音唤醒的包,点击下载。如果提示设置唤醒词,就再去设置一下。
6. 下载插件包
7. 替换SDK库
- 打开自己下载的讯飞的语音唤醒的SDK包
- 找到bin文件下的 msc_x64.dll 和msc.dll 分别是64位和32位的库,对应系统装

- 将Unity中的msc_x64的库替换成自己的,直接粘贴替换
8. 修改配置

-修改脚本中的APPId为自己创建应用生成的APPId
9. 运行程序

-运行程序,大声喊出你在平台设置的关键词,然后看控制台是否有打印,成功的回调事件自行扩展哦~ 我测试是成功的。
10. 大功告成!!!

比心啦 ❥(^_-)
语音唤醒功能就实现啦!
二选一 总有你喜欢的!!!
总结
- 提示: 大家根据需求来做功能,后续继续其他功能啦,不懂的快喊我。
- 大家可以在评论区讨论其他系列下一期出什么内容,这个系列会继续更新的
- 点赞收藏加关注哦~ 蟹蟹