If it's reading back your "say-as" and you have it formatted as is, it sounds like it's interpreting this as a literal string rather than ssml+xml.
I would look at a few things with the actual tool step that is playing back string:
- Is it Play String or Play String Extended (it should be extended)
- Are there further tags wrapping your <say-as> section?
- Do you have optional parameters set on your Play String Extended tool step to define the content type?
I just made a quick test in my dev system (2018 R2 P9, Vocalizer 6 with NSS 6.2.6):
For my Play String Extended step, I added the following parameters and had success:
Text:
"<?xml version='1.0'?><speak version='1.0' xmlns='http://www.w3.org/2001/10/synthesis' xml:lang='en-US'>" & "<say-as interpret-as='characters'>" & StrLower(StrLeft(sStringToPlay, iPeriodPos)) & "</say-as>" & " period" & "<say-as interpret-as='characters'>" & StrLower(StrMid(sStringToPlay, iPeriodPos + 1, 50)) & "</say-as>" & "</speak>"
I've concatenated some of the literal parts of this to emphasize what I added to your initial example.
Optional Parameters: "mrcp.audio.contentType:application/ssml+xml"
Then I just used a get key to flush audio and it worked without issue.
My emphasis here is to take a look at the step playing the string, it should have more to do with what you're hearing (or not hearing).
------------------------------
Aaron Lael
State of Utah
------------------------------
Original Message:
Sent: 11-28-2018 09:10
From: Phil Chapman
Subject: Nuance Vocalizer speaking "say-as" since upgrade
Josh,
Which version of Vocalizer are you using? There are some slight differences between the versions and the way that they treat the say-as command.
Phil
------------------------------
Phil Chapman
Sr. Solution Engineer
Altivon
Original Message:
Sent: 11-27-2018 16:12
From: Josh Herron
Subject: Nuance Vocalizer speaking "say-as" since upgrade
Good afternoon,
We recently upgraded from CIC 4.0 to CIC 18.2.13. We have a handler that does some string cleaning of text to speech playback because we have some strings that contain characters that need to be read as characters when they appear in the string. For example below I would want Nuance to read back "test period string"
sStringToPlay: test.string Mode: String
We run all of the sStringToPlay values through another handler that looks for strings containing periods and if the character is found assigns the sStringToPlay value as follows:
"<say-as interpret-as='characters'>" & StrLower(StrLeft(sStringToPlay, iPeriodPos)) & "</say-as>" & " period" & "<say-as interpret-as='characters'>" & StrLower(StrMid(sStringToPlay, iPeriodPos + 1, 50)) & "</say-as>"
This has worked flawlessly for the last few years, but since the upgrade to 18.2.13 Nuance has been reading back the "say-as" during the text to speech playback. I didn't create this handler originally so I'm trying to figure out why it used to work and now doesn't perform as we expect. Any ideas?
#Handlers
------------------------------
Josh Herron
------------------------------