Last week we posted a blog on what we thought at the time was a miraculous fix to a licensing issue a lot of people seem to have experienced between Nuance and CVP. After some digging there appears to be a much easier way to fix it then the hack I posted last week.
If you navigate to the following directory on the nuance server:
C:\Program Files (x86)\Nuance\Vocalizer for Enterprise\config\baseline.xml
You will find a line that says <license_explicit>false</license_explicit>. This flag is important, what this is saying is “use a license for the duration a session is open”. This is the default setting. If you change this flag to true, the Nuance server will only hold a license while the TTS is speaking. This had a drastic affect on our licensing. Before we were using around 170 at our peak and now as you can see below we are using only 3 which is what we saw on our old IBM TTS server.
TIME=20150318204030312|CHAN=FFAKBKPOAAADLIFPAAAAAAAA|EVNT=SWIclst|VALU=Session FFAKBKPOAAADLIFPAAAAAAAA started|SRC=NSS|UCPU=0|SCPU=0 TIME=20150318204030312|CHAN=FFAKBKPOAAADLIFPAAAAAAAA|EVNT=SWIfrmt|ENCD=UTF-8|UCPU=0|SCPU=0 TIME=20150318204030375|CHAN=FFAKBKPOAAADLIFPAAAAAAAA|EVNT=NVOCsyst|LANG=American English|VOIC=Ava|VMDL=full_encryptf8|FREQ=8000|PVER=5.2.3|LVER=5.2.3.0000|VVER=184.108.40.20691|APNM= TIME=20150318204030375|CHAN=FFAKBKPOAAADLIFPAAAAAAAA|EVNT=NVOCliss|LUSED=3|LMAX=200|OMAX=200|LFEAT=tts TIME=20150318204030381|CHAN=FFAKBKPOAAADLIFPAAAAAAAA|EVNT=NVOClise|LUSED=1|LMAX=200|OMAX=200|LFEAT=tts TIME=20150318204030381|CHAN=FFAKBKPOAAADLIFPAAAAAAAA|EVNT=NVOCsynd|INPT=106|DURS=1003|RSTT=ok TIME=20150318204030381|CHAN=FFAKBKPOAAADLIFPAAAAAAAA|EVNT=NVOCinpt|MIME=application/synthesis+ssml|TXSZ=106|TEXT= TIME=20150318204030381|CHAN=FFAKBKPOAAADLIFPAAAAAAAA|EVNT=NVOCaudf|SAMP=8026|FREQ=8 TIME=20150318204104304|CHAN=FFAKBKPOAAADLIFPAAAAAAAA|EVNT=SWIclnd|VALU=Session FFAKBKPOAAADLIFPAAAAAAAA ended|SRC=NSS|UCPU=0|SCPU=0 TIME=20150318204104304|CHAN=FFAKBKPOAAADLIFPAAAAAAAA|EVNT=NUANtnat|TNAT=Nuance|UCPU=0|SCPU=0
The other thing you will want to do is go back and set your session timeout long enough to cover any amount of time there may be in between TTS plays. We have some rather large self-service app and found that 5 minutes was sufficient. Without this you could experience failures on subsequent calls to TTS within you app. Especially with the ridiculously low timeout of 3 secs in my previous blog post!
The configuration file with the timeout setting is located on Nuance in the NSSserver.cfg located as seen below.
We will be changing the to the following value. By default everything will use MRCPv1, but just in case. 🙂
server.mrcp1.rtsp.sessionTimeout VXInteger 300000 server.mrcp1.rtsp.sessionTimeout VXInteger 300000
Mystery solved! Thanks for all the hard work by the guys that worked on this both at Cloverhound and the customer! 🙂