Individual Component Installation of Nuance on Windows 2012 R2

I have done more Nuance installs in the last few weeks than I’ve done in my whole life. Recently I had to revisit installing Nuance without using the Nuance Portal and since it had been a few years since I had gotten around to it I figured I would document the process as a few things were murky in my mind. We’re going to be installing:

License Manger 11.7
Nuance Recognizer 10.2.8
Nuance Vocalizer (Enterprise) 6.0.7
Nuance Speech Server 6.2.9

This installation will work with UCCE/CVP 11.6 using VVB which means mrcp2 and the configuration is specific to mrcp2.

License Manager

First start with the License Manager as this components allows everything else to operate. The installation is pretty much a next, next, finish process. You will be asked to do a restart of the server.

The validation process is pretty straight forward. First, ensure that the Windows service was installed. It should not be running, but it should be set as automatic. Next open up the Licensing Tools program you just installed go to Start/Stop/Reread and hit Start Server. This will use a temp license to start up. The temp license is stored in C:\Program Files\Nuance\license_manager\license. Once you start the service confirm you see the Windows service as running. And that the output of Server Status is this:

——–
Status
——–
Flexible License Manager status on Tue 4/7/2020 13:17

[Detecting lmgrd processes…]
License server status: 27000@NUANCEHOST
License file(s) on NUANCEHOST: C:\Program Files\Nuance\license_manager\license\temp.lic:

NUANCEHOST: license server UP (MASTER) v11.7

Vendor daemon status (on NUANCEHOST):

swilmgrd: UP v11.7
Feature usage info:

Users of dummy: (Total of 1 license issued; Total of 0 licenses in use)

Go to Config Services tab to point to your license file. As a matter of practice I keep all licenses files in the same location to make it easy. Either restart the service or re-read the license file to ensure it reflects your entitlement correctly. From this point forward you need to make sure to have a proper license for each component otherwise the validation steps will fail.

Nuance Recognizer

This installer is very much like the licensing tool, which means it’s a next, next, finished process. You will have to perform a restart of the server once it’s done. Additionally, you will need to install the languages you want your recognizer to support. As an example, for en-us, there are two files you will need to install: NRec-en-US-10.0.2-10.2.0.x86_64-windows.zip and NRec-en-US-10.0.2-10.2.0-CumulativePatch-2_windows.zip.

The base installation of en-us is straight forward, but the patch is a bit more involved. First, unzip the patch to a temporary location make sure this temp location doesn’t have any spaces in the name otherwise the installer will fail. Second, open a command prompt as an administrator and cd to the temporary location of the patch. Ensure that “echo %SWISRSDK%” returns where the recognizer is installed for example C:\Program Files\Nuance\Recognizer. Also validate what version of nuance you’re running by running “nuance-version -p”. What you want to pay attention is the following:

Name: Nuance Recognizer
Location: C:\Program Files\Nuance\Recognizer\
Version:
Nuance Recognizer 10.2.8.2017022711 x86_64 – Package revision 17058

Name: Nuance Recognizer English en-US Language Pack
Location: C:\Program Files\Nuance\Recognizer\config\en.us\10.0.2
Version:
Nuance Recognizer en-US Language Pack – Rev. 10.0.2-10.2.0-15335

This tells us we have our base install and the language. Now run the install_cumulative_patch.bat and then validate it installed correctly by checking the Nuance version again. You should see this:

Name: Nuance Recognizer
Location: C:\Program Files\Nuance\Recognizer\
Version:
Nuance Recognizer 10.2.8.2017022711 x86_64 – Package revision 17058

Name: Nuance Recognizer English en-US Language Pack
Location: C:\Program Files\Nuance\Recognizer\config\en.us\10.0.2
Version:
Base: Nuance Recognizer en-US Language Pack – Rev. 10.0.2-10.2.0-15335
Cumulative Patch 2:
ELANGPACKS-36 Creditcard expiry date grammar – Extend default expiry year to be 25 years from now (parameter maxallowed changed to 300 months)
ELANGPACKS-39 Fixed @reject@, added @exh@ and removed #sil# from @noise
@ entries in system dictionary – all grammars recompiled with updated system dictionary
ENR-124 Added missing transcription ‘zed’ for letter z to system
dictionary

There are two ways to configure the recognizer service. The first is by editing Baseline.xml and the second it to use a user config which overwrites Baseline.xml. My preferred method is to use a user config file as it’s much easier to manage and it removes the monstrosity that is the Baseline files, but because that’s a whole other ball of wax we’re going to just do the direct edit to Baseline.xml. You must enter the licenses you have available in the value tags below in the following two lines:

<param name=”swirec_license_ports”>
<declaration group=”license” type=”int”
set_by=”default”>
<min_value>0</min_value>
</declaration>
<value>4</value>
</param>

<!– How many osr_swiep licenses will be checked out during SWIepInit() –>
<param name=”swiep_license_ports”>
<declaration group=”license” type=”int”
set_by=”default”>
<min_value>0</min_value>
</declaration>
<value>4</value>
</param>

The final step is ensuring you set the Recognizer to start as a service. Open up a command prompt again and cd to C:\Program Files\Nuance\Recognizer\Recognizer Service\amd64\bin. From there you need to decide what parameters you’ll set for the service. The below parameters are the default and should be used unless you know exactly what you’re doing.

