How do I develop applications that do more with Acapela Speech Technology?

Last reviewed: 7/8/2021

HOW Article ID: H072109

The information in this article applies to:

  • LexiconKit 7
  • SpeechKit 10
  • VoiceMarkupKit 7

Summary

Explore ways to do more with Acapela Speech Technology.

More Information

Chant Developer Workbench 2021 includes LexiconKit to manage pronunciations for synthesis clarity, SpeechKit to synthesize text to speech, and VoiceMarkupKit to markup text for tailored speech synthesis. It also provides an interative toolset for editing and testing Acapela pronunciations, speech synthesis, and Speech Synthesis Markup Language (SSML).

Develop applications that do more with Acapela Speech Technology

Edit pronunciation phonemes with LexiconKit to use with markup tags for Acapela voices.


// Instantiate LexiconKit
NLexiconKit _LexiconKit = new NLexiconKit();
// Set license properties
_LexiconKit.SetLicense("LicenseRegistrationNumber", "LicenseSerialNumber");
// Create synthesizer
NAcaTTSSynthesizer _Synthesizer = _LexiconKit.CreateAcaTTSSynthesizer();

// Speak phonemes
_Synthesizer.SpeakPhonemes("h e l @U1");

// Instantiate LexiconKit object
CLexiconKit* _LexiconKit = new CLexiconKit();
// Set license properties
_LexiconKit->SetLicense(L"LicenseRegistrationNumber", L"LicenseSerialNumber");
// Create synthesizer
CAcaTTSSynthesizer* _Synthesizer = _LexiconKit->CreateAcaTTSSynthesizer();

// Speak phonemes
_Synthesizer->SpeakPhonemes(L"h e l @U1");

// Instantiate LexiconKit
CLexiconKit* _LexiconKit = new CLexiconKit();
// Set license properties
_LexiconKit->SetLicense("LicenseRegistrationNumber", "LicenseSerialNumber");
// Create synthesizer
CAcaTTSSynthesizer* _Synthesizer = _LexiconKit->CreateAcaTTSSynthesizer();

// Speak phonemes
_Synthesizer->SpeakPhonemes("h e l @U1");

var 
    _LexiconKit: TLexiconKit;
    _Synthesizer: TAcaTTSSynthesizer;
    _Phonemes: string;
begin
    // Instantiate LexiconKit
    _LexiconKit := TLexiconKit.Create();
    // Set license properties
    _LexiconKit.SetLicense('LicenseRegistrationNumber', 'LicenseSerialNumber');
    // Create synthesizer
    _Synthesizer := _LexiconKit.CreateAcaTTSSynthesizer();

    // Speak phonemes
    _Synthesizer.SpeakPhonemes('h e l @U1');

// Instantiate LexiconKit
JLexiconKit _LexiconKit = new JLexiconKit();
// Set license properties
_LexiconKit.setLicense("LicenseRegistrationNumber", "LicenseSerialNumber");
// Create synthesizer
JAcaTTSSynthesizer _Synthesizer = _LexiconKit.createAcaTTSSynthesizer();

// Speak phonemes
_Synthesizer.speakPhonemes("h e l @U1");

Dim _LexiconKit As NLexiconKit
Dim WithEvents _Synthesizer As NAcaTTSSynthesizer
Dim _Phonemes As String
' Instantiate LexiconKit
_LexiconKit = New NLexiconKit()
' Set license properties
_LexiconKit.SetLicense("LicenseRegistrationNumber", "LicenseSerialNumber")
' Create synthesizer
_Synthesizer = _LexiconKit.CreateAcaTTSSynthesizer()

' Speak phonemes
_Synthesizer.SpeakPhonemes("h e l @U1")

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


// Instantiate SpeechKit
NSpeechKit _SpeechKit = new NSpeechKit();
// Set license properties
_SpeechKit.SetLicense("LicenseRegistrationNumber", "LicenseSerialNumber");
// Create synthesizer
NAcaTTSSynthesizer _Synthesizer = _SpeechKit.CreateAcaTTSSynthesizer();

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

// Synthesize speech to file
_Synthesizer.Speak("Hello world.", (int)ACATTSSPEAKFLAGS.ACATTS_ASYNC, "myaudio.wav", (int)ACATTSWAVFORMATFLAGS.ACATTS_FORMAT_PCM);

// Instantiate SpeechKit
CSpeechKit* _SpeechKit = new CSpeechKit();
// Set license properties
_SpeechKit->SetLicense(L"LicenseRegistrationNumber", L"LicenseSerialNumber");
// Create synthesizer
CAcaTTSSynthesizer* _Synthesizer = _SpeechKit->CreateAcaTTSSynthesizer();

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

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

// Instantiate SpeechKit
CSpeechKit* _SpeechKit = new CSpeechKit();
// Set license properties
_SpeechKit->SetLicense("LicenseRegistrationNumber", "LicenseSerialNumber");
// Create synthesizer
CAcaTTSSynthesizer* _Synthesizer = _SpeechKit->CreateAcaTTSSynthesizer();

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

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

var 
    _SpeechKit: TSpeechKit;
    _Synthesizer: TAcaTTSSynthesizer;
    _Phonemes: string;
begin
    // Instantiate SpeechKit
    _SpeechKit := TSpeechKit.Create();
    // Set license properties
    _SpeechKit.SetLicense('LicenseRegistrationNumber', 'LicenseSerialNumber');
    // Create synthesizer
    _Synthesizer := _SpeechKit.CreateAcaTTSSynthesizer();

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

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

