// Copyright (c) Microsoft Corporation. // Licensed under the MIT License. using System.Threading.Tasks; using UnityEngine; namespace Microsoft.MixedReality.Toolkit.Input { /// /// Mixed Reality Toolkit controller definition, used to manage a specific controller type /// public interface IMixedRealityDictationSystem : IMixedRealityInputDeviceManager { /// /// Is the system currently listing for dictation input? /// bool IsListening { get; } /// /// Turns on the dictation recognizer and begins recording audio from the default microphone. /// /// GameObject listening for the dictation input. /// The time length in seconds before dictation recognizer session ends due to lack of audio input in case there was no audio heard in the current session. /// The time length in seconds before dictation recognizer session ends due to lack of audio input. /// Length in seconds for the manager to listen. /// Optional: The microphone device to listen to. void StartRecording(GameObject listener, float initialSilenceTimeout = 5f, float autoSilenceTimeout = 20f, int recordingTime = 10, string micDeviceName = ""); /// /// Turns on the dictation recognizer and begins recording audio from the default microphone. /// /// GameObject listening for the dictation input. /// The time length in seconds before dictation recognizer session ends due to lack of audio input in case there was no audio heard in the current session. /// The time length in seconds before dictation recognizer session ends due to lack of audio input. /// Length in seconds for the manager to listen. /// Optional: The microphone device to listen to. Task StartRecordingAsync(GameObject listener, float initialSilenceTimeout = 5f, float autoSilenceTimeout = 20f, int recordingTime = 10, string micDeviceName = ""); /// /// Ends the recording session. /// void StopRecording(); /// /// Ends the recording session. /// /// AudioClip of the last recording session. Task StopRecordingAsync(); /// /// Get the audio clip associated with the current session. /// AudioClip AudioClip { get; } } }