How do I develop applications that do more with Microsoft Speech and NUI Technology?

Last reviewed: 7/8/2022

HOW Article ID: H072212

The information in this article applies to:

  • GrammarKit 8
  • KinesicsKit 6
  • LexiconKit 8
  • ProfileKit 8
  • SpeechKit 11
  • VoiceMarkupKit 8
  • VoiceXMLKit 5

Summary

Explore ways to do more with Microsoft Speech and NUI Technology.

More Information

Chant Developer Workbench 2022 includes GrammarKit to compile speech recognition grammars, KinesicsKit to detect movement in 3D space, LexiconKit to generate pronunciations for synthesis clarity, ProfileKit to manage speech recognition profiles, SpeechKit to recognize speech and synthesize text to speech, VoiceMarkupKit to markup text for tailored speech synthesis, and VoiceXMLKit to validate and run VoiceXML. It also provides an interative toolset for editing and testing with Microsoft grammars, movement detection sensors, speaker profiles, speech synthesis, Speech Synthesis Markup Language (SSML), and VoiceXML.

Develop applications that do more with Microsoft Speech Technology

Compile speech recognition grammars with GrammarKit from source string or file and optionally persist grammar binary.


// Instantiate GrammarKit
NGrammarKit _GrammarKit = new NGrammarKit();
// Set credentials
_GrammarKit.SetCredentials("Credentials");
// Create synthesizer
NSAPI5Recognizer _Recognizer = _GrammarKit.CreateRecognizerSynthesizer();

// Compile grammar
_Recognizer.CompileFile("SAPI5XML", "c:\\myvocab.xml");

// Instantiate LexiconKit object
CGrammarKit* _GrammarKit = new CGrammarKit();
// Set credentials
_GrammarKit->SetCredentials(L"Credentials");
// Create synthesizer
CSAPI5Recognizer* _Recognizer = _GrammarKit->CreateSAPI5Recognizer();

// Compile grammar
_Recognizer->CompileFile(L"SAPI5XML", L"c:\\myvocab.xml");

// Instantiate GrammarKit
CGrammarKit* _GrammarKit = new CGrammarKit();
// Set credentials
_GrammarKit->SetCredentials("Credentials");
// Create synthesizer
CSAPI5Recognizer* _Recognizer = _GrammarKit->CreateSAPI5Recognizer();

// Compile grammar
_Recognizer->CompileFile("SAPI5XML", "c:\\myvocab.xml");

var 
    _GrammarKit: TGrammarKit;
    _Recognizer: TSAPI5Recognizer;
    _Phonemes: string;
begin
    // Instantiate GrammarKit
    _GrammarKit := TGrammarKit.Create();
    // Set credentials
    _GrammarKit.SetCredentials('Credentials');
    // Create synthesizer
    _Recognizer := _GrammarKit.CreateSAPI5Recognizer();

    // Compile grammar
    _Recognizer.CompileFile('SAPI5XML', 'c:\\myvocab.xml');

// Instantiate GrammarKit
JGrammarKit _GrammarKit = new JGrammarKit();
// Set credentials
_GrammarKit.setCredentials("Credentials");
// Create synthesizer
JSAPI5Recognizer _Recognizer = _GrammarKit.createSAPI5Recognizer();

// Compile grammar
_Recognizer.compileFile("SAPI5XML", "c:\\myvocab.xml");

Detect movement in 3D space with KensicsKit for hands-free processing.


// Instantiate KinesicsKit
_KinesicsKit = new NKinesicsKit();
// Set credentials
_KinesicsKit.SetCredentials("Credentials");
// Create KinectSensor
_Sensor = _KinesicsKit.CreateKinectSensor();

// Turn the sensor on
_Sensor.Start();

// Turn the sensor off
_Sensor.Stop();

// Instantiate KinesicsKit
_KinesicsKit = new CKinesicsKit();
// Set credentials
_KinesicsKit->SetCredentials("Credentials");
// Create Sensor
_Sensor = _KinesicsKit->CreateKinectSensor();

// Turn the sensor on
_Sensor->Start();

// Turn the sensor off
_Sensor->Stop();

// Instantiate KinesicsKit
_KinesicsKit = new CKinesicsKit();
// Set credentials
_KinesicsKit->SetCredentials("Credentials");
// Create sensor
_Sensor = _KinesicsKit->CreateKinectSensor();

// Turn the sensor on
_Sensor->Start();

// Turn the sensor off
_Sensor->Stop();

// Instantiate KinesicsKit
_KinesicsKit := TKinesicsKit.Create();
// Set credentials
_KinesicsKit.SetCredentials('Credentials');
// Create sensor
_Sensor := _KinesicsKit.CreateKinectSensor();

// Turn the sensor on
_Sensor.Start();

// Turn the sensor off
_Sensor.Stop();

// Instantiate KinesicsKit
_KinesicsKit = new JKinesicsKit();
// Set credentials
_KinesicsKit.setCredentials("Credentials");
// Create KinectSensor
_Sensor = _KinesicsKit.createKinectSensor();

// Turn the sensor on
_Sensor.start();

// Turn the sensor off
_Sensor.stop();

Dim WithEvents _Sensor As NChantKinectSensor
Dim _KinesicsKit As NKinesicsKit
' Instantiate KinesicsKit
_KinesicsKit = New NKinesicsKit()
' Set credentials
_KinesicsKit.SetCredentials("Credentials")
' Create sensor
_Sensor = _KinesicsKit.CreateKinectSensor()

' Turn the sensor on
_Sensor.Start()

' Turn the sensor off
_Sensor.Stop()

Generate pronunciation phonemes with LexiconKit to use with SSML for Microsoft voices.


// Instantiate LexiconKit
NLexiconKit _LexiconKit = new NLexiconKit();
// Set credentials
_LexiconKit.SetCredentials("Credentials");
// Create synthesizer
NSAPI5Synthesizer _Synthesizer = _LexiconKit.CreateSAPI5Synthesizer();

// Generate phonemes
string _Phonemes = _Synthesizer.GeneratePhonemes("tomato", "Noun");

// Instantiate LexiconKit object
CLexiconKit* _LexiconKit = new CLexiconKit();
// Set credentials
_LexiconKit->SetCredentials(L"Credentials");
// Create synthesizer
CSAPI5Synthesizer* _Synthesizer = _LexiconKit->CreateSAPI5Synthesizer();

// Generate phonemes
wchar_t* _Phonemes = _Synthesizer->GeneratePhonemes(L"tomato", L"Noun");

// Instantiate LexiconKit
CLexiconKit* _LexiconKit = new CLexiconKit();
// Set credentials
_LexiconKit->SetCredentials("Credentials");
// Create synthesizer
CSAPI5Synthesizer* _Synthesizer = _LexiconKit->CreateSAPI5Synthesizer();

// Generate phonemes
String _Phonemes = _Synthesizer->GeneratePhonemes("tomato", "Noun");

var 
    _LexiconKit: TLexiconKit;
    _Synthesizer: TSAPI5Synthesizer;
    _Phonemes: string;
begin
    // Instantiate LexiconKit
    _LexiconKit := TLexiconKit.Create();
    // Set credentials
    _LexiconKit.SetCredentials('Credentials');
    // Create synthesizer
    _Synthesizer := _LexiconKit.CreateSAPI5Synthesizer();

    // Generate phonemes
    _Phonemes := _Synthesizer.GeneratePhonemes('tomato', 'Noun');

// Instantiate LexiconKit
JLexiconKit _LexiconKit = new JLexiconKit();
// Set credentials
_LexiconKit.setCredentials("Credentials");
// Create synthesizer
JSAPI5Synthesizer _Synthesizer = _LexiconKit.createSAPI5Synthesizer();

// Generate phonemes
String _Phonemes = _Synthesizer.generatePhonemes("tomato", ""Noun");

Dim _LexiconKit As NLexiconKit
Dim WithEvents _Synthesizer As NSAPI5Synthesizer
Dim _Phonemes As String
' Instantiate LexiconKit
_LexiconKit = New NLexiconKit()
' Set credentials
_LexiconKit.SetCredentials("Credentials")
' Create synthesizer
_Synthesizer = _LexiconKit.CreateSAPI5Synthesizer()

' Generate phonemes
_Phonemes = _Synthesizer.GeneratePhonemes("tomato", "Noun")

Manage speech recognition speaker profiles with ProfileKit to enhance recognition quality.


// Instantiate ProfileKit object
NProfileKit _ProfileKit = new NProfileKit();
// Set credentials
_ProfileKit.SetCredentials("Credentials");
// Create recognizer
NSAPI5Recognizer _Recognizer = _ProfileKit.CreateSAPI5Recognizer();

// Create a new speaker profile
_Recognizer.CreateSpeaker("NewUser");

// Calibrate microphone
bool isSupported = _Recognizer.IsSupported("MicTraining");
if (isSupported)
{
    _Recognizer.ShowDialog("MicTraining", new System.Windows.Interop.WindowInteropHelper(this).Handle, string.Empty, string.Empty);
}
// Train speaker
isSupported = _Recognizer.IsSupported("UserTraining");
if (isSupported)
{
    _Recognizer.ShowDialog("UserTraining", new System.Windows.Interop.WindowInteropHelper(this).Handle, string.Empty, string.Empty);
}

// Delete the speaker
_Recognizer.DeleteSpeaker("NewUser");

// Instantiate ProfileKit
CProfileKit* _ProfileKit = new CProfileKit();
// Set credentials
_ProfileKit->SetCredentials(L"Credentials");
// Create recognizer
CSAPI5Recognizer* _Recognizer = _ProfileKit->CreateSAPI5Recognizer();

// Create a new speaker profile
_Recognizer->CreateSpeaker(L"NewUser");

// Calibrate microphone
bool isSupported = _Recognizer->IsSupported(L"MicTraining");
if (isSupported)
{
    _Recognizer->ShowDialog(L"MicTraining", GetSafeHwnd(), L"", L"");
}
// Train speaker
isSupported = _Recognizer->IsSupported(L"UserTraining");
if (isSupported)
{
    _Recognizer->ShowDialog(L"UserTraining", GetSafeHwnd(), L"", L"");
}

// Delete the speaker
_Recognizer->DeleteSpeaker(L"NewUser");

// Instantiate ProfileKit object
CProfileKit* _ProfileKit = new CProfileKit();
// Set credentials
_ProfileKit->SetCredentials("Credentials");
// Create recognizer
CSAPI5Recognizer* _Recognizer = _ProfileKit->CreateSAPI5Recognizer();

// Create a new speaker profile
_Recognizer->CreateSpeaker("NewUser");

// Calibrate microphone
bool isSupported = _Recognizer->IsSupported("MicTraining");
if (isSupported)
{
    _Recognizer->ShowDialog("MicTraining", Form1->Handle, "", "");
}
// Train speaker
isSupported = _Recognizer->IsSupported("UserTraining");
if (isSupported)
{
    _Recognizer->ShowDialog("UserTraining", Form1->Handle, "", "");
}

// Delete the speaker
_Recognizer->DeleteSpeaker("NewUser");

var
    _ProfileKit: TProfileKit;
    _Recognizer: TSAPI5Recognizer;
    isSupported: Boolean;
begin
    // Instantiate ProfileKit
    _ProfileKit := TProfileKit.Create();
    // Set credentials
    _ProfileKit.SetCredentials('Credentials');
    // Create recognizer
    _Recognizer := _ProfileKit.CreateSAPI5Recognizer();

    // Create a new speaker profile
    _Recognizer.CreateSpeaker('NewUser');

    // Calibrate microphone
    isSupported := _Recognizer.IsSupported("MicTraining");
    if (isSupported) then
    begin
        _Recognizer.ShowDialog("MicTraining", Form1.Handle, '', '');
    end;
    // Train speaker
    isSupported := _Recognizer.IsSupported("UserTraining");
    if (isSupported) then
    begin
        _Recognizer.ShowDialog("UserTraining", Form1.Handle, '', '');
    end;

    // Delete the speaker
    _Recognizer.DeleteSpeaker('NewUser');

// Instantiate ProfileKit
JProfileKit _ProfileKit = new JProfileKit();
// Set credentials
_ProfileKit.setCredentials("Credentials");
// Create recognizer
JSAPI5Recognizer _Recognizer = _ProfileKit.createSAPI5Recognizer();

// Create a new speaker profile
_Recognizer.createSpeaker("NewUser");

// Calibrate microphone
Boolean isSupported = _Recognizer.isSupported("MicTraining");
if (isSupported)
{
    _Recognizer.showDialog("MicTraining");
}
// Train speaker
isSupported = _Recognizer.isSupported("UserTraining");
if (isSupported)
{
    _Recognizer.showDialog("UserTraining");
}

// Delete the speaker
_Recognizer.deleteSpeaker("NewUser");

Dim _ProfileKit As NProfileKit
Dim WithEvents _Synthesizer As NSAPI5Recognizer
Dim isSupported As Boolean
' Instantiate ProfileKit object
_ProfileKit = New NProfileKit();
' Set credentials
_ProfileKit.SetCredentials("Credentials")
// Create recognizer
_Recognizer = _ProfileKit.CreateSAPI5Recognizer()

' Create a new speaker profile
_Recognizer.CreateSpeaker("NewUser")

isSupported = _Recognizer.IsSupported("MicTraining")
If (isSupported) Then
    _Recognizer.ShowDialog("MicTraining", New System.Windows.Interop.WindowInteropHelper(Me).Handle, string.Empty, string.Empty);
End If
isSupported = _Recognizer.IsSupported("UserTraining")
If (isSupported) Then
    _Recognizer.ShowDialog("UserTraining", New System.Windows.Interop.WindowInteropHelper(Me).Handle, string.Empty, string.Empty);
End If

' Delete the speaker
_Recognizer.DeleteSpeaker("NewUser")

Recognize speech with SpeechKit for for transcription, data entry, or command and control.


// Instantiate SpeechKit
NSpeechKit _SpeechKit = new NSpeechKit();
// Set credentials
_SpeechKit.SetCredentials("Credentials");
// Create recognizer
NSAPI5Recognizer _Recognizer = _SpeechKit.CreateSAPI5Recognizer();

// Start speech recognition from microphone audio source
_Recognizer.StartRecognition();

// Instantiate SpeechKit
CSpeechKit* _SpeechKit = new CSpeechKit();
// Set credentials
_SpeechKit->SetCredentials(L"Credentials");
// Create recognizer
CSAPI5Recognizer* _Recognizer = _SpeechKit->CreateSAPI5Recognizer();

// Start speech recognition from microphone audio source
_Recognizer->StartRecognition();

// Instantiate SpeechKit
CSpeechKit* _SpeechKit = new CSpeechKit();
// Set credentials
_SpeechKit->SetCredentials("Credentials");
// Create recognizer
CSAPI5Recognizer* _Recognizer = _SpeechKit->CreateSAPI5Recognizer();

// Start speech recognition from microphone audio source
_Recognizer->StartRecognition();

var 
    _SpeechKit: TSpeechKit;
    _Recognizer: TSAPI5Recognizer;
begin
    // Instantiate SpeechKit
    _SpeechKit := TSpeechKit.Create();
    // Set credentials
    _SpeechKit.SetCredentials('Credentials');
    // Create recognizer
    _Recognizer := _SpeechKit.CreateSAPI5Recognizer();

    // Start speech recognition from microphone audio source
    _Recognizer.StartRecognition();

// Instantiate SpeechKit
JSpeechKit _SpeechKit = new JSpeechKit();
// Set credentials
_SpeechKit.setCredentials("Credentials");
// Create recognizer
JSAPI5Recognizer _Recognizer = _SpeechKit.createSAPI5Recognizer();

// Start speech recognition from microphone audio source
_Recognizer.startRecognition();

Dim _SpeechKit As NSpeechKit
Dim WithEvents _Recognizer As NSAPI5Recognizer
' Instantiate SpeechKit
_SpeechKit = New NSpeechKit()
' Set credentials
_SpeechKit.SetCredentials("Credentials")
' Create recognizer
_Recognizer = _SpeechKit.CreateSAPI5Recognizer()

' Start speech recognition from microphone audio source
_Recognizer.StartRecognition()

Generate text to speech with SpeechKit for playback or persistence to a file.


// Instantiate SpeechKit
NSpeechKit _SpeechKit = new NSpeechKit();
// Set credentials
_SpeechKit.SetCredentials("Credentials");
// Create synthesizer
NSAPI5Synthesizer _Synthesizer = _SpeechKit.CreateSAPI5Synthesizer();

// Synthesize speech for playback
_Synthesizer.Speak("Hello world.", (int)SPEAKFLAGS.SPF_ASYNC);

// Synthesize speech to file
_Synthesizer.Speak("Hello world.", (int)SPEAKFLAGS.SPF_ASYNC, "myaudio.wav", (int)SPSTREAMFORMAT.SPSF_Default);

// Instantiate SpeechKit
CSpeechKit* _SpeechKit = new CSpeechKit();
// Set credentials
_SpeechKit->SetCredentials(L"Credentials");
// Create synthesizer
CSAPI5Synthesizer* _Synthesizer = _SpeechKit->CreateSAPI5Synthesizer();

// Synthesize speech for playback
_Synthesizer->Speak(L"Hello world.", SPF_ASYNC);

// Synthesize speech to file
_Synthesizer->Speak(L"Hello world.", SPF_ASYNC, L"myaudio.wav", SPSF_Default);

// Instantiate SpeechKit
CSpeechKit* _SpeechKit = new CSpeechKit();
// Set credentials
_SpeechKit->SetCredentials("Credentials");
// Create synthesizer
CSAPI5Synthesizer* _Synthesizer = _SpeechKit->CreateSAPI5Synthesizer();

// Synthesize speech for playback
_Synthesizer->Speak("Hello world.", SPF_ASYNC);

// Synthesize speech to file
_Synthesizer->Speak("Hello world.", SPF_ASYNC, "myaudio.wav", SPSF_Default);

var 
    _SpeechKit: TSpeechKit;
    _Synthesizer: TSAPI5Synthesizer;
begin
    // Instantiate SpeechKit
    _SpeechKit := TSpeechKit.Create();
    // Set credentials
    _SpeechKit.SetCredentials('Credentials');
    // Create synthesizer
    _Synthesizer := _SpeechKit.CreateSAPI5Synthesizer();

    // Synthesize speech for playback
    _Synthesizer.Speak('Hello world.', SPF_ASYNC);

    // Synthesize speech to file
    _Synthesizer.Speak('Hello world.', SPF_ASYNC, 'myaudio.wav', SPSF_Default);

// Instantiate SpeechKit
JSpeechKit _SpeechKit = new JSpeechKit();
// Set credentials
_SpeechKit.setCredentials("Credentials");
// Create synthesizer
JSAPI5Synthesizer _Synthesizer = _SpeechKit.createSAPI5Synthesizer();

// Synthesize speech for playback
_Synthesizer.speak("Hello world.", SPF_ASYNC);

// Synthesize speech to file
_Synthesizer.speak("Hello world.", SPF_ASYNC, "myaudio.wav", SPSTREAMFORMAT.SPSF_Default);

Dim _SpeechKit As NSpeechKit
Dim WithEvents _Synthesizer As NSAPI5Synthesizer
' Instantiate SpeechKit
_SpeechKit = New NSpeechKit()
' Set credentials
_SpeechKit.SetCredentials("Credentials")
' Create synthesizer
_Synthesizer = _SpeechKit.CreateSAPI5Synthesizer()

' Synthesize speech for playback
_Synthesizer.Speak("Hello world.", SPEAKFLAGS.SPF_ASYNC)

' Synthesize speech to file
_Synthesizer.Speak("Hello world.", SPEAKFLAGS.SPF_ASYNC, "myaudio.wav", SPSTREAMFORMAT.SPSF_Default)

Generate Speech Synthesis Markup Language (SSML) with VoiceMarkupKit to tailor speech synthesis.


NVoiceMarkupKit _VoiceMarkupKit = new NVoiceMarkupKit();
_VoiceMarkupKit.SetCredentials("Credentials");
NSAPI5VoiceMarkup _SAPI5VoiceMarkup = _VoiceMarkupKit.CreateW3CVoiceMarkup();

string markup = _SAPI5VoiceMarkup.GenerateMarkup("Rate", "5", "This text is spoken above the baseline at rate of five");

CVoiceMarkupKit* _VoiceMarkupKit = new CVoiceMarkupKit();
_VoiceMarkupKit->SetCredentials("Credentials");
CSAPI5VoiceMarkup* _SAPI5VoiceMarkup = _VoiceMarkupKit->CreateSAPI5VoiceMarkup();

wchar_t* markup = _SAPI5VoiceMarkup->GenerateMarkup(L"Rate", L"5", L"This text is spoken above the baseline at rate of five");

CVoiceMarkupKit* _VoiceMarkupKit = new CVoiceMarkupKit();
_VoiceMarkupKit->SetCredentials("Credentials");
CSAPI5VoiceMarkup* _SAPI5VoiceMarkup = _VoiceMarkupKit->CreateSAPI5VoiceMarkup();

string markup = _SAPI5VoiceMarkup->GenerateMarkup("Rate", "5", "This text is spoken above the baseline at rate of five");

var 
    _VoiceMarkupKit: TVoiceMarkupKit;
    _SAPI5VoiceMarkup: TSAPI5VoiceMarkup;
    markup: string;  
begin       
    _VoiceMarkupKit := TVoiceMarkupKit.Create();  
    _VoiceMarkupKit.SetCredentials('Credentials');  
    _SAPI5VoiceMarkup := _VoiceMarkupKit.CreateSAPI5VoiceMarkup();   

    markup = _SAPI5VoiceMarkup.GenerateMarkup('Rate', '5', 'This text is spoken above the baseline at rate of five');

JVoiceMarkupKit _VoiceMarkupKit = new JVoiceMarkupKit();
_VoiceMarkupKit.setCredentials("Credentials");
JSAPI5VoiceMarkup _SAPI5VoiceMarkup = _VoiceMarkupKit.createSAPI5VoiceMarkup();

String markup = _SAPI5VoiceMarkup.generateMarkup("Rate", "5", "This text is spoken above the baseline at rate of five");

Dim _VoiceMarkupKit As NVoiceMarkupKit = Nothing
Dim _SAPI5VoiceMarkup As NSAPI5VoiceMarkup = Nothing
Dim markup as String
_VoiceMarkupKit = New NVoiceMarkupKit()
_VoiceMarkupKit.SetCredentials("Credentials")
_SAPI5VoiceMarkup = _VoiceMarkupKit.CreateW3CVoiceMarkup()

markup = _SAPI5VoiceMarkup.GenerateMarkup("Rate", "5", "This text is spoken above the baseline at rate of five")

Validate and run VoiceXML with VoiceXMLKit to design and test documents before deployment.


// Instantiate VoiceXMLKit
NVoiceXMLKit _VoiceXMLKit = new NVoiceXMLKit();
// Set credentials
_VoiceXMLKit.SetCredentials("Credentials");
// Create synthesizer
NSAPI5VoiceXML _VoiceXML = _VoiceXMLKit.CreateSAPI5VoiceXML();

// Validate document
_VoiceXML.CompileDocument("mydocument.vxml"); 

// Interpret the document
_VoiceXML.RunDocument("mydocument.vxml", "Microsoft David Desktop - English (United States)", "Microsoft Speech Recognizer 8.0 for Windows (English - US)");

// Instantiate VoiceXMLKit
CVoiceXMLKit* _VoiceXMLKit = new CVoiceXMLKit();
// Set credentials
_VoiceXMLKit->SetCredentials(L"Credentials");
// Create synthesizer
CSAPI5VoiceXML* _VoiceXML = _VoiceXMLKit->CreateSAPI5VoiceXML();

// Validate document
_VoiceXML->CompileDocument(L"mydocument.vxml");

// Interpret the document
_VoiceXML->RunDocument(L"mydocument.vxml", L"Microsoft David Desktop - English (United States)", L"Microsoft Speech Recognizer 8.0 for Windows (English - US)");

// Instantiate VoiceXMLKit
CVoiceXMLKit* _VoiceXMLKit = new CVoiceXMLKit();
// Set credentials
_VoiceXMLKit->SetCredentials("Credentials");
// Create synthesizer
CSAPI5VoiceXML* _VoiceXML = _VoiceXMLKit->CreateSAPI5VoiceXML();

// Validate document
_SessionID = _VoiceXML->CompileDocument("mydocument.vxml");

// Interpret the document
_VoiceXML->RunDocument("mydocument.vxml", "Microsoft David Desktop - English (United States)", "Microsoft Speech Recognizer 8.0 for Windows (English - US)");

var 
    _VoiceXMLKit: TVoiceXMLKit;
    _VoiceXML: TSAPI5VoiceXML;
    _Phonemes: string;
begin
    // Instantiate VoiceXMLKit
    _VoiceXMLKit := TVoiceXMLKit.Create();
    // Set credentials
    _VoiceXMLKit.SetCredentials('Credentials');
    // Create synthesizer
    _VoiceXML := _VoiceXMLKit.CreateSAPI5VoiceXML();

    // Validate document
    _VoiceXML.CompileDocument('mydocument.vxml');

    // Interpret the document
    _VoiceXML.RunDocument('mydocument.vxml', 'Microsoft David Desktop - English (United States)', 'Microsoft Speech Recognizer 8.0 for Windows (English - US)');

// Instantiate VoiceXMLKit
JVoiceXMLKit _VoiceXMLKit = new JVoiceXMLKit();
// Set credentials
_VoiceXMLKit.setCredentials("Credentials");
// Create synthesizer
JSAPI5VoiceXML _VoiceXML = _VoiceXMLKit.createSAPI5VoiceXML();

// Validate document
_VoiceXML.compileDocument("mydocument.vxml");

// Interpret the document
_VoiceXML.runDocument("mydocument.vxml", "Microsoft David Desktop - English (United States)", "Microsoft Speech Recognizer 8.0 for Windows (English - US)");

Dim _VoiceXMLKit As NVoiceXMLKit
Dim WithEvents _VoiceXML As NSAPI5VoiceXML
' Instantiate SpeechKit
_VoiceXMLKit = New NVoiceXMLKit()
' Set credentials
_VoiceXMLKit.SetCredentials("Credentials")
' Create synthesizer
_VoiceXML = _VoiceXMLKit.CreateSAPI5VoiceXML()

' Validate document
_VoiceXML.CompileDocument("mydocument.vxml")

' Interpret the document
_VoiceXML.RunDocument("mydocument.vxml", "Microsoft David Desktop - English (United States)", "Microsoft Speech Recognizer 8.0 for Windows (English - US)")

Develop and test applications that do more with Microsoft Speech Technology

Developers use Chant Developer Workbench with GrammarKit to create, edit and test Speech Recognition grammars, KinesicsKit to test movement detection sensors, ProfileKit to manage speaker profiles, SpeechKit to test and analyze speech recognition and speech synthesis, VoiceMarkupKit to create, edit, and test Speech Synthesis Markup Language (SSML), and with VoiceXMLKit to create, edit, and test VoiceXML documents.

Use GrammarKit to create, edit, and test speech recognition grammars.

Grammar Management
Grammar Management: Design, compile, test, and debug speech recognition grammars before deployment.

Use KinesicsKit to test movement detection sensors.

Sensor Testing
Sensor Testing: Validate sensor streams.

Use ProfileKit to manage speaker profiles.

Built-in Speaker Training
Built-in Speaker Training: Enumerate and train speech recognition profiles with recognizer built-in speaker training.

Use SpeechKit to test and analyze speech recognition and speech synthesis with Microsoft voices.

Recognizer Management
Recognizer Management: Enumerate and test recognizers with command, dictation, and grammar vocabularies.
Recognizer Management
Recognizer Management: Recognize speech from a microphone and prerecorded audio. Trace recognition events in the Events window.
Synthesizer Management
Synthesizer Management: Enumerate and test synthesizers with live playback or persisting synthesized speech to files.
Synthesizer Management
Synthesizer Management: Trace synthesis events in the Events window.

Use VoiceMarkupKit to create and edit SSML with Microsoft voices.

SSML Editing
SSML Editing: Edit L&H Native Control Sequence, SAPI 5, and W3C Speech Synthesis Markup Language (SSML) faster with built-in intelliprompt that suggest valid markup syntax.

Use VoiceXMLKit to create, edit, and test VoiceXML documents.

Conversation Management
Conversation Management: Create, validate, edit, test, and debug VoiceXML offline before deploying to voice response servers.