Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / WIN_WINDOWS / lh_tools_devdiv_wpf / Windows / wcp / Speech / Src / Internal / Synthesis / SpeakInfo.cs / 1 / SpeakInfo.cs
//------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // // // Each Speak calls is stored in a Speak info object. // // History: // 2/1/2005 jeanfp Created from the Sapi Managed code //----------------------------------------------------------------- using System; using System.Collections.Generic; using System.IO; using System.Globalization; using System.Speech.Synthesis; using System.Speech.Synthesis.TtsEngine; #pragma warning disable 1634, 1691 // Allows suppression of certain PreSharp messages. #pragma warning disable 56524 // The _voiceSynthesis member is not created in this module and should not be disposed namespace System.Speech.Internal.Synthesis { internal sealed class SpeakInfo { //******************************************************************* // // Constructors // //******************************************************************* #region Constructors ////// /// Voice synthesizer used /// Default engine to use internal SpeakInfo (VoiceSynthesis voiceSynthesis, TTSVoice ttsVoice) { _voiceSynthesis = voiceSynthesis; _ttsVoice = ttsVoice; } #endregion //******************************************************************** // // Internal Properties // //******************************************************************* #region Internal Properties internal TTSVoice Voice { get { return _ttsVoice; } } #endregion //******************************************************************** // // Internal Methods // //******************************************************************** #region Internal Methods internal void SetVoice (string name, CultureInfo culture, VoiceGender gender, VoiceAge age, int variant) { TTSVoice ttsVoice = _voiceSynthesis.GetEngine (name, culture, gender, age, variant, false); if (!ttsVoice.Equals (_ttsVoice)) { _ttsVoice = ttsVoice; _fNotInTextSeg = true; } } internal void AddAudio (AudioData audio) { AddNewSeg (null, audio); _fNotInTextSeg = true; } internal void AddText (TTSVoice ttsVoice, TextFragment textFragment) { if (_fNotInTextSeg || ttsVoice != _ttsVoice) { AddNewSeg (ttsVoice, null); _fNotInTextSeg = false; } _lastSeg.AddFrag (textFragment); } #if SPEECHSERVER || PROMPT_ENGINE internal void AddPexml (TTSVoice ttsVoice, TextFragment textFragment) { AddText (ttsVoice, textFragment); _lastSeg.ContainsPrompEngineFragment = true; } #endif internal SpeechSeg RemoveFirst () { SpeechSeg speechSeg = null; if (_listSeg.Count > 0) { speechSeg = _listSeg [0]; _listSeg.RemoveAt (0); } return speechSeg; } #endregion //******************************************************************* // // Private Method // //******************************************************************** #region Private Method private void AddNewSeg (TTSVoice pCurrVoice, AudioData audio) { SpeechSeg pNew = new SpeechSeg (pCurrVoice, audio); _listSeg.Add (pNew); _lastSeg = pNew; } #endregion //******************************************************************* // // Private Fields // //******************************************************************* #region private Fields // default TTS voice private TTSVoice _ttsVoice; // If true then a new segment is required for the next Add Text private bool _fNotInTextSeg = true; // list of segments (text or audio) private List_listSeg = new List (); // current segment private SpeechSeg _lastSeg; // Reference to the VoiceSynthesizer that created it private VoiceSynthesis _voiceSynthesis; #endregion } //******************************************************************* // // Private Types // //******************************************************************** #region Private Types class AudioData : IDisposable { internal AudioData (Uri uri, ResourceLoader resourceLoader) { _uri = uri; _resourceLoader = resourceLoader; Uri baseAudio; _stream = _resourceLoader.LoadFile (uri, out _mimeType, out baseAudio, out _localFile); } /// /// Needed by IEnumerable!!! /// public void Dispose () { Dispose (true); GC.SuppressFinalize (this); } ~AudioData () { Dispose (false); } internal Uri _uri; internal string _mimeType; internal Stream _stream; protected virtual void Dispose (bool disposing) { if (disposing) { // unload the file from the cache if (_localFile != null) { _resourceLoader.UnloadFile (_localFile); } if (_stream != null) { _stream.Dispose (); _stream = null; _localFile = null; _uri = null; } } } private string _localFile; private ResourceLoader _resourceLoader; } enum VOICEACTIONS { VA_NONE, VA_SPEAK, VA_LOAD_DB, VA_UNLOAD_DB, VA_SET_BACKUP } #endregion } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // // // Each Speak calls is stored in a Speak info object. // // History: // 2/1/2005 jeanfp Created from the Sapi Managed code //----------------------------------------------------------------- using System; using System.Collections.Generic; using System.IO; using System.Globalization; using System.Speech.Synthesis; using System.Speech.Synthesis.TtsEngine; #pragma warning disable 1634, 1691 // Allows suppression of certain PreSharp messages. #pragma warning disable 56524 // The _voiceSynthesis member is not created in this module and should not be disposed namespace System.Speech.Internal.Synthesis { internal sealed class SpeakInfo { //******************************************************************* // // Constructors // //******************************************************************* #region Constructors ////// /// Voice synthesizer used /// Default engine to use internal SpeakInfo (VoiceSynthesis voiceSynthesis, TTSVoice ttsVoice) { _voiceSynthesis = voiceSynthesis; _ttsVoice = ttsVoice; } #endregion //******************************************************************** // // Internal Properties // //******************************************************************* #region Internal Properties internal TTSVoice Voice { get { return _ttsVoice; } } #endregion //******************************************************************** // // Internal Methods // //******************************************************************** #region Internal Methods internal void SetVoice (string name, CultureInfo culture, VoiceGender gender, VoiceAge age, int variant) { TTSVoice ttsVoice = _voiceSynthesis.GetEngine (name, culture, gender, age, variant, false); if (!ttsVoice.Equals (_ttsVoice)) { _ttsVoice = ttsVoice; _fNotInTextSeg = true; } } internal void AddAudio (AudioData audio) { AddNewSeg (null, audio); _fNotInTextSeg = true; } internal void AddText (TTSVoice ttsVoice, TextFragment textFragment) { if (_fNotInTextSeg || ttsVoice != _ttsVoice) { AddNewSeg (ttsVoice, null); _fNotInTextSeg = false; } _lastSeg.AddFrag (textFragment); } #if SPEECHSERVER || PROMPT_ENGINE internal void AddPexml (TTSVoice ttsVoice, TextFragment textFragment) { AddText (ttsVoice, textFragment); _lastSeg.ContainsPrompEngineFragment = true; } #endif internal SpeechSeg RemoveFirst () { SpeechSeg speechSeg = null; if (_listSeg.Count > 0) { speechSeg = _listSeg [0]; _listSeg.RemoveAt (0); } return speechSeg; } #endregion //******************************************************************* // // Private Method // //******************************************************************** #region Private Method private void AddNewSeg (TTSVoice pCurrVoice, AudioData audio) { SpeechSeg pNew = new SpeechSeg (pCurrVoice, audio); _listSeg.Add (pNew); _lastSeg = pNew; } #endregion //******************************************************************* // // Private Fields // //******************************************************************* #region private Fields // default TTS voice private TTSVoice _ttsVoice; // If true then a new segment is required for the next Add Text private bool _fNotInTextSeg = true; // list of segments (text or audio) private List_listSeg = new List (); // current segment private SpeechSeg _lastSeg; // Reference to the VoiceSynthesizer that created it private VoiceSynthesis _voiceSynthesis; #endregion } //******************************************************************* // // Private Types // //******************************************************************** #region Private Types class AudioData : IDisposable { internal AudioData (Uri uri, ResourceLoader resourceLoader) { _uri = uri; _resourceLoader = resourceLoader; Uri baseAudio; _stream = _resourceLoader.LoadFile (uri, out _mimeType, out baseAudio, out _localFile); } /// /// Needed by IEnumerable!!! /// public void Dispose () { Dispose (true); GC.SuppressFinalize (this); } ~AudioData () { Dispose (false); } internal Uri _uri; internal string _mimeType; internal Stream _stream; protected virtual void Dispose (bool disposing) { if (disposing) { // unload the file from the cache if (_localFile != null) { _resourceLoader.UnloadFile (_localFile); } if (_stream != null) { _stream.Dispose (); _stream = null; _localFile = null; _uri = null; } } } private string _localFile; private ResourceLoader _resourceLoader; } enum VOICEACTIONS { VA_NONE, VA_SPEAK, VA_LOAD_DB, VA_UNLOAD_DB, VA_SET_BACKUP } #endregion } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- TraceUtility.cs
- FormsAuthenticationEventArgs.cs
- SoapIgnoreAttribute.cs
- Int16Animation.cs
- PasswordPropertyTextAttribute.cs
- WindowsPrincipal.cs
- AsymmetricSignatureFormatter.cs
- SqlBinder.cs
- InputBuffer.cs
- SoapSchemaImporter.cs
- FindCriteriaElement.cs
- ToolStripPanelRenderEventArgs.cs
- PreProcessor.cs
- RecognitionResult.cs
- SqlConnectionHelper.cs
- CommentEmitter.cs
- AuthenticationModuleElement.cs
- GeneralTransform2DTo3DTo2D.cs
- QilDataSource.cs
- FormViewInsertedEventArgs.cs
- WebPartConnectionsEventArgs.cs
- SqlGatherConsumedAliases.cs
- EntityContainerRelationshipSet.cs
- AddInSegmentDirectoryNotFoundException.cs
- DurableServiceAttribute.cs
- ExtendedProtectionPolicyElement.cs
- TextMetrics.cs
- CommunicationException.cs
- MailAddressCollection.cs
- LineServices.cs
- NetMsmqBinding.cs
- Visual3D.cs
- Translator.cs
- NumericExpr.cs
- LexicalChunk.cs
- OleAutBinder.cs
- PageClientProxyGenerator.cs
- typedescriptorpermissionattribute.cs
- ResponseStream.cs
- Models.cs
- _NestedMultipleAsyncResult.cs
- BuildManagerHost.cs
- ExeContext.cs
- SuppressMergeCheckAttribute.cs
- CalloutQueueItem.cs
- EventsTab.cs
- OperationCanceledException.cs
- DictionaryChange.cs
- PrimitiveXmlSerializers.cs
- CalendarKeyboardHelper.cs
- PageCatalogPart.cs
- ControlPaint.cs
- Config.cs
- EncryptedData.cs
- ManualWorkflowSchedulerService.cs
- WinCategoryAttribute.cs
- X509Utils.cs
- FixUp.cs
- SafeNativeMethods.cs
- SQLMoney.cs
- DataGridViewColumnEventArgs.cs
- StateRuntime.cs
- UIInitializationException.cs
- XmlSchemaImporter.cs
- StylesEditorDialog.cs
- UserControl.cs
- ConfigXmlSignificantWhitespace.cs
- TdsParserHelperClasses.cs
- XmlSchemaAny.cs
- ModifiableIteratorCollection.cs
- EntityDesignerBuildProvider.cs
- XamlBrushSerializer.cs
- TraceData.cs
- ToolStripComboBox.cs
- SectionInformation.cs
- Int32CAMarshaler.cs
- AmbiguousMatchException.cs
- ServerIdentity.cs
- UserControlParser.cs
- ReadOnlyPropertyMetadata.cs
- VisualTarget.cs
- FormClosedEvent.cs
- LocalizableAttribute.cs
- TypeSource.cs
- OleDbWrapper.cs
- CompensatableSequenceActivity.cs
- DataStreamFromComStream.cs
- DtdParser.cs
- WebPartRestoreVerb.cs
- CounterCreationData.cs
- ViewManager.cs
- AssemblyName.cs
- WinFormsComponentEditor.cs
- OrElse.cs
- TextRunProperties.cs
- Ipv6Element.cs
- SchemaAttDef.cs
- TypedTableBase.cs
- SystemWebSectionGroup.cs
- DbProviderConfigurationHandler.cs