Описание
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 и требует, чтобы диктовка была разрешена в политике конфиденциальности пользователя (Settings->Privacy->Speech, рукописный ввод и ввод). Если диктовка не включена, DictationRecognizer завершится ошибкой при Start Разработчики могут справиться с этой ошибкой в зависимости от приложения, предоставив делегат DictationError и проверив SPERR_SPEECH_PRIVACY_POLICY_NOT_ACCEPTED (0x80045509).
Свойства
AutoSilenceTimeoutSeconds |
Продолжительность времени в секундах до завершения сеанса распознавания диктовки из-за отсутствия аудиовхода. |
InitialSilenceTimeoutSeconds |
Продолжительность времени в секундах до завершения сеанса распознавателя диктовки из-за отсутствия аудиовхода, если в текущем сеансе не было слышно звука. |
Status |
Указывает состояние распознавателя диктовки. |
Конструкторы
DictationRecognizer |
Создаёт DictationRecognizer с указанной минимальной достоверностью и ограничением темы диктовки. Фразы ниже указанного минимального уровня будут игнорироваться. |
Публичные Методы
Dispose |
Удаляет ресурсы, которые использует этот распознаватель диктовки. |
Start |
Запускает сеанс распознавания диктовки. Распознаватель диктовки можно запустить только в том случае, если PhraseRecognitionSystem не запущена. |
Stop |
Останавливает сеанс распознавания диктовки. |
События
DictationComplete |
Событие, которое запускается после завершения сеанса распознавателя. |
DictationError |
Событие, которое запускается, когда сеанс распознавателя обнаруживает ошибку. |
DictationHypothesis |
Событие, которое срабатывает, когда распознаватель меняет свою гипотезу для текущего фрагмента. |
DictationResult |
Событие, указывающее, что фраза была распознана с заданным уровнем достоверности. |
Делегаты