MATLAB Answers

How can I get my code to speak with a voice

99 views (last 30 days)
Im working on a big program and one of the few things I want it to do is speak. Does anyone have an idea. For example if my code is:
x=input('Hello','s');
if strcmpi(x,'Hello')
fprintf('Hello sir')
end
I want the hello sir to come out with a voice.

  3 Comments

Sylvain KPEKOU
Sylvain KPEKOU on 8 Dec 2018
defaultString = 'Hello Sir';
NET.addAssembly('System.Speech');
obj = System.Speech.Synthesis.SpeechSynthesizer;
obj.Volume = 100;
Speak(obj, defaultString );
Image Analyst
Image Analyst on 8 Dec 2018
Yes, that SpeechSynthesizer answer was already given below. Perhaps you didn't scroll down to the answers section to see it.
prathima k
prathima k on 6 Jun 2019
How can i store the speech in a variable and produce audio output in raspberry pi 3

Sign in to comment.

Accepted Answer

Image Analyst
Image Analyst on 31 Jul 2017
For text to speech, if you have Windows, you can try my demo program:
% Program to do text to speech.
% Get user's sentence
userPrompt = 'What do you want the computer to say?';
titleBar = 'Text to Speech';
defaultString = 'Hello World! MATLAB is an awesome program!';
caUserInput = inputdlg(userPrompt, titleBar, 1, {defaultString});
if isempty(caUserInput)
return;
end; % Bail out if they clicked Cancel.
caUserInput = char(caUserInput); % Convert from cell to string.
NET.addAssembly('System.Speech');
obj = System.Speech.Synthesis.SpeechSynthesizer;
obj.Volume = 100;
Speak(obj, caUserInput);

  5 Comments

Show 2 older comments
Walter Roberson
Walter Roberson on 29 Aug 2017
You can use the SelectVoice method to choose a different voice.
To have it output 'Password accepted.', use
Speak(obj, 'Password accepted.')
To be able to speak "hello" and have it understood, then you need some completely different software: you would need speech recognition software. There are some a number of postings about that, and there are some contributions such as https://www.mathworks.com/matlabcentral/fileexchange/27276-speech-recognition or https://www.mathworks.com/matlabcentral/fileexchange/36398-speech-recognition-using-mfcc-and-lpc
Rainaire Hansford
Rainaire Hansford on 29 Nov 2017
Hey Walter sorry its been a long time. I tried to make code above work. but it didn't seem recognize the code
speak(obj,'password accepted')
I tired:
obj=input('hello');
speak(obj,'password accepted')
So im not sure how I should go about this
Walter Roberson
Walter Roberson on 29 Nov 2017
NET.addAssembly('System.Speech');
obj = System.Speech.Synthesis.SpeechSynthesizer;
obj.Volume = 100;
speak(obj, 'password accepted')

Sign in to comment.

More Answers (2)

Stephen Cobeldick
Stephen Cobeldick on 24 Jul 2017
Edited: Stephen Cobeldick on 25 Jul 2017
There is nothing built-in. Try downloading these:
Note that some rely on third-party apps or objects, and might only work on some versions of MATLAB. I know that at least some of them work, because I remember playing with them a year or two ago.

  2 Comments

Walter Roberson
Walter Roberson on 30 Jul 2017
The File Exchange contains MATLAB code (and possibly C or C++ code) that has been written by volunteers and made available for general use.
Some of the contributions for Text To Speech also need additional software packages beyond that.

Sign in to comment.


Products

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!