Genesys Cloud - Main

 View Only
Discussion Thread View
  • 1.  Architect flow TTS playback for dynamic data

    Posted 05-11-2022 11:33
    It appears that the Architect prompt functions ToAudio...() to play currency, integers and date data fields uses the system audio files (for language) to playback data items.

    Is there a way to have the chosen TTS engine play the data items so I get a single "voice" experience for the customer?

    I notice that you can upload your own audio for system prompts but that is not practical for every variation and would require recording them in the Genesys TTS (in this instance) to match the general TTS "voice".

    I can see other discussions around TTS but didn't spot anything specific to my query.

    Thanks
    #ArchitectureandDesign

    ------------------------------
    Simon Brown
    Maintel Europe Limited
    ------------------------------


  • 2.  RE: Architect flow TTS playback for dynamic data

    GENESYS
    Posted 05-11-2022 11:39
    Use the expression ToAudioTTS instead of the other ToAudio methods.  Depending on the type of data you're using, you may need to ToString it first.  For example if Task.myInteger is an integer, you would use ToAudioTTS(ToString(Task.myInteger))

    ------------------------------
    Melissa Bailey
    Genesys - Employees
    ------------------------------



  • 3.  RE: Architect flow TTS playback for dynamic data

    Posted 05-11-2022 12:35
    Hi Melissa,

    That approach does not work, i tried that. I should  have mentioned on OP.

    For example a currency value to string (ToString) does not translate into a TTS phrase to say the value, you lose the currency "pound and pence" and the GBP gets appended to string.
    I could strip the |GBP but value still not played as a currency (plays as a number).



    ------------------------------
    Simon Brown
    Maintel Europe Limited
    ------------------------------



  • 4.  RE: Architect flow TTS playback for dynamic data

    GENESYS
    Posted 05-13-2022 15:33

    Runtime data playback (when we string together system prompts) cannot be changed to use TTS.  The whole point of it is that is doesn't rely on TTS.  Your choices are

    1) Upload recordings for every system prompt resource needed for whatever type of playback you're using, in your chosen voice.  Make sure you do all languages your flows use.

    2) Manipulate the value to play it all with TTS.  For example, playing a currency variable Task.curr with pound & pence:

    Append(
    ToAudioTTS(ToString(Floor(Task.curr.amount))), 
    ToAudioTTS("pound and "), 
    ToAudioTTS(ToString(Round(100*(Task.curr.amount-Floor(Task.curr.amount))))), 
    ToAudioTTS("pence"))


    ------------------------------
    Melissa Bailey
    Genesys - Employees
    ------------------------------



  • 5.  RE: Architect flow TTS playback for dynamic data

    Posted 05-16-2022 05:42
    Edited by Simon Brown 05-16-2022 07:26
    Hi Melissa,

    I do appreciate the response.
    I have to disagree on the whole point of it not relying on TTS.
    I set script to TTS so it does rely on TTS. I dont want a mix of TTS and generic voice playback. The customer wants a consistent voice.

    And, uploading recordings, done in the same TTS voice will be time consuming to create and import with current UI, never mind if customer decides on an alternative voice later on.

    I want to rely on the TTS engine to playback dynamic data and ideally, for every amount and date, and digits playback I didn't want to (or expect) to have to manipulate the expressions to trick Architect into using TTS.

    I tried the Amazon polly and Google TTS engines, via their own web stie to test, and both took values and played them back as a single voice, with no manipulation or SSML required for a good result.
    I used "Balance is £164.32 last transaction dated 10/May/2022"  and both identified currency and date format directly.

    There are subtleties as well, like a balance of £15.00 would automatically ignore the pence part and say "Fifteen pounds" only wheras in Architect expression I will need to handle these.

    If i used Polly/Google them I suspect the same problem will arise as Architect will do its own implementation.

    The reason for being frustrated by this is the project is using architect to deliver a full self care solution with lots of dynamic currency, number, date and digits playback.

    Feels like needs a function to pass variables (Formatted according to type) to the TTS engine and let TTS interpret. ToTTS(Currency) , ToTTS(Date) etc.
    Some support SSML so that could be incorporated as optional parameters. 
     
    I can look at posting something in Aha around a feature request but it's not going to happen in my project life-cycle.

    Thanks
    Simon

    /Edit

    After experimenting more I can get to use TTS and a better experience with currency expression formatted as such;

    BalanceAsCurrency = £164.20
    Balance60p = £0.60

    Balance £15.00

     

    ToAudioTTS(Append("£",ToString(Task.BalanceAsCurrency.amount)))

    ToAudioTTS(Append("£",ToString(Task.Balance60p.amount)))

    ToAudioTTS(Append("£",ToString(Task.Balance15.amount)))


    Plays correctly for values (TTS interpretation, not the ToAudio interpration)
    This helps with currency at least.


  • 6.  RE: Architect flow TTS playback for dynamic data

    Posted 07-04-2023 10:05

    Hi Simon,

    I am trying to do exactly the same thing as you and was wondering if you were able to achieve the pound and pence breakdown with the approach you mentioned in the end, thus did the following resulted in an response of "One hundred Sixty Four pounds and 20 pence"? or was it "One hundred sixty four point twenty pounds"?

    BalanceAsCurrency = £164.20

    ToAudioTTS(Append("£",ToString(Task.BalanceAsCurrency.amount)))



    ------------------------------
    Aakanksha Goyal
    Cooperatieve Rabobank U.A.
    ------------------------------



  • 7.  RE: Architect flow TTS playback for dynamic data

    Posted 07-04-2023 11:27

    Hi,

    What was needed for TTS to play correctly was to include the number of decimal places in the ToString(), so the expression needs to look like;

    Append("£",ToString(Task.BalanceAsCurrency.amount,2))

    Regards

    Simon



    ------------------------------
    Simon Brown
    Maintel Europe Limited
    ------------------------------



  • 8.  RE: Architect flow TTS playback for dynamic data

    Posted 07-06-2023 08:06

    Thank you for your reply Simon, I did try this expression however it still doesn't pronounce it as euro and cents in my case. So it says one hundred sixty four point twenty euros. 

    Do you know if that's possible with this expression? 



    ------------------------------
    Aakanksha Goyal
    Cooperatieve Rabobank U.A.
    ------------------------------



  • 9.  RE: Architect flow TTS playback for dynamic data

    Posted 07-06-2023 08:27

    Okay, I understand now. It has to do with the TTS engine being used. I am using Microsoft TTS engine and that doesn't do its own interpretation for currency when it's supplied with 1076.65€ value. 

    With Polly/Google it is possible I think. 



    ------------------------------
    Aakanksha Goyal
    Cooperatieve Rabobank U.A.
    ------------------------------



  • 10.  RE: Architect flow TTS playback for dynamic data

    Posted 07-06-2023 09:27

    Hi,

    Even if linked to MS TTS it should follow rules.

    I just tried with Euro symbol in expression and it played correctly.

    Frustratingly the play currency variable to 2 decimal places plays incorrectly. For me this is a bug but Genesys do not see it as such.

    Simon



    ------------------------------
    Simon Brown
    Maintel Europe Limited
    ------------------------------



Need Help finding something?

Check out the Genesys Knowledge Network - your all-in-one access point for Genesys resources