【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点施法,随便说点啥,我这里说的是旋风

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

 

### Quest3 设备语音文本功能使用方法 对于希望在 Oculus Quest 3 (Quest 3) 上实现语音文本的应用开发者而言,可以考虑采用类似 Whisper.Unity 这样的解决方案来集成强大的语音识别能力[^2]。具体来说: - **环境搭建**:确保开发环境中安装了最新版本的 Unity 和必要的 SDK 支持。由于 Whisper.Unity 基于 Unity3D 构建,因此兼容性良好。 - **导入项目**:下载并解压 Whisper.Unity 开源项目文件至本地计算机,随后将其作为插件形式引入到现有的或新建的 Unity 工程当中。 - **配置参数**:根据实际需求调整项目的设置选项,例如目标平台选择为 Android(适用于 Quest 3),以及指定所使用的音频输入设备等细节。 - **编写脚本**:为了使应用程序能够响应用户的口头指令并将之换成文字输出,需创建相应的 C# 脚本来调用 Whisper.Unity 提供的核心 API 函数。下面给出一段简单的代码片段用于展示如何捕捉麦克风传入的声音流并执行即时翻译操作。 ```csharp using UnityEngine; using WhisperUnity; public class VoiceToText : MonoBehaviour { private Whisper whisper; void Start() { // 初始化 Whisper 实例 whisper = new Whisper(); // 设置回调函数以接收最终结果 whisper.OnTranscription += OnReceiveTranscription; // 启动监听服务 whisper.StartListening(); } void OnReceiveTranscription(string transcription) { Debug.Log($"Recognized Text: {transcription}"); } } ``` 通过上述方式,便可以在 Quest 3 平台上顺利部署一套高效的语音写系统,从而极大地提升了虚拟现实体验中的互动性和便捷度。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值