How I improved my VoiceBot product

Hello Guys,
Here I like to share some of the points in which the improvement can happen in voice bot. Today the voice bots are in evolving stage and getting continuous improvements in it to give better customer experience. Everyone is trying to build more user friendly and more convenient voice bot that can easily talk with customer and help them.

Below are the points in which direction I worked to improve my voice bot product to give a feel, more likely talking to Human.

 

Bot Interruption:

When I developed voice bot, it was designed like it can be interrupted any time during announcement. That is very common just like you interrupt traditional IVR via DTMF input to navigate further. Then I got some suggestion it should be configurable option like interrupt=yes/no. If customer selects ‘yes’ bot flow can be interrupted any time during announcement. And if customer selects ‘no’ bot flow can be interrupted only after announcement from Bot is completed. So, this option helped lot of bots in noisy environment where bot cannot take immediate input (noisy input) and wait till the announcement over by Bot.

 

Bot Response Delay:

Today the voice bots are connected with LLM (Large Language Model) also. Such models are highly trained and work on complex logic. So, some time we get a delay from such models to get the next Bot response. In such situation I added a soft hold music till the Bot get next response and announce to user. This will give a smoother experience to user while talking with bot.

 

Remove Noise from Speech:

In voice bots the customer asks things via voice commands. It is very much obvious to have a noise in this user’s voice input. (user can talk from any place inside premises or roadside). So, in this situation the removal of noise is very much needed to have better quality of speech to text data and to get better bot response based on that detected data. To overcome this condition, I added cleaning of voice input (removing noise) before using it in the voice bot product. This way I got better results in understanding user’s context and respond them more effectively.

 

TTS & STT Cost Reduction:

As we know TTS (text to speech) and STT (speech to text) are key elements in any voice bot, I have added a option to use pre-recorded prompts in voice bot. This option we can use to announce generic message and common messages (the messages used frequently and same for all users E.g. – Thank you for connecting with us, have a good day!). So, for these common messages we can use pre-recorded prompts and save TTS cost, as every time do not need to perform TTS API call. Likewise, to save STT cost we can create our own STT server and integrate voice bot with it, this way complete STT cost can be eliminated. Obviously, this can help in large volume calls and save a lot of cost.

 

Speedup Bot Response:

Here, this thing depends on multiple factors. The possible instances on which I work are listed below,

a) Silence Time:
Bot needs to take certain amount of silent time (Like 1s) for assuming the customer has finished speaking, then it goes for searching next response from NLP. This silent time to detect customer completed talking can be reduced to overcome latency issue. Again, this option can be used to reduced latency in voice bot that works on small commands like ‘Yes’, ‘No’, ‘Sure, I agree’ etc. instead of long phrases like ‘Yes, I want to book an appointment on upcoming Monday.’
b) NLP Engine Response:
This NLP engine query may cause certain delay based on where it is deployed (over public or private network). So, this engine should be deployed very close to main voice bot server instead of in different geographical region and over internet.
c) TTS and STT Response:
Obviously in dynamic voice bot these two operations are very frequent and critical. One can try to use AWS Polly if the server is on AWS EC2 instance to reduce latency. Likewise, one can deploy own STT service on local network only to reduce latency.

Comments

No comments yet. Why don’t you start the discussion?

Leave a Reply

Your email address will not be published. Required fields are marked *