DictationRecognizer
UnityEngine.Windows.Speech 类
/
实现于:UnityEngine.CoreModule
建议更改
成功!
感谢您帮助我们提高 Unity 文档的质量。虽然我们无法接受所有提交内容,但我们会阅读用户提出的每个建议的更改,并在适用的情况下进行更新。
关闭
提交失败
由于某些原因,您的建议更改无法提交。请<a>稍后再试</a>。感谢您抽出时间帮助我们提高 Unity 文档的质量。
关闭
描述
DictationRecognizer 监听语音输入并尝试确定说了什么短语。
用户可以注册并监听假设和短语完成事件。Start() 和 Stop() 方法分别启用和禁用语音识别。完成识别器后,必须使用 Dispose() 方法释放其使用的资源。如果在垃圾回收之前没有释放这些资源,它们将在垃圾回收期间自动释放,但这会带来额外的性能成本。
using UnityEditor;
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.Windows.Speech;
public class DictationScript : MonoBehaviour
{
[SerializeField]
private Text m_Hypotheses;
[SerializeField]
private Text m_Recognitions;
private DictationRecognizer m_DictationRecognizer;
void Start()
{
m_DictationRecognizer = new DictationRecognizer();
m_DictationRecognizer.DictationResult += (text, confidence) =>
{
Debug.LogFormat("Dictation result: {0}", text);
m_Recognitions.text += text + "\n";
};
m_DictationRecognizer.DictationHypothesis += (text) =>
{
Debug.LogFormat("Dictation hypothesis: {0}", text);
m_Hypotheses.text += text;
};
m_DictationRecognizer.DictationComplete += (completionCause) =>
{
if (completionCause != DictationCompletionCause.Complete)
Debug.LogErrorFormat("Dictation completed unsuccessfully: {0}.", completionCause);
};
m_DictationRecognizer.DictationError += (error, hresult) =>
{
Debug.LogErrorFormat("Dictation error: {0}; HResult = {1}.", error, hresult);
};
m_DictationRecognizer.Start();
}
}
语音识别目前仅在 Windows 10 上可用,并且要求用户在语音隐私策略中允许语音识别(设置 - > 隐私 - > 语音、墨迹和键入)。如果未启用语音识别,DictationRecognizer 将在 Start 上失败。开发人员可以通过提供 DictationError 委托并测试 SPERR_SPEECH_PRIVACY_POLICY_NOT_ACCEPTED (0x80045509) 来以应用程序特定方式处理此失败。
公共方法
Dispose | 释放此语音识别器使用的资源。 |
Start | 启动语音识别会话。只有在 PhraseRecognitionSystem 未运行的情况下才能启动语音识别器。 |
Stop | 停止语音识别会话。 |