Genesys Cloud CX

 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.