C:\Program Files\Nuance\Recognizer\Recognizer Service\amd64\bin>nrs-win-service-
init.exe -i nrs-win-service.exe -servlet nrs -port 8200

From there start your service and then it’s time to validate everything worked as expected.

To validate that your recognizer is working as expected Nuance provides a small exe which allows you to test your config. You can find the utility at C:\Program Files\Nuance\Recognizer\samples\swirec_sample\SWIrecSample.exe. Using the command prompt run the utility piping the output to a log file:

SWIrecSample.exe > log.txt

You should see a lot of successful lines in the log file, here’s a small sample:

Function SWIrecInit returned SUCCESS.

Calling SWIepInit.

Calling SWIrecRecognizerCreate.

Function SWIrecRecognizerCreate returned SUCCESS.

Calling SWIrecSessionStart.

Nuance Vocalizer and Languages

Same thing as all the other installers, these are just a next, next, finished. Ensure you install the vocalizer first, restart, then languages and restart. The configuration is pretty straight forward too. As before having a user config is my preferred method however we’re going to stick with the basics and just update baseline.xml. Please note that this baseline.xml is different than the Recognizer Baseline.xml. Here are the two parameters you have to update based on your license entitlement:

<tts_license_ports>4</tts_license_ports>
<cpr_license_ports>4</cpr_license_ports>
<ssml_validation>warn</ssml_validation>

One thing to note is that the Vocalizer doesn’t need a Windows service to run, so don’t think you’ve done something wrong if you can’t see it in the services window. The validation process is two parts too. First run the nuance-version -p command and validate your voices are installed and recognized:

Name: Vocalizer for Enterprise en-US Zoe bet4 f8
Location: C:\Program Files (x86)\Nuance\Vocalizer for Enterprise\
Version:
Vocalizer for Enterprise 6.1.1.2013100217
Vocalizer for Enterprise Build ID 6.1.1.13275
Language: en-US
Voice: Zoe
Voice model: bet4
Coder: encrypt
Language version: 5.2.3.0000
Voice version: 5.2.3.13269

Name: Vocalizer for Enterprise
Location: C:\Program Files (x86)\Nuance\Vocalizer for Enterprise\
Version:
Vocalizer for Enterprise 6.0.7.2018052303
Vocalizer for Enterprise Build ID 6.0.7.18143

Next using the command line cd to C:\Program Files (x86)\Nuance\Vocalizer for Enterprise\common\speech\components and run the following command:

nvncmdline.exe -l en-us -n Zoe -s “Hello this is Zoe using text to speech.” -w –
o test.wav

Please note that you have to match the language and voice you have installed in the system. The good thing is that this command’s error outputs will tell you if there’s an issue with either the voice or the language not being detected. If the command runs successfully listen to test.wav to ensure it sounds like you expect it to.

Nuance Speech Server

The most important piece of this is that you install this component last as the installer detects the Recognizer and Vocalizer upon running. If you don’t install it last, then you will have to make some changes to your config to allow the Speech Server to know where to find the other components. The installer just like the others is just a next, next, finish installation. You will have to restart the server upon completion. Additionally, you should install the Nuance Speech Server Client matching your Speech Server which will allow you validate your configuration. Once everything is installed ensure the service is started and set it to an automatic startup type.

Validation is similar to the Vocalizer. Nuance provides a client which is able to test the Speech Server. From the command prompt go to C:\Program Files (x86)\Nuance\Speech Server\Client\script. From there run the following command:

..\bin\client.exe -s localhost -p 5060 demoprompt.mrcp

The output will be in demoPrompt.log and should be a good bit of SIP messaging and SSML. The most likely error you will see is that your service is not started or that you don’t have a valid license. Here’s a sample of the output:


INVITE sip:mresources@localhost:5060 SIP/2.0
Via: SIP/2.0/TCP NUANCEHOST:49474;branch=z9hG4bKf529526265c4fb15
Max-Forwards: 6
To: MediaServer <sip:mresources@localhost:5060>
From: clien_user <sip:clien_user@NUANCEHOST:49474>;tag=b5d67ee5
Contact: <sip:clien_user@NUANCEHOST;transport=TCP>
Call-ID: a385e9e251def062
CSeq: 1467710150 INVITE
Content-Type: application/sdp
Content-Length: 322

<?xml version=”1.0″?>
<speak version=”1.0″ xml:lang=”en-US” xmlns=”http://www.w3.org/2001/10/synthesis”>
<p>
<s>You have 4 new messages.</s>
<s>The first is from <say-as
interpret-as=”name”>Stephanie Williams</say-as>
and arrived at
<say-as interpret-as=”time”>3:45pm</say-as>.</s>

<s>The subject is <prosody
rate=”fast”>ski trip</prosody></s>
</p>
</speak>

Add your new ASR and TTS server to VVB and you should be good to go.

~david

1 Comments

  1. Great page & excellent detail. I’m fumbling through this deployment now. My mistake was picking up the NSS 11.0.7 Deployment Doc – I came away thinking that Nuance Speech Sweet will install everything needed :-(

Leave a Reply