利用OLAMI在unity游戏中加入中文语音控制(一)

2024-01-25 20:48

本文主要是介绍利用OLAMI在unity游戏中加入中文语音控制(一),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

(欢迎转载。本文源地址:http://blog.csdn.net/speeds3/article/details/76209152)


最近打算尝试一下OLAMI在游戏中应用的可能性,这里做一下记录。

unity官方教程中的几个项目很精简,但看起来很不错,里面有全套的资源。最后我选择了tanks-tutorial来做这个实验。

下载和修改项目

首先按照教程下好项目,把坦克移动和射击的代码加上。这时就已经可以称的上是一个“游戏”了,可以控制坦克在地图上环游,也可以开炮。虽然缺少了挨揍的敌人,但是对设想的用语音控制坦克移动和射击已经足够了。这里我把地图扩大了一些,把坦克的速度降了一些,这样不至于几下就开到了地图的边缘。

修改速度

准备语义理解服务

接下来就可以开始加入语音功能了。OLAMI官网有c#的示例,示例中分别有cloud-speech-recognition和natural-language-understanding两个部分,前者字面意思似乎是语音识别,后者看起来是自然语义理解,里面又分为speech-input和text-input两部分,只是speech-input是空的。看看readme,原来已经包含在cloud-speech-recognition了。由于在这里不关心语音识别,所以就把他俩当作一样使用了,一个对应语音理解,是我们需要的部分,一个对应文字理解,可以用来测试,正好。

把SpeechApiSample.cs和NluApiSample.cs拖入unity里,稍作修改就可以直接使用。

在移动和射击脚本中添加语音控制接口

因为打算实现的方案是语音和键盘混合输入,键盘输入能打断语音控制的输入,所以这里要保存一些状态,记录是否是通过语音在控制行动或转向,以及语音转向的角度和当前已经转过的角度。代码如下:

TankMovement.cs
  // 语音控制中已经转过的角度private float turnAmount = 0f;// 语音控制中希望转到的角度private float turnTarget = 0f;// 记录是否是语音控制移动的状态private bool voiceMove;// 记录是否是语音转向的状态private bool voiceTurn;private void Update () {// Store the value of both input axes.float movement = Input.GetAxis (m_MovementAxisName);if (movement != 0) {voiceMove = false;m_MovementInputValue = movement;} else if (!voiceMove) {m_MovementInputValue = 0f;}float turn = Input.GetAxis (m_TurnAxisName);if (turn != 0) {voiceTurn = false;m_TurnInputValue = turn;} else if (!voiceTurn) {m_TurnInputValue = 0f;}EngineAudio ();}private void Turn () {// Determine the number of degrees to be turned based on the input, speed and time between frames.float turn = m_TurnInputValue * m_TurnSpeed * Time.deltaTime;if (turnTarget != 0) {turnAmount += turn;if (turnTarget > 0) {if (turnAmount > turnTarget) {m_TurnInputValue = 0f;turnTarget = 0f;turnAmount = 0f;voiceTurn = false;}} el

这篇关于利用OLAMI在unity游戏中加入中文语音控制(一)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/644561

相关文章

Spring Security 基于表达式的权限控制

前言 spring security 3.0已经可以使用spring el表达式来控制授权,允许在表达式中使用复杂的布尔逻辑来控制访问的权限。 常见的表达式 Spring Security可用表达式对象的基类是SecurityExpressionRoot。 表达式描述hasRole([role])用户拥有制定的角色时返回true (Spring security默认会带有ROLE_前缀),去

中文分词jieba库的使用与实景应用(一)

知识星球:https://articles.zsxq.com/id_fxvgc803qmr2.html 目录 一.定义: 精确模式(默认模式): 全模式: 搜索引擎模式: paddle 模式(基于深度学习的分词模式): 二 自定义词典 三.文本解析   调整词出现的频率 四. 关键词提取 A. 基于TF-IDF算法的关键词提取 B. 基于TextRank算法的关键词提取

阿里开源语音识别SenseVoiceWindows环境部署

SenseVoice介绍 SenseVoice 专注于高精度多语言语音识别、情感辨识和音频事件检测多语言识别: 采用超过 40 万小时数据训练,支持超过 50 种语言,识别效果上优于 Whisper 模型。富文本识别:具备优秀的情感识别,能够在测试数据上达到和超过目前最佳情感识别模型的效果。支持声音事件检测能力,支持音乐、掌声、笑声、哭声、咳嗽、喷嚏等多种常见人机交互事件进行检测。高效推

让树莓派智能语音助手实现定时提醒功能

最初的时候是想直接在rasa 的chatbot上实现,因为rasa本身是带有remindschedule模块的。不过经过一番折腾后,忽然发现,chatbot上实现的定时,语音助手不一定会有响应。因为,我目前语音助手的代码设置了长时间无应答会结束对话,这样一来,chatbot定时提醒的触发就不会被语音助手获悉。那怎么让语音助手也具有定时提醒功能呢? 我最后选择的方法是用threading.Time

国产游戏崛起:技术革新与文化自信的双重推动

近年来,国产游戏行业发展迅猛,技术水平和作品质量均得到了显著提升。特别是以《黑神话:悟空》为代表的一系列优秀作品,成功打破了过去中国游戏市场以手游和网游为主的局限,向全球玩家展示了中国在单机游戏领域的实力与潜力。随着中国开发者在画面渲染、物理引擎、AI 技术和服务器架构等方面取得了显著进展,国产游戏正逐步赢得国际市场的认可。然而,面对全球游戏行业的激烈竞争,国产游戏技术依然面临诸多挑战,未来的

vscode中文乱码问题,注释,终端,调试乱码一劳永逸版

忘记咋回事突然出现了乱码问题,很多方法都试了,注释乱码解决了,终端又乱码,调试窗口也乱码,最后经过本人不懈努力,终于全部解决了,现在分享给大家我的方法。 乱码的原因是各个地方用的编码格式不统一,所以把他们设成统一的utf8. 1.电脑的编码格式 开始-设置-时间和语言-语言和区域 管理语言设置-更改系统区域设置-勾选Bata版:使用utf8-确定-然后按指示重启 2.vscode

AI(文生语音)-TTS 技术线路探索学习:从拼接式参数化方法到Tacotron端到端输出

AI(文生语音)-TTS 技术线路探索学习:从拼接式参数化方法到Tacotron端到端输出 在数字化时代,文本到语音(Text-to-Speech, TTS)技术已成为人机交互的关键桥梁,无论是为视障人士提供辅助阅读,还是为智能助手注入声音的灵魂,TTS 技术都扮演着至关重要的角色。从最初的拼接式方法到参数化技术,再到现今的深度学习解决方案,TTS 技术经历了一段长足的进步。这篇文章将带您穿越时

控制反转 的种类

之前对控制反转的定义和解释都不是很清晰。最近翻书发现在《Pro Spring 5》(免费电子版在文章最后)有一段非常不错的解释。记录一下,有道翻译贴出来方便查看。如有请直接跳过中文,看后面的原文。 控制反转的类型 控制反转的类型您可能想知道为什么有两种类型的IoC,以及为什么这些类型被进一步划分为不同的实现。这个问题似乎没有明确的答案;当然,不同的类型提供了一定程度的灵活性,但

火柴游戏java版

代码 /*** 火柴游戏* <p>* <li>有24根火柴</li>* <li>组成 A + B = C 等式</li>* <li>总共有多少种适合方式?</li>* <br>* <h>分析:</h>* <li>除去"+"、"="四根,最多可用火柴根数20根。</li>* <li>全部用两根组合成"1",最大数值为1111。使用枚举法,A和B范围在0~1111,C为A+B。判断</li>** @

基于人工智能的智能家居语音控制系统

目录 引言项目背景环境准备 硬件要求软件安装与配置系统设计 系统架构关键技术代码示例 数据预处理模型训练模型预测应用场景结论 1. 引言 随着物联网(IoT)和人工智能技术的发展,智能家居语音控制系统已经成为现代家庭的一部分。通过语音控制设备,用户可以轻松实现对灯光、空调、门锁等家电的控制,提升生活的便捷性和舒适性。本文将介绍如何构建一个基于人工智能的智能家居语音控制系统,包括环境准备