UXR2.0离线语音指令交互

确保RECORD_AUDIO 权限

在Awake 时,需要首先确认录音权限已经申请成功。

private void Awake()
{
    if (!Permission.HasUserAuthorizedPermission("android.permission.RECORD_AUDIO"))
    {
        Permission.RequestUserPermission("android.permission.RECORD_AUDIO");
    }
}

初始化离线语音指令服务

在获取权限之后,使用离线语音指令之前需要对离线语音指令服务进行初始化,并且确定要使用的语言类型。

void Start()
{
    ModuleManager.Instance.RegistModule("com.rokid.voicecommand.VoiceCommandHelper", false);
    OfflineVoiceModule.Instance.ChangeVoiceCommandLanguage(LANGUAGE.CHINESE);
    //OfflineVoiceModule.Instance.ChangeVoiceCommandLanguage(LANGUAGE.ENGLISH);
}

编写监听

语音指令可以通过监听的方式获取,回调参数为被识别到的字符串。

public void OnReceive(string msg)
{
    if(string.Equals(command, msg))
    {
        //TODO("Do some things")
    }
}

注册离线语音指令

在确保离线语音指令服务初始化后,就可以在生命周期内对离线语音指令进行注册。注意离线语音指令需要在生命周期内完成注册,并且在注册完成之后需要通过Commit 进行提交。以在Start 生命周期为例:

void Start()
{
    OfflineVoiceModule.Instance.AddInstruct(LANGUAGE.ENGLISH, "show blue", null, this.gameObject.name, "OnReceive");

    OfflineVoiceModule.Instance.AddInstruct(LANGUAGE.CHINESE, "变成蓝色", "bian cheng lan se", this.gameObject.name, "OnReceive");

    OfflineVoiceModule.Instance.Commit();
}

解注册离线语音指令

离线语音指令需要在使用完成后完成解注册,在remove 指令之后,同样也需要通过Commit 进行提交。以下以在OnDestroy 生命周期为例:

private void OnDestroy()
{
    OfflineVoiceModule.Instance.ClearAllInstruct();
    OfflineVoiceModule.Instance.Commit();
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

soso1968

你的鼓励是我继续创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值