lib/twilio-ruby/twiml/voice_response.rb in twilio-ruby-5.61.0 vs lib/twilio-ruby/twiml/voice_response.rb in twilio-ruby-5.61.1

- old
+ new

@@ -541,29 +541,38 @@ ## # Create a new <Emphasis> element # words:: Words to emphasize # level:: Specify the degree of emphasis # keyword_args:: additional attributes - def emphasis(words, level: nil, **keyword_args) - append(SsmlEmphasis.new(words, level: level, **keyword_args)) + def emphasis(words: nil, level: nil, **keyword_args) + emphasis = SsmlEmphasis.new(words: words, level: level, **keyword_args) + + yield(emphasis) if block_given? + append(emphasis) end ## # Create a new <Lang> element # words:: Words to speak # xmlLang:: Specify the language # keyword_args:: additional attributes - def lang(words, xmlLang: nil, **keyword_args) - append(SsmlLang.new(words, xmlLang: xmlLang, **keyword_args)) + def lang(words: nil, xmlLang: nil, **keyword_args) + lang = SsmlLang.new(words: words, xmlLang: xmlLang, **keyword_args) + + yield(lang) if block_given? + append(lang) end ## # Create a new <P> element # words:: Words to speak # keyword_args:: additional attributes - def p(words, **keyword_args) - append(SsmlP.new(words, **keyword_args)) + def p(words: nil, **keyword_args) + p = SsmlP.new(words: words, **keyword_args) + + yield(p) if block_given? + append(p) end ## # Create a new <Phoneme> element # words:: Words to speak @@ -579,20 +588,26 @@ # words:: Words to speak # volume:: Specify the volume, available values: default, silent, x-soft, soft, medium, loud, x-loud, +ndB, -ndB # rate:: Specify the rate, available values: x-slow, slow, medium, fast, x-fast, n% # pitch:: Specify the pitch, available values: default, x-low, low, medium, high, x-high, +n%, -n% # keyword_args:: additional attributes - def prosody(words, volume: nil, rate: nil, pitch: nil, **keyword_args) - append(SsmlProsody.new(words, volume: volume, rate: rate, pitch: pitch, **keyword_args)) + def prosody(words: nil, volume: nil, rate: nil, pitch: nil, **keyword_args) + prosody = SsmlProsody.new(words: words, volume: volume, rate: rate, pitch: pitch, **keyword_args) + + yield(prosody) if block_given? + append(prosody) end ## # Create a new <S> element # words:: Words to speak # keyword_args:: additional attributes - def s(words, **keyword_args) - append(SsmlS.new(words, **keyword_args)) + def s(words: nil, **keyword_args) + s = SsmlS.new(words: words, **keyword_args) + + yield(s) if block_given? + append(s) end ## # Create a new <Say-As> element # words:: Words to be interpreted @@ -615,24 +630,91 @@ ## # Create a new <W> element # words:: Words to speak # role:: Customize the pronunciation of words by specifying the word’s part of speech or alternate meaning # keyword_args:: additional attributes - def w(words, role: nil, **keyword_args) - append(SsmlW.new(words, role: role, **keyword_args)) + def w(words: nil, role: nil, **keyword_args) + w = SsmlW.new(words: words, role: role, **keyword_args) + + yield(w) if block_given? + append(w) end end ## # Improving Pronunciation by Specifying Parts of Speech in <Say> class SsmlW < TwiML - def initialize(words, **keyword_args) + def initialize(words: nil, **keyword_args) super(**keyword_args) @name = 'w' - @value = words + @value = words unless words.nil? yield(self) if block_given? end + + ## + # Create a new <Break> element + # strength:: Set a pause based on strength + # time:: Set a pause to a specific length of time in seconds or milliseconds, available values: [number]s, [number]ms + # keyword_args:: additional attributes + def break(strength: nil, time: nil, **keyword_args) + append(SsmlBreak.new(strength: strength, time: time, **keyword_args)) + end + + ## + # Create a new <Emphasis> element + # words:: Words to emphasize + # level:: Specify the degree of emphasis + # keyword_args:: additional attributes + def emphasis(words: nil, level: nil, **keyword_args) + emphasis = SsmlEmphasis.new(words: words, level: level, **keyword_args) + + yield(emphasis) if block_given? + append(emphasis) + end + + ## + # Create a new <Phoneme> element + # words:: Words to speak + # alphabet:: Specify the phonetic alphabet + # ph:: Specifiy the phonetic symbols for pronunciation + # keyword_args:: additional attributes + def phoneme(words, alphabet: nil, ph: nil, **keyword_args) + append(SsmlPhoneme.new(words, alphabet: alphabet, ph: ph, **keyword_args)) + end + + ## + # Create a new <Prosody> element + # words:: Words to speak + # volume:: Specify the volume, available values: default, silent, x-soft, soft, medium, loud, x-loud, +ndB, -ndB + # rate:: Specify the rate, available values: x-slow, slow, medium, fast, x-fast, n% + # pitch:: Specify the pitch, available values: default, x-low, low, medium, high, x-high, +n%, -n% + # keyword_args:: additional attributes + def prosody(words: nil, volume: nil, rate: nil, pitch: nil, **keyword_args) + prosody = SsmlProsody.new(words: words, volume: volume, rate: rate, pitch: pitch, **keyword_args) + + yield(prosody) if block_given? + append(prosody) + end + + ## + # Create a new <Say-As> element + # words:: Words to be interpreted + # interpretAs:: Specify the type of words are spoken + # role:: Specify the format of the date when interpret-as is set to date + # keyword_args:: additional attributes + def say_as(words, interpretAs: nil, role: nil, **keyword_args) + append(SsmlSayAs.new(words, interpretAs: interpretAs, role: role, **keyword_args)) + end + + ## + # Create a new <Sub> element + # words:: Words to be substituted + # aliasAttribute:: Substitute a different word (or pronunciation) for selected text such as an acronym or abbreviation + # keyword_args:: additional attributes + def sub(words, aliasAttribute: nil, **keyword_args) + append(SsmlSub.new(words, aliasAttribute: aliasAttribute, **keyword_args)) + end end ## # Pronouncing Acronyms and Abbreviations in <Say> class SsmlSub < TwiML @@ -654,29 +736,227 @@ yield(self) if block_given? end end ## - # Adding A Pause Between Sentences in <Say> - class SsmlS < TwiML - def initialize(words, **keyword_args) + # Controling Volume, Speaking Rate, and Pitch in <Say> + class SsmlProsody < TwiML + def initialize(words: nil, **keyword_args) super(**keyword_args) - @name = 's' - @value = words + @name = 'prosody' + @value = words unless words.nil? yield(self) if block_given? end + + ## + # Create a new <Break> element + # strength:: Set a pause based on strength + # time:: Set a pause to a specific length of time in seconds or milliseconds, available values: [number]s, [number]ms + # keyword_args:: additional attributes + def break(strength: nil, time: nil, **keyword_args) + append(SsmlBreak.new(strength: strength, time: time, **keyword_args)) + end + + ## + # Create a new <Emphasis> element + # words:: Words to emphasize + # level:: Specify the degree of emphasis + # keyword_args:: additional attributes + def emphasis(words: nil, level: nil, **keyword_args) + emphasis = SsmlEmphasis.new(words: words, level: level, **keyword_args) + + yield(emphasis) if block_given? + append(emphasis) + end + + ## + # Create a new <Lang> element + # words:: Words to speak + # xmlLang:: Specify the language + # keyword_args:: additional attributes + def lang(words: nil, xmlLang: nil, **keyword_args) + lang = SsmlLang.new(words: words, xmlLang: xmlLang, **keyword_args) + + yield(lang) if block_given? + append(lang) + end + + ## + # Create a new <P> element + # words:: Words to speak + # keyword_args:: additional attributes + def p(words: nil, **keyword_args) + p = SsmlP.new(words: words, **keyword_args) + + yield(p) if block_given? + append(p) + end + + ## + # Create a new <Phoneme> element + # words:: Words to speak + # alphabet:: Specify the phonetic alphabet + # ph:: Specifiy the phonetic symbols for pronunciation + # keyword_args:: additional attributes + def phoneme(words, alphabet: nil, ph: nil, **keyword_args) + append(SsmlPhoneme.new(words, alphabet: alphabet, ph: ph, **keyword_args)) + end + + ## + # Create a new <Prosody> element + # words:: Words to speak + # volume:: Specify the volume, available values: default, silent, x-soft, soft, medium, loud, x-loud, +ndB, -ndB + # rate:: Specify the rate, available values: x-slow, slow, medium, fast, x-fast, n% + # pitch:: Specify the pitch, available values: default, x-low, low, medium, high, x-high, +n%, -n% + # keyword_args:: additional attributes + def prosody(words: nil, volume: nil, rate: nil, pitch: nil, **keyword_args) + prosody = SsmlProsody.new(words: words, volume: volume, rate: rate, pitch: pitch, **keyword_args) + + yield(prosody) if block_given? + append(prosody) + end + + ## + # Create a new <S> element + # words:: Words to speak + # keyword_args:: additional attributes + def s(words: nil, **keyword_args) + s = SsmlS.new(words: words, **keyword_args) + + yield(s) if block_given? + append(s) + end + + ## + # Create a new <Say-As> element + # words:: Words to be interpreted + # interpretAs:: Specify the type of words are spoken + # role:: Specify the format of the date when interpret-as is set to date + # keyword_args:: additional attributes + def say_as(words, interpretAs: nil, role: nil, **keyword_args) + append(SsmlSayAs.new(words, interpretAs: interpretAs, role: role, **keyword_args)) + end + + ## + # Create a new <Sub> element + # words:: Words to be substituted + # aliasAttribute:: Substitute a different word (or pronunciation) for selected text such as an acronym or abbreviation + # keyword_args:: additional attributes + def sub(words, aliasAttribute: nil, **keyword_args) + append(SsmlSub.new(words, aliasAttribute: aliasAttribute, **keyword_args)) + end + + ## + # Create a new <W> element + # words:: Words to speak + # role:: Customize the pronunciation of words by specifying the word’s part of speech or alternate meaning + # keyword_args:: additional attributes + def w(words: nil, role: nil, **keyword_args) + w = SsmlW.new(words: words, role: role, **keyword_args) + + yield(w) if block_given? + append(w) + end end ## - # Controling Volume, Speaking Rate, and Pitch in <Say> - class SsmlProsody < TwiML - def initialize(words, **keyword_args) + # Adding A Pause Between Sentences in <Say> + class SsmlS < TwiML + def initialize(words: nil, **keyword_args) super(**keyword_args) - @name = 'prosody' - @value = words + @name = 's' + @value = words unless words.nil? yield(self) if block_given? end + + ## + # Create a new <Break> element + # strength:: Set a pause based on strength + # time:: Set a pause to a specific length of time in seconds or milliseconds, available values: [number]s, [number]ms + # keyword_args:: additional attributes + def break(strength: nil, time: nil, **keyword_args) + append(SsmlBreak.new(strength: strength, time: time, **keyword_args)) + end + + ## + # Create a new <Emphasis> element + # words:: Words to emphasize + # level:: Specify the degree of emphasis + # keyword_args:: additional attributes + def emphasis(words: nil, level: nil, **keyword_args) + emphasis = SsmlEmphasis.new(words: words, level: level, **keyword_args) + + yield(emphasis) if block_given? + append(emphasis) + end + + ## + # Create a new <Lang> element + # words:: Words to speak + # xmlLang:: Specify the language + # keyword_args:: additional attributes + def lang(words: nil, xmlLang: nil, **keyword_args) + lang = SsmlLang.new(words: words, xmlLang: xmlLang, **keyword_args) + + yield(lang) if block_given? + append(lang) + end + + ## + # Create a new <Phoneme> element + # words:: Words to speak + # alphabet:: Specify the phonetic alphabet + # ph:: Specifiy the phonetic symbols for pronunciation + # keyword_args:: additional attributes + def phoneme(words, alphabet: nil, ph: nil, **keyword_args) + append(SsmlPhoneme.new(words, alphabet: alphabet, ph: ph, **keyword_args)) + end + + ## + # Create a new <Prosody> element + # words:: Words to speak + # volume:: Specify the volume, available values: default, silent, x-soft, soft, medium, loud, x-loud, +ndB, -ndB + # rate:: Specify the rate, available values: x-slow, slow, medium, fast, x-fast, n% + # pitch:: Specify the pitch, available values: default, x-low, low, medium, high, x-high, +n%, -n% + # keyword_args:: additional attributes + def prosody(words: nil, volume: nil, rate: nil, pitch: nil, **keyword_args) + prosody = SsmlProsody.new(words: words, volume: volume, rate: rate, pitch: pitch, **keyword_args) + + yield(prosody) if block_given? + append(prosody) + end + + ## + # Create a new <Say-As> element + # words:: Words to be interpreted + # interpretAs:: Specify the type of words are spoken + # role:: Specify the format of the date when interpret-as is set to date + # keyword_args:: additional attributes + def say_as(words, interpretAs: nil, role: nil, **keyword_args) + append(SsmlSayAs.new(words, interpretAs: interpretAs, role: role, **keyword_args)) + end + + ## + # Create a new <Sub> element + # words:: Words to be substituted + # aliasAttribute:: Substitute a different word (or pronunciation) for selected text such as an acronym or abbreviation + # keyword_args:: additional attributes + def sub(words, aliasAttribute: nil, **keyword_args) + append(SsmlSub.new(words, aliasAttribute: aliasAttribute, **keyword_args)) + end + + ## + # Create a new <W> element + # words:: Words to speak + # role:: Customize the pronunciation of words by specifying the word’s part of speech or alternate meaning + # keyword_args:: additional attributes + def w(words: nil, role: nil, **keyword_args) + w = SsmlW.new(words: words, role: role, **keyword_args) + + yield(w) if block_given? + append(w) + end end ## # Using Phonetic Pronunciation in <Say> class SsmlPhoneme < TwiML @@ -687,38 +967,335 @@ yield(self) if block_given? end end ## - # Adding a Pause Between Paragraphs in <Say> - class SsmlP < TwiML - def initialize(words, **keyword_args) + # Specifying Another Language for Specific Words in <Say> + class SsmlLang < TwiML + def initialize(words: nil, **keyword_args) super(**keyword_args) - @name = 'p' - @value = words + @name = 'lang' + @value = words unless words.nil? yield(self) if block_given? end + + ## + # Create a new <Break> element + # strength:: Set a pause based on strength + # time:: Set a pause to a specific length of time in seconds or milliseconds, available values: [number]s, [number]ms + # keyword_args:: additional attributes + def break(strength: nil, time: nil, **keyword_args) + append(SsmlBreak.new(strength: strength, time: time, **keyword_args)) + end + + ## + # Create a new <Emphasis> element + # words:: Words to emphasize + # level:: Specify the degree of emphasis + # keyword_args:: additional attributes + def emphasis(words: nil, level: nil, **keyword_args) + emphasis = SsmlEmphasis.new(words: words, level: level, **keyword_args) + + yield(emphasis) if block_given? + append(emphasis) + end + + ## + # Create a new <Lang> element + # words:: Words to speak + # xmlLang:: Specify the language + # keyword_args:: additional attributes + def lang(words: nil, xmlLang: nil, **keyword_args) + lang = SsmlLang.new(words: words, xmlLang: xmlLang, **keyword_args) + + yield(lang) if block_given? + append(lang) + end + + ## + # Create a new <P> element + # words:: Words to speak + # keyword_args:: additional attributes + def p(words: nil, **keyword_args) + p = SsmlP.new(words: words, **keyword_args) + + yield(p) if block_given? + append(p) + end + + ## + # Create a new <Phoneme> element + # words:: Words to speak + # alphabet:: Specify the phonetic alphabet + # ph:: Specifiy the phonetic symbols for pronunciation + # keyword_args:: additional attributes + def phoneme(words, alphabet: nil, ph: nil, **keyword_args) + append(SsmlPhoneme.new(words, alphabet: alphabet, ph: ph, **keyword_args)) + end + + ## + # Create a new <Prosody> element + # words:: Words to speak + # volume:: Specify the volume, available values: default, silent, x-soft, soft, medium, loud, x-loud, +ndB, -ndB + # rate:: Specify the rate, available values: x-slow, slow, medium, fast, x-fast, n% + # pitch:: Specify the pitch, available values: default, x-low, low, medium, high, x-high, +n%, -n% + # keyword_args:: additional attributes + def prosody(words: nil, volume: nil, rate: nil, pitch: nil, **keyword_args) + prosody = SsmlProsody.new(words: words, volume: volume, rate: rate, pitch: pitch, **keyword_args) + + yield(prosody) if block_given? + append(prosody) + end + + ## + # Create a new <S> element + # words:: Words to speak + # keyword_args:: additional attributes + def s(words: nil, **keyword_args) + s = SsmlS.new(words: words, **keyword_args) + + yield(s) if block_given? + append(s) + end + + ## + # Create a new <Say-As> element + # words:: Words to be interpreted + # interpretAs:: Specify the type of words are spoken + # role:: Specify the format of the date when interpret-as is set to date + # keyword_args:: additional attributes + def say_as(words, interpretAs: nil, role: nil, **keyword_args) + append(SsmlSayAs.new(words, interpretAs: interpretAs, role: role, **keyword_args)) + end + + ## + # Create a new <Sub> element + # words:: Words to be substituted + # aliasAttribute:: Substitute a different word (or pronunciation) for selected text such as an acronym or abbreviation + # keyword_args:: additional attributes + def sub(words, aliasAttribute: nil, **keyword_args) + append(SsmlSub.new(words, aliasAttribute: aliasAttribute, **keyword_args)) + end + + ## + # Create a new <W> element + # words:: Words to speak + # role:: Customize the pronunciation of words by specifying the word’s part of speech or alternate meaning + # keyword_args:: additional attributes + def w(words: nil, role: nil, **keyword_args) + w = SsmlW.new(words: words, role: role, **keyword_args) + + yield(w) if block_given? + append(w) + end end ## - # Specifying Another Language for Specific Words in <Say> - class SsmlLang < TwiML - def initialize(words, **keyword_args) + # Adding a Pause Between Paragraphs in <Say> + class SsmlP < TwiML + def initialize(words: nil, **keyword_args) super(**keyword_args) - @name = 'lang' - @value = words + @name = 'p' + @value = words unless words.nil? yield(self) if block_given? end + + ## + # Create a new <Break> element + # strength:: Set a pause based on strength + # time:: Set a pause to a specific length of time in seconds or milliseconds, available values: [number]s, [number]ms + # keyword_args:: additional attributes + def break(strength: nil, time: nil, **keyword_args) + append(SsmlBreak.new(strength: strength, time: time, **keyword_args)) + end + + ## + # Create a new <Emphasis> element + # words:: Words to emphasize + # level:: Specify the degree of emphasis + # keyword_args:: additional attributes + def emphasis(words: nil, level: nil, **keyword_args) + emphasis = SsmlEmphasis.new(words: words, level: level, **keyword_args) + + yield(emphasis) if block_given? + append(emphasis) + end + + ## + # Create a new <Lang> element + # words:: Words to speak + # xmlLang:: Specify the language + # keyword_args:: additional attributes + def lang(words: nil, xmlLang: nil, **keyword_args) + lang = SsmlLang.new(words: words, xmlLang: xmlLang, **keyword_args) + + yield(lang) if block_given? + append(lang) + end + + ## + # Create a new <Phoneme> element + # words:: Words to speak + # alphabet:: Specify the phonetic alphabet + # ph:: Specifiy the phonetic symbols for pronunciation + # keyword_args:: additional attributes + def phoneme(words, alphabet: nil, ph: nil, **keyword_args) + append(SsmlPhoneme.new(words, alphabet: alphabet, ph: ph, **keyword_args)) + end + + ## + # Create a new <Prosody> element + # words:: Words to speak + # volume:: Specify the volume, available values: default, silent, x-soft, soft, medium, loud, x-loud, +ndB, -ndB + # rate:: Specify the rate, available values: x-slow, slow, medium, fast, x-fast, n% + # pitch:: Specify the pitch, available values: default, x-low, low, medium, high, x-high, +n%, -n% + # keyword_args:: additional attributes + def prosody(words: nil, volume: nil, rate: nil, pitch: nil, **keyword_args) + prosody = SsmlProsody.new(words: words, volume: volume, rate: rate, pitch: pitch, **keyword_args) + + yield(prosody) if block_given? + append(prosody) + end + + ## + # Create a new <S> element + # words:: Words to speak + # keyword_args:: additional attributes + def s(words: nil, **keyword_args) + s = SsmlS.new(words: words, **keyword_args) + + yield(s) if block_given? + append(s) + end + + ## + # Create a new <Say-As> element + # words:: Words to be interpreted + # interpretAs:: Specify the type of words are spoken + # role:: Specify the format of the date when interpret-as is set to date + # keyword_args:: additional attributes + def say_as(words, interpretAs: nil, role: nil, **keyword_args) + append(SsmlSayAs.new(words, interpretAs: interpretAs, role: role, **keyword_args)) + end + + ## + # Create a new <Sub> element + # words:: Words to be substituted + # aliasAttribute:: Substitute a different word (or pronunciation) for selected text such as an acronym or abbreviation + # keyword_args:: additional attributes + def sub(words, aliasAttribute: nil, **keyword_args) + append(SsmlSub.new(words, aliasAttribute: aliasAttribute, **keyword_args)) + end + + ## + # Create a new <W> element + # words:: Words to speak + # role:: Customize the pronunciation of words by specifying the word’s part of speech or alternate meaning + # keyword_args:: additional attributes + def w(words: nil, role: nil, **keyword_args) + w = SsmlW.new(words: words, role: role, **keyword_args) + + yield(w) if block_given? + append(w) + end end ## # Emphasizing Words in <Say> class SsmlEmphasis < TwiML - def initialize(words, **keyword_args) + def initialize(words: nil, **keyword_args) super(**keyword_args) @name = 'emphasis' - @value = words + @value = words unless words.nil? yield(self) if block_given? + end + + ## + # Create a new <Break> element + # strength:: Set a pause based on strength + # time:: Set a pause to a specific length of time in seconds or milliseconds, available values: [number]s, [number]ms + # keyword_args:: additional attributes + def break(strength: nil, time: nil, **keyword_args) + append(SsmlBreak.new(strength: strength, time: time, **keyword_args)) + end + + ## + # Create a new <Emphasis> element + # words:: Words to emphasize + # level:: Specify the degree of emphasis + # keyword_args:: additional attributes + def emphasis(words: nil, level: nil, **keyword_args) + emphasis = SsmlEmphasis.new(words: words, level: level, **keyword_args) + + yield(emphasis) if block_given? + append(emphasis) + end + + ## + # Create a new <Lang> element + # words:: Words to speak + # xmlLang:: Specify the language + # keyword_args:: additional attributes + def lang(words: nil, xmlLang: nil, **keyword_args) + lang = SsmlLang.new(words: words, xmlLang: xmlLang, **keyword_args) + + yield(lang) if block_given? + append(lang) + end + + ## + # Create a new <Phoneme> element + # words:: Words to speak + # alphabet:: Specify the phonetic alphabet + # ph:: Specifiy the phonetic symbols for pronunciation + # keyword_args:: additional attributes + def phoneme(words, alphabet: nil, ph: nil, **keyword_args) + append(SsmlPhoneme.new(words, alphabet: alphabet, ph: ph, **keyword_args)) + end + + ## + # Create a new <Prosody> element + # words:: Words to speak + # volume:: Specify the volume, available values: default, silent, x-soft, soft, medium, loud, x-loud, +ndB, -ndB + # rate:: Specify the rate, available values: x-slow, slow, medium, fast, x-fast, n% + # pitch:: Specify the pitch, available values: default, x-low, low, medium, high, x-high, +n%, -n% + # keyword_args:: additional attributes + def prosody(words: nil, volume: nil, rate: nil, pitch: nil, **keyword_args) + prosody = SsmlProsody.new(words: words, volume: volume, rate: rate, pitch: pitch, **keyword_args) + + yield(prosody) if block_given? + append(prosody) + end + + ## + # Create a new <Say-As> element + # words:: Words to be interpreted + # interpretAs:: Specify the type of words are spoken + # role:: Specify the format of the date when interpret-as is set to date + # keyword_args:: additional attributes + def say_as(words, interpretAs: nil, role: nil, **keyword_args) + append(SsmlSayAs.new(words, interpretAs: interpretAs, role: role, **keyword_args)) + end + + ## + # Create a new <Sub> element + # words:: Words to be substituted + # aliasAttribute:: Substitute a different word (or pronunciation) for selected text such as an acronym or abbreviation + # keyword_args:: additional attributes + def sub(words, aliasAttribute: nil, **keyword_args) + append(SsmlSub.new(words, aliasAttribute: aliasAttribute, **keyword_args)) + end + + ## + # Create a new <W> element + # words:: Words to speak + # role:: Customize the pronunciation of words by specifying the word’s part of speech or alternate meaning + # keyword_args:: additional attributes + def w(words: nil, role: nil, **keyword_args) + w = SsmlW.new(words: words, role: role, **keyword_args) + + yield(w) if block_given? + append(w) end end ## # Adding a Pause in <Say> \ No newline at end of file