Exemplo n.º 1
0
        public void AppendText(string textToSpeak, PromptVolume volume)
        {
            Helpers.ThrowIfNull(textToSpeak, nameof(textToSpeak));

            if (volume < PromptVolume.NotSet || volume > PromptVolume.Default)
            {
                throw new ArgumentOutOfRangeException(nameof(volume));
            }

            // Validate that text can be added in this context
            ValidateElement(_elementStack.Peek(), SsmlElement.Text);

            Element prosodyElement = new(ElementType.Prosody, textToSpeak);

            _elements.Add(prosodyElement);

            string sVolumeLevel = null;

            switch (volume)
            {
            // No volume do not set the attribute
            case PromptVolume.NotSet:
                break;

            case PromptVolume.ExtraSoft:
                sVolumeLevel = "x-soft";
                break;

            case PromptVolume.ExtraLoud:
                sVolumeLevel = "x-loud";
                break;

            default:
                sVolumeLevel = volume.ToString().ToLowerInvariant();
                break;
            }
            if (!string.IsNullOrEmpty(sVolumeLevel))
            {
                prosodyElement._attributes = new Collection <AttributeItem>();
                prosodyElement._attributes.Add(new AttributeItem("volume", sVolumeLevel));
            }
        }
Exemplo n.º 2
0
        public void AppendText(string textToSpeak, PromptVolume volume)
        {
            Helpers.ThrowIfNull(textToSpeak, "textToSpeak");
            if (volume < PromptVolume.NotSet || volume > PromptVolume.Default)
            {
                throw new ArgumentOutOfRangeException("volume");
            }
            ValidateElement(_elementStack.Peek(), SsmlElement.Text);
            Element element = new Element(ElementType.Prosody, textToSpeak);

            _elements.Add(element);
            string value = null;

            switch (volume)
            {
            case PromptVolume.ExtraSoft:
                value = "x-soft";
                break;

            case PromptVolume.ExtraLoud:
                value = "x-loud";
                break;

            default:
                value = volume.ToString().ToLowerInvariant();
                break;

            case PromptVolume.NotSet:
                break;
            }
            if (!string.IsNullOrEmpty(value))
            {
                element._attributes = new Collection <AttributeItem>();
                element._attributes.Add(new AttributeItem("volume", value));
            }
        }
Exemplo n.º 3
0
 public PromptStyle(PromptVolume volume)
 {
     Volume = volume;
 }
Exemplo n.º 4
0
 public new void AppendText(string textToSpeak, PromptVolume volume)
 {
     StartStyle(new PromptStyle(volume));
     HebrewPromptReader.ReadInto(this, textToSpeak);
     EndStyle();
 }
Exemplo n.º 5
0
        private void Speak(string str, PromptRate rate, PromptVolume volume, bool quoted)
        {
            int speakRate   = defaultRate;
            int speakVolume = defaultVolume;

            switch (rate)
            {
            case PromptRate.ExtraSlow:
                speakRate -= 2;
                break;

            case PromptRate.Slow:
                speakRate -= 1;
                break;

            case PromptRate.Medium:
                speakRate += 0;
                break;

            case PromptRate.Fast:
                speakRate += 1;
                break;

            case PromptRate.ExtraFast:
                speakRate += 2;
                break;
            }

            switch (volume)
            {
            case PromptVolume.Silent:
                speakVolume -= 50;
                break;

            case PromptVolume.ExtraSoft:
                speakVolume -= 20;
                break;

            case PromptVolume.Soft:
                speakVolume -= 10;
                break;

            case PromptVolume.NotSet:
                speakVolume += 0;
                break;

            case PromptVolume.Default:
                speakVolume += 0;
                break;

            case PromptVolume.Medium:
                speakVolume += 0;
                break;

            case PromptVolume.Loud:
                speakVolume += 10;
                break;

            case PromptVolume.ExtraLoud:
                speakVolume += 20;
                break;
            }

            if (quoted)
            {
                speakVolume += 10;
            }

            if (speakVolume > 100)
            {
                speakVolume = 100;
            }
            else if (speakVolume < 0)
            {
                speakVolume = 0;
            }

            if (speakRate > 10)
            {
                speakRate = 10;
            }
            else if (speakRate < -10)
            {
                speakRate = -10;
            }

            synth.Volume = speakVolume;
            synth.Rate   = speakRate;
            synth.Speak(str);
        }
        private void Speak(string str, PromptRate rate, PromptVolume volume, bool quoted)
        {
            int speakRate = defaultRate;
            int speakVolume = defaultVolume;

            switch (rate)
            {
                case PromptRate.ExtraSlow:
                    speakRate -= 2;
                    break;
                case PromptRate.Slow:
                    speakRate -= 1;
                    break;
                case PromptRate.Medium:
                    speakRate += 0;
                    break;
                case PromptRate.Fast:
                    speakRate += 1;
                    break;
                case PromptRate.ExtraFast:
                    speakRate += 2;
                    break;
            }

            switch (volume)
            {
                case PromptVolume.Silent:
                    speakVolume -= 50;
                    break;
                case PromptVolume.ExtraSoft:
                    speakVolume -= 20;
                    break;
                case PromptVolume.Soft:
                    speakVolume -= 10;
                    break;
                case PromptVolume.NotSet:
                    speakVolume += 0;
                    break;
                case PromptVolume.Default:
                    speakVolume += 0;
                    break;
                case PromptVolume.Medium:
                    speakVolume += 0;
                    break;
                case PromptVolume.Loud:
                    speakVolume += 10;
                    break;
                case PromptVolume.ExtraLoud:
                    speakVolume += 20;
                    break;
            }

            if (quoted)
                speakVolume += 10;

            if (speakVolume > 100)
                speakVolume = 100;
            else if (speakVolume < 0)
                speakVolume = 0;

            if (speakRate > 10)
                speakRate = 10;
            else if (speakRate < -10)
                speakRate = -10;

            synth.Volume = speakVolume;
            synth.Rate = speakRate;
            synth.Speak(str);
        }
Exemplo n.º 7
0
 public new void AppendText(string textToSpeak, PromptVolume volume)
 {
     StartStyle(new PromptStyle(volume));
     HebrewPromptReader.ReadInto(this, textToSpeak);
     EndStyle();
 }