Unity 中使用Windows语音识别功能

怎么样在Unity中调用Windows的语音识别API呢?

语音识别逻辑:

(1)开始语音识别

(2)获得语音识别结果

(3)将语音识别结果显示在Unity的Text文本中

前置条件:

打开Windows的语音识别功能

1,Unity中创建开始按钮和停止按钮,以及两个文本

2,创建以下脚本,且进行挂载,添加实例。

//需要在windows的辅助功能中打开语音识别

using UnityEngine;
using UnityEngine.UI;
using UnityEngine.Windows.Speech;
 
public class DictationScript : MonoBehaviour
{
    public Text hypothesesText;//显示输入过程中猜想结果的
    public Text recognitionsText;//显示识别结果的
    public Button startBtn;
    public Button stopBtn;
 
    private DictationRecognizer dictationRecognizer;
 
    void Start()
    {
        dictationRecognizer = new DictationRecognizer();
 
        dictationRecognizer.DictationResult += OnDictationResult;
        dictationRecognizer.DictationHypothesis += OnDictationHypothesis;
        dictationRecognizer.DictationComplete += OnDictationComplete;
        dictationRecognizer.DictationError += OnDictationError;
 
        //dictationRecognizer.Start();
        startBtn.onClick.AddListener(DictationStart);
        stopBtn.onClick.AddListener(DictionStop);
    }
 
    private void OnDestroy()
    {
        dictationRecognizer.Stop();
        dictationRecognizer.Dispose();
    }
 
    /// <summary>
    /// 语音识别结果
    /// </summary>
    /// <param name="text">识别结果</param>
    /// <param name="confidence"></param>
    private void OnDictationResult(string text, ConfidenceLevel confidence)
    {
        Debug.LogFormat("识别结果: {0}", text);
        recognitionsText.text = text;
 
        DictionStop();//我是希望得到结果就自动停止输入
    }
 
    /// <summary>
    /// 语音输入过程中对结果猜想时触发的事件。
    /// </summary>
    /// <param name="text">识别猜想</param>
    private void OnDictationHypothesis(string text)
    {
        Debug.LogFormat("识别猜想: {0}", text);
        hypothesesText.text = text;
    }
 
    private void OnDictationComplete(DictationCompletionCause cause)
    {
        if (cause != DictationCompletionCause.Complete)
            Debug.LogErrorFormat("识别失败: {0}.", cause);
    }
 
    private void OnDictationError(string error, int hresult)
    {
        Debug.LogErrorFormat("识别错误: {0}; HResult = {1}.", error, hresult);
    }
 
    /// <summary>
    /// 开启听写识别会话
    /// </summary>
    public void DictationStart()
    {
        dictationRecognizer.Start();
        startBtn.gameObject.SetActive(false);
        stopBtn.gameObject.SetActive(true);
    }
 
    /// <summary>
    /// 结束听写识别会话
    /// </summary>
    public void DictionStop()
    {
        dictationRecognizer.Stop();
        startBtn.gameObject.SetActive(true);
        stopBtn.gameObject.SetActive(false);
    }
 
}

  • 6
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Unity科大讯飞语音识别是基于科大讯飞AIUI平台的一种人机交互解决方案。它整合了语音唤醒、语音识别、语义理解、内容平台、语音合成等能力。默认情况下,Unity科大讯飞语音识别自带语音识别功能。如果需要让AIUI回答你的问题,则需要开启语义理解。如果需要有声音输出,则需要开启语音合成。开启SDK时,可以返回语义理解和语音合成的数据。关于Unity科大讯飞语音识别的具体配置,可以参考<meta-data android:name="unityplayer.UnityActivity" android:value="true"/>这个设置。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [unity接入讯飞AIUI(Windows SDK)](https://blog.csdn.net/weixin_41132607/article/details/130575204)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [Unity接入科大讯飞的语音sdk](https://blog.csdn.net/u011721655/article/details/81169910)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值