public void ProcessBreak(object voice, ref FragmentState fragmentState, EmphasisBreak eBreak, int time, bool fIgnore)
 {
     if (!fIgnore)
     {
         TtsEngineAction action = fragmentState.Action;
         fragmentState.Action = ActionTextFragment(fragmentState.Action);
         _speakInfo.AddText((TTSVoice)voice, new TextFragment(fragmentState));
         fragmentState.Action = action;
     }
 }
Пример #2
0
        private static int SapiSilence(int duration, EmphasisBreak emphasis)
        {
            int sapiSilence = 1000;

            if (duration > 0)
            {
                sapiSilence = duration;
            }
            else
            {
                switch (emphasis)
                {
                // No break, arbitrarily defined as 10 milliseconds
                case EmphasisBreak.None:
                    sapiSilence = 10;
                    break;

                // Extra small break, arbitrarily defined as 125 milliseconds
                case EmphasisBreak.ExtraWeak:
                    sapiSilence = 125;
                    break;

                // Small break, arbitrarily defined as 250 milliseconds
                case EmphasisBreak.Weak:
                    sapiSilence = 250;
                    break;

                // Medium break, arbitrarily defined as 1000 milliseconds
                case EmphasisBreak.Medium:
                    sapiSilence = 1000;
                    break;

                // Large break, arbitrarily defined as 1750 milliseconds
                case EmphasisBreak.Strong:
                    sapiSilence = 1750;
                    break;

                // Extra large break, arbitrarily defined as 3000 milliseconds
                case EmphasisBreak.ExtraStrong:
                    sapiSilence = 3000;
                    break;
                }
            }
            if (sapiSilence < 0 || sapiSilence > 0xffff)
            {
                sapiSilence = 1000;
            }
            return(sapiSilence);
        }
Пример #3
0
        private static int SapiSilence(int duration, EmphasisBreak emphasis)
        {
            int num = 1000;

            if (duration > 0)
            {
                num = duration;
            }
            else
            {
                switch (emphasis)
                {
                case EmphasisBreak.None:
                    num = 10;
                    break;

                case EmphasisBreak.ExtraWeak:
                    num = 125;
                    break;

                case EmphasisBreak.Weak:
                    num = 250;
                    break;

                case EmphasisBreak.Medium:
                    num = 1000;
                    break;

                case EmphasisBreak.Strong:
                    num = 1750;
                    break;

                case EmphasisBreak.ExtraStrong:
                    num = 3000;
                    break;
                }
            }
            if (num < 0 || num > 65535)
            {
                num = 1000;
            }
            return(num);
        }
Пример #4
0
        public void ProcessBreak(object voice, ref FragmentState fragmentState, EmphasisBreak eBreak, int time, bool fIgnore)
        {
            _writer.WriteStartElement("break");
            if (time > 0 && eBreak == EmphasisBreak.None)
            {
                _writer.WriteAttributeString("time", time.ToString(CultureInfo.InvariantCulture) + "ms");
            }
            else
            {
                string value = null;
                switch (eBreak)
                {
                case EmphasisBreak.None:
                    value = "none";
                    break;

                case EmphasisBreak.ExtraWeak:
                    value = "x-weak";
                    break;

                case EmphasisBreak.Weak:
                    value = "weak";
                    break;

                case EmphasisBreak.Medium:
                    value = "medium";
                    break;

                case EmphasisBreak.Strong:
                    value = "strong";
                    break;

                case EmphasisBreak.ExtraStrong:
                    value = "x-strong";
                    break;
                }
                if (!string.IsNullOrEmpty(value))
                {
                    _writer.WriteAttributeString("strength", value);
                }
            }
        }