当前位置: 首页 > news >正文

【Quest开发】接入语音转文字

参考官方文档:https://developers.meta.com/horizon/documentation/unity/voice-sdk-tutorials-overview

软件:Unity 2022.3.51f1c1、vscode、Meta XR All in One SDK V72

硬件:Meta Quest3

注意:需全程科学上网

Meta提供了一个免费的api供大家使用— Wit.ai

这个也是云端把结果发回客户端,所以需要联网。 我最后实现的效果也很基础,只是获取了它转出来的文字而已

使用步骤:

一、在wit.ai登录自己的账号创建一个APP(就是meta账号)

找到Settings复制Server token

 

界面里的其他东西属于高阶用法,涉及到语音内容理解,我这里暂时不展开解释,语音转文字功能也不需要配置这个。有兴趣的同学看一下官方文档,大概就是能使用语音命令来程序化生成、改变一些东西吧,理解语音里的关键词

https://developers.meta.com/horizon/documentation/unity/voice-sdk-tutorials-2

 二、配置Unity里的内容

Meta XR All in One SDK本身是包含Voice SDK的,所以不需要额外导入

1、点击GetStarted界面初始化语音资产,将上一步复制的token粘贴上去

 创建后会让你取个名字啥的把asset保存下来,我这里随便取的名字存到了根目录

2、打开Project Settings > Player找到Other Settings进行如下配置

选择 IL2CPP 将构建切换为 64 位 IL2CPP

对于 Android 应用,在 Configuration 下的 Internet  access 列表中,选择 Require ,以防止返回 NameResolutionFailure 错误。

3、打开voice hub检查一下是否自动进行了配置,配置好的应该长这样

没配置好也没关系,把之前创建的asset拖进去就行了

三、在场景中添加脚本

这里有两种选择

1、BuildingBlocks直接添加

但是博主还没有测试过这个方法怎么获得转出的文本,这里先不展开讲

2、 在左上角找到Assets > Create > Voice SDK > Add App Voice Experience to Scene

得到这样一个物体

大家这个时候可以连上头盔测一下能否正常运行(用模拟器讲话是不会有反应的!!!),运行后App Voice Experience里会出现下面这个东西,点activate

点击后说话。注意超过设定时间(MaxRecordingTime)就会自动关闭

说完点Deactivate或者等一会就会自动关 

有时候会检测不出来,大家可以重试几次试试,有一次能成功都说明配置没问题,可能是网络不好。

四、自定义脚本调用api

using System.Collections;
using System.Collections.Generic;
using Meta.XR.BuildingBlocks.Editor;
using Oculus.Voice;
using Oculus.Voice.Dictation;
using UnityEngine;
using UnityEngine.UI;public class TranscriptionTest : MonoBehaviour
{public AppVoiceExperience appVoiceExperience;[ContextMenu("施法")]public void ReleaseSkill(){appVoiceExperience.Activate();appVoiceExperience.TranscriptionEvents.OnPartialTranscription.AddListener(Test);}public void Test(string content){Debug.Log("Speak:"+content);}
}

很简单的一个脚本,功能就是在Inspector点一下能输出说话内容到console里而已,挂在哪都行,我这里直接挂在App Voice Experience上了

连着头盔运行后稍等一会(因为App Voice Experience连接服务器需要一段时间),右键单击TranscriptionTest点施法,随便说点啥,我这里说的是旋风

会输出这一串就成功咯,可以看到它正确识别出了旋风

 

相关文章:

  • C 语言比较运算符:程序如何做出“判断”?
  • 售前赢单评分是越权吗?
  • C++ 中二级指针的正确释放方法
  • Kubernetes排错(九)-节点排错
  • 智能体四项关键技术:MCP、A2A、ANP与函数调用的深度解析
  • 虚拟dom是什么,他有什么好处
  • 【YOLO11改进】改进Conv、颈部网络STFEN、以及引入PIOU用于小目标检测!
  • 基于 jQuery 实现复选框全选与选中项查询功能
  • Python实例题:Python法拍网数据
  • C与指针——常见库函数
  • 51单片机入门教程——蜂鸣器播放天空之城
  • AI小智本地前后端部署
  • mysql-索引特性和事务管理
  • 分析atoi(),atol()和atof()三个函数的功能
  • C语言高频面试题——嵌入式系统去访问某特定的内存位置
  • 技术犯规计入个人犯规吗·棒球1号位
  • 2022年408真题及答案
  • 国内短剧 vs. 海外短剧系统:如何选择?2025年深度对比与SEO优化指南
  • RAGEN 简介:基于强化学习的智能体生成; StarPO框架:状态 - 思考 - 行动 - 奖励策略
  • 架构进阶:什么是数据架构,如何理解数据架构?(华为)
  • 上海飞银川客机触地复飞后备降西安,亲历者:不少乘客都吐了
  • 怎样正确看待体脂率数据?或许并不需要太“执着”
  • 以色列计划“占领加沙”,特朗普下周中东行结束之际将是“机会窗口”
  • 青岛双星名人集团董事长发公开信称家人逼迫交出管理权?公司回应
  • 胖东来关闭官网内容清空?工作人员:后台维护升级
  • “五一”假期国内出游3.14亿人次,国内游客出游总花费1802.69亿元