diff options
| author | Roy Ben-Shabat <Roy@Twine-s.com> | 2018-04-09 18:30:58 +0300 |
|---|---|---|
| committer | Roy Ben-Shabat <Roy@Twine-s.com> | 2018-04-09 18:30:58 +0300 |
| commit | a898decf18c4c0ed56d020dc09df55df1ca0263a (patch) | |
| tree | 66140670047d9ec9d7a0bbeb2851a84868b9515c /Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Speech | |
| parent | 4cd266e13bdb3e27ca77eba3b47278b57a0dcd8d (diff) | |
| download | Tango-a898decf18c4c0ed56d020dc09df55df1ca0263a.tar.gz Tango-a898decf18c4c0ed56d020dc09df55df1ca0263a.zip | |
Lots of changes :/
Diffstat (limited to 'Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Speech')
2 files changed, 102 insertions, 0 deletions
diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Speech/DefaultSpeechProvider.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Speech/DefaultSpeechProvider.cs new file mode 100644 index 000000000..fb34c8086 --- /dev/null +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Speech/DefaultSpeechProvider.cs @@ -0,0 +1,71 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Media; +using System.Speech.Synthesis; +using System.Text; +using System.Threading.Tasks; +using Tango.Core; +using Tango.Core.Helpers; + +namespace Tango.MachineStudio.Common.Speech +{ + /// <summary> + /// Represents the default speech provider. + /// </summary> + /// <seealso cref="Tango.Core.ExtendedObject" /> + /// <seealso cref="Tango.MachineStudio.Common.Speech.ISpeechProvider" /> + public class DefaultSpeechProvider : ExtendedObject, ISpeechProvider + { + private SpeechSynthesizer _speech; + private SoundPlayer _soundPlayer; + private SoundPlayer _soundPlayerErr; + + private bool _mute; + /// <summary> + /// Gets or sets a value indicating whether this <see cref="ISpeechProvider" /> is mute. + /// </summary> + public bool Mute + { + get { return _mute; } + set { _mute = value; RaisePropertyChangedAuto(); } + } + + /// <summary> + /// Initializes a new instance of the <see cref="DefaultSpeechProvider"/> class. + /// </summary> + public DefaultSpeechProvider() + { + _speech = new SpeechSynthesizer(); + _soundPlayer = new SoundPlayer(EmbeddedResourceHelper.GetEmbeddedResourceStream("Tango.MachineStudio.Common.bip.wav")); + _soundPlayerErr = new SoundPlayer(EmbeddedResourceHelper.GetEmbeddedResourceStream("Tango.MachineStudio.Common.error.wav")); + _speech.SelectVoice(_speech.GetInstalledVoices().LastOrDefault(x => x.VoiceInfo.Gender == VoiceGender.Female).VoiceInfo.Name); + } + + /// <summary> + /// Speaks the specified text associated with an information sound. + /// </summary> + /// <param name="text">The text.</param> + public void SpeakInfo(string text) + { + if (!Mute) + { + _soundPlayer.Play(); + _speech.SpeakAsync(text); + } + } + + /// <summary> + /// Speaks the specified text associated with an error sound. + /// </summary> + /// <param name="text">The text.</param> + public void SpeakError(string text) + { + if (!Mute) + { + _soundPlayerErr.Play(); + _speech.SpeakAsync(text); + } + } + } +} diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Speech/ISpeechProvider.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Speech/ISpeechProvider.cs new file mode 100644 index 000000000..eb31bdc39 --- /dev/null +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Speech/ISpeechProvider.cs @@ -0,0 +1,31 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Tango.MachineStudio.Common.Speech +{ + /// <summary> + /// Represents a text to speech engine. + /// </summary> + public interface ISpeechProvider + { + /// <summary> + /// Gets or sets a value indicating whether this <see cref="ISpeechProvider"/> is mute. + /// </summary> + bool Mute { get; set; } + + /// <summary> + /// Speaks the specified text associated with an information sound. + /// </summary> + /// <param name="text">The text.</param> + void SpeakInfo(String text); + + /// <summary> + /// Speaks the specified text associated with an error sound. + /// </summary> + /// <param name="text">The text.</param> + void SpeakError(String text); + } +} |
