Get access to over 100 FireMonkey cross platform samples for Android, IOS, OSX, Windows, and Linux!

AndroidAppmethodCode SnippetDelphiDemoFiremonkey

Text To Speech (TTS) Wrapper For Android With Delphi XE5 Firemonkey

Delphi Firemonkey Android Text To Speech TTSEmbarcadero has a blog post from September 2013 that highlights a Text To Speech (TTS) unit that was created by Jeff Overcash. The TTS unit wraps the native Android Text to Speech API and gives you access to it from your Delphi XE5 Firemonkey application. You can take a look at the Android SDK information for android.speech.tts to see the full help on using the API. The interfaces that are implemented in the wrapper are listed below:
  JSynthesisCallback = interface; // android.speech.tts.SynthesisCallback
JSynthesisRequest = interface; // android.speech.tts.SynthesisRequest
JTextToSpeech = interface; // android.speech.tts.TextToSpeech
JTextToSpeech_Engine = interface; // android.speech.tts.TextToSpeech$Engine
JTextToSpeech_EngineInfo = interface; //android.speech.tts.TextToSpeech$EngineInfo
JTextToSpeech_OnInitListener = interface; // android.speech.tts.TextToSpeech$OnInitListener
JTextToSpeech_OnUtteranceCompletedListener = interface; // android.speech.tts.TextToSpeech$OnUtteranceCompletedListener
JTextToSpeechService = interface; // android.speech.tts.TextToSpeechService
JUtteranceProgressListener = interface; // android.speech.tts.UtteranceProgressListener

And here is a sample from the demo that is included with the wrapper:
procedure TForm1.TttsOnInitListener.onInit(status: Integer);
var
Result : Integer;
begin
if (status = TJTextToSpeech.JavaClass.SUCCESS) then
begin
result := FParent.tts.setLanguage(TJLocale.JavaClass.US);
if (result = TJTextToSpeech.JavaClass.LANG_MISSING_DATA) or
(result = TJTextToSpeech.JavaClass.LANG_NOT_SUPPORTED) then
ShowMessage('This Language is not supported')
else
begin
FParent.Button1.Enabled := true;
FParent.button2.Enabled := false;
end;
end
else
ShowMessage('Initilization Failed!');
end;

procedure TForm1.SpeakOut;
var
text : JString;
begin
text := StringToJString(Memo1.Lines.Text);
tts.speak(text, TJTextToSpeech.JavaClass.QUEUE_FLUSH, nil);
end;

Check out the blog post and download the wrapper unit.



Have Delphi Firemonkey questions? Ask and get answers on StackOverflow.

Related posts
DelphiDemoShowcaseWindows

Build A Tiny, Explainable Language Model Entirely In Delphi

ComponentDelphiDemoFiremonkeyLibraryWindows

Run Google's Gemma 4 Vision Models Natively In Delphi

AndroidComponentDelphiDemoFiremonkeyIOSLinuxOSXShowcaseWindows

Experience ChatGPT As A Native Cross-Platform Firemonkey Application

DelphiLibraryWindows

Run Large Language Models Entirely On The GPU With Delphi And Vulkan

Sign up for our Newsletter and
stay informed
[mailpoet_form id="1"]

9 Comments

Leave a Reply