dz比wordpress速度快,优化网站的方法有哪些,福建建设工程招投标信息网,视频网站如何做营销策划一、背景 最近使用unity开发语音交互内容的时候#xff0c;遇到了这样的需求#xff0c;就是需要使用语音关键字来唤醒应用程序#xff0c;然后再和程序做交互#xff0c;有点像智能音箱的意思。具体的技术方案方面#xff0c;也找了一些第三方的服务#xff0c;比如百度… 一、背景 最近使用unity开发语音交互内容的时候遇到了这样的需求就是需要使用语音关键字来唤醒应用程序然后再和程序做交互有点像智能音箱的意思。具体的技术方案方面也找了一些第三方的服务比如百度AI开放平台讯飞开放平台等这些都提供有语音唤醒的服务基本上能够满足我的项目开发需求。 不过我是想先找一个免费且可以离线的方案的从huggingface上倒是可以找到一些开源的模型可以做到包括在github上也找到一些开源项目比如snowboy。但是自己去部署服务的方式我还是觉得有点重又想白嫖又想简单呵呵。 后来发现其实unity本身就带有一个库可能实现关键词的语音识别也就是【UnityEngine.Windows.Speech】这个库是可以做到设定关键词然后通过语音识别判断是否说的是设定的关键词。有了这个就可以制作一个又简单又能白嫖的离线关键词识别了。当然这里要注意这个库只能在windows平台使用。 二、代码实现 废话少说直接上代码
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_WINprivate KeywordRecognizer m_Recognizer;// Use this for initializationvoid Start(){//创建一个关键字识别器m_Recognizer new KeywordRecognizer(m_Keywords);Debug.Log(创建识别器成功);m_Recognizer.OnPhraseRecognized OnPhraseRecognized;}/// summary/// 开始识别/// /summarypublic void StartRecognizer(){if (m_Recognizer null)return;m_Recognizer.Start();}/// summary/// 结束识别/// /summarypublic void StopRecognizer(){if (m_Recognizer null)return;m_Recognizer.Stop();}/// summary/// 识别到关键词/// /summary/// param nameargs/paramprivate void OnPhraseRecognized(PhraseRecognizedEventArgs args){StringBuilder builder new StringBuilder();builder.AppendFormat({0}, args.text);string _keyWord builder.ToString();Debug.Log(识别器捕捉到关键词_keyWord);}#endif
}这里还有一点要注意这个关键词识别库只有当你准确的说出某个关键词时才能触发识别事件 一句话里包含关键词实测是没能检测出来的。 三、结束语 这个示例已经用在我的一个AI二次元女友的项目里可以实现在windows平台的实时语音唤醒和对话的功能感兴趣的朋友可以移步到B站收看实际效果相关代码已经开源咯。 [UnityAI聊天]语音唤醒AI二次元老婆实时聊天摆脱键盘开始聊嗨~