// Instantiate SpeechKit
JSpeechKit _SpeechKit = new JSpeechKit();
// Set license properties
_SpeechKit.setLicense("LicenseRegistrationNumber", "LicenseSerialNumber");
// Create synthesizer
JAcaTTSSynthesizer _Synthesizer = _SpeechKit.createAcaTTSSynthesizer();

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

// Synthesize speech to file
_Synthesizer.speak("Hello world.", ACATTSSPEAKFLAGS.ACATTS_ASYNC, "myaudio.wav", ACATTSWAVFORMATFLAGS.ACATTS_FORMAT_PCM);

Dim _SpeechKit As NSpeechKit
Dim WithEvents _Synthesizer As NAcaTTSSynthesizer
' Instantiate SpeechKit
_SpeechKit = New NSpeechKit()
' Set license properties
_SpeechKit.SetLicense("LicenseRegistrationNumber", "LicenseSerialNumber")
' Create synthesizer
_Synthesizer = _SpeechKit.CreateAcaTTSSynthesizer()

' Synthesize speech for playback
_Synthesizer.Speak("Hello world.", ACATTSSPEAKFLAGS.ACATTS_ASYNC)

' Synthesize speech to file
_Synthesizer.Speak("Hello world.", ACATTSSPEAKFLAGS.ACATTS_ASYNC, "myaudio.wav", ACATTSWAVFORMATFLAGS.ACATTS_FORMAT_PCM )

Generate AcaTTS Tags with VoiceMarkupKit to tailor speech synthesis.


NVoiceMarkupKit _VoiceMarkupKit = new NVoiceMarkupKit();
_VoiceMarkupKit.SetLicense("LicenseRegistrationNumber", "LicenseSerialNumber");
NAcaTTSVoiceMarkup _AcaTTSVoiceMarkup = _VoiceMarkupKit.CreateAcaTTSVoiceMarkup();

string markup = _AcaTTSVoiceMarkup.GenerateMarkup("Rate", "150", "This text is spoken above the baseline at rate");

CVoiceMarkupKit* _VoiceMarkupKit = new CVoiceMarkupKit();
_VoiceMarkupKit->SetLicense("LicenseRegistrationNumber", "LicenseSerialNumber");
CAcaTTSVoiceMarkup* _AcaTTSVoiceMarkup = _VoiceMarkupKit->CreateAcaTTSVoiceMarkup();

wchar_t* markup = _AcaTTSVoiceMarkup->GenerateMarkup(L"Rate", L"150", L"This text is spoken above the baseline at rate");

CVoiceMarkupKit* _VoiceMarkupKit = new CVoiceMarkupKit();
_VoiceMarkupKit->SetLicense("LicenseRegistrationNumber", "LicenseSerialNumber");
CAcaTTSVoiceMarkup* _AcaTTSVoiceMarkup = _VoiceMarkupKit->CreateAcaTTSVoiceMarkup();

string markup = _AcaTTSVoiceMarkup->GenerateMarkup("Rate", "150", "This text is spoken above the baseline at rate");

var 
    _VoiceMarkupKit: TVoiceMarkupKit;
    _AcaTTSVoiceMarkup: TAcaTTSVoiceMarkup;
    markup: string;  
begin       
    _VoiceMarkupKit := TVoiceMarkupKit.Create();  
    _VoiceMarkupKit.SetLicense('LicenseRegistrationNumber', 'LicenseSerialNumber');  
    _AcaTTSVoiceMarkup := _VoiceMarkupKit.CreateAcaTTSVoiceMarkup();   

    markup = _AcaTTSVoiceMarkup.GenerateMarkup('Rate', '150', 'This text is spoken above the baseline at rate');

JVoiceMarkupKit _VoiceMarkupKit = new JVoiceMarkupKit();
_VoiceMarkupKit.setLicense("LicenseRegistrationNumber", "LicenseSerialNumber");
JAcaTTSVoiceMarkup _AcaTTSVoiceMarkup = _VoiceMarkupKit.createAcaTTSVoiceMarkup();

String markup = _AcaTTSVoiceMarkup.generateMarkup("Rate", "150", "This text is spoken above the baseline at rate");

JVoiceMarkupKit _VoiceMarkupKit = new JVoiceMarkupKit();
_VoiceMarkupKit.setLicense("LicenseRegistrationNumber", "LicenseSerialNumber");
JAcaTTSVoiceMarkup _AcaTTSVoiceMarkup = _VoiceMarkupKit.createAcaTTSVoiceMarkup();

String markup = _AcaTTSVoiceMarkup.generateMarkup("Rate", "150", "This text is spoken above the baseline at rate");

Develop and test applications that do more with Acapela Speech Technology

Developers use Chant Developer Workbench with LexiconKit to manage pronunciations, SpeechKit to test and analyze speech synthesis, and with VoiceMarkupKit to create, edit, and test Speech Synthesis Markup Language (SSML).

Use SpeechKit to test and analyze speech synthesis with Acapela voices.

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 Tags with Acapela voices.

SSML Editing
SSML Editing: Edit Acapela Tags, SAPI 5, and W3C Speech Synthesis Markup Language (SSML) faster with built-in intelliprompt that suggest valid markup syntax.