?
Solved

(SAPI 5.1) Where to find a VB component which provides NON-english Text-to-Speech

Posted on 2003-03-15
11
Medium Priority
?
744 Views
Last Modified: 2007-12-19
Hi all,

Im currently using the SAPI 5.1 SDK for VB, I want the Text-to-Speech to be able to speak in a language other than English, preferably French, German or Spanish.

I require this as part of a Speech-recognition and Language Translation application that i am writing.

If anyone can help with some links or solutions i will be very greatful. If you think this is not possible, i would be grateful for anybody to mention this to me.

Thanks

Rashel
0
Comment
Question by:Rashimus
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
11 Comments
 
LVL 3

Expert Comment

by:DocM
ID: 8143575
0
 
LVL 1

Expert Comment

by:J-Man
ID: 8143594
I haven't actually used the SAPI component, but I think all you have to do is put the text in a string and it will say it.

i.e.
Dim Voice As SpVoice
Set Voice = New SpVoice
Voice.Speak "Como estas" ,SVSFlagsAsync
Voice.Speak "Parle vous frances?" ,SVSFlagsAsync

Give it a shot, I'd be interested to know if it works.
0
 

Author Comment

by:Rashimus
ID: 8143709
Thanks for both of your comments.

Unfortunately, to my disadvantage I cannot actually speak any of these foreign languages, therefore was unable to understand the majority of the link given by "DocM", it seems like it has something to do with an agent which can be set to speak a particular language. Therefore I think it’s not what I’m looking for.

What I actually need to do is speak out in French, German, Spanish or other language that is not English from Text. The spVoice object speaks in English and uses English Grammar. At present I am already using a similar solution to what was proposed by "J-Man" where I just speak the foreign text using the default spVoice, this sounds very peculiar because it sounds completely wrong and rather funny.

That’s why I was trying to find a component or something that’s specifically designed to allow the SAPI to speak in French for example.

Any ideas?
0
VIDEO: THE CONCERTO CLOUD FOR HEALTHCARE

Modern healthcare requires a modern cloud. View this brief video to understand how the Concerto Cloud for Healthcare can help your organization.

 
LVL 1

Expert Comment

by:Hermetic
ID: 8144064
After looking at the docs for a few minutes, this is what I think (IMHO).  You will probably have to create your own Lexicon.  Which basically amounts to a IPA based list of "how to pronounce this word." see ISpLexicon (Application Level Interface).
0
 
LVL 3

Accepted Solution

by:
Shaka913 earned 1000 total points
ID: 8145194
Rashimus,
The SAPI 5.1 is an API that sits on top of a Speech Recognition Engine and a TTS engine (Text to Speech) you can choose which reco or TTS to use in teh control panel under speech or programmatically.  However, the examples that MS ships with SAPI are both english, you would need to get a Spanish(or french, or whatever) TTS to speak out in that language. Also please understand and none of these applications do translation, they will speak out whatever you tell them to... so if you want it to say "Como Esta?" you have to put that text into the TTS engine. The spanish part of the TTS engine just knows how to "pronounce" and "enunciate" those words correctly. You can use an English TTS to say spanish, Try it in the Control panel Application under TTS, but it will sound like a bad gringo speaking Spanish, and is probably not what you are going for. If you need EXCELLENT tts check out www.rhetorical.com they make what I believe is the best TTS in the world, however it is very expensive.  

Hope this helps.
0
 

Author Comment

by:Rashimus
ID: 8147297
Shaka913 and others...

You have openned my eyes in this area.

Just to clarify, I mentioned the language translation concept in my previous comment for completeness, as it is an integral part of my application. I dont need sapi to worry about this as i carry out the translation myself and i understand that sapi has nothig to do with this.

My objective is, once i have translated some text from english to german/french/spanish. I want to hear what it sounds like in the relavant language. My application needs to do this in order provide its service.

From shaka913's comments its seems to me that you are telling me that i can get a (eg)french TTS and install it, making it appear in control panel and then possibly programmatically select it, if and when i require my speech object to use that language.

Is this true, or am i just getting ahead of myself because it seems like the perfect solution.

I will be happy to accept a further comment as an answer if it justifies what im getting at, and if you can provide some links or snippets for changing from different reco's programmatically that would be a bonus.

Thank you very much, i look forward to further comments on this issue.

Rashel
0
 
LVL 3

Expert Comment

by:Shaka913
ID: 8147311
Here is code to load a combo box (VoiceCB) with a list of "available" tts engines to SAPI

 ' Creates the voice object first
    Set Voice = New SpVoice
   
    ' Load the voices combo box
    Dim Token As ISpeechObjectToken

    For Each Token In Voice.GetVoices
        VoiceCB.AddItem (Token.GetDescription())
    Next

Next is code to handle changing the Selection in the ComboBox (VoiceCB)

Private Sub VoiceCB_Click()
    ' change the voice to the selected one
    Set Voice.Voice = Voice.GetVoices().Item(VoiceCB.ListIndex)
End Sub

This should tell you what you need to do to pick the appropriate TTS engine.

Good Luck
0
 

Author Comment

by:Rashimus
ID: 8147345
Thanks Shaka913.

Thats brilliant, just another question please.

Do you know any good non-english TTS's that i can download
Preferably French or German, but it doesnt really matter.

Thanks in advance, either way!

Rashel
0
 
LVL 3

Expert Comment

by:Shaka913
ID: 8147599
http://www.digalo.com/digalo_pc.asp is one example. go to google and search for french tts sapi

Good Luck
0
 
LVL 3

Expert Comment

by:Shaka913
ID: 8155797
are you satisfied? points?
0
 

Author Comment

by:Rashimus
ID: 8162749
All the comments Shaka913 provided for this question combined has helped me to a solution

Thanks
0

Featured Post

VIDEO: THE CONCERTO CLOUD FOR HEALTHCARE

Modern healthcare requires a modern cloud. View this brief video to understand how the Concerto Cloud for Healthcare can help your organization.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

There are many ways to remove duplicate entries in an SQL or Access database. Most make you temporarily insert an ID field, make a temp table and copy data back and forth, and/or are slow. Here is an easy way in VB6 using ADO to remove duplicate row…
Have you ever wanted to restrict the users input in a textbox to numbers, and while doing that make sure that they can't 'cheat' by pasting in non-numeric text? Of course you can do that with code you write yourself but it's tedious and error-prone …
Get people started with the utilization of class modules. Class modules can be a powerful tool in Microsoft Access. They allow you to create self-contained objects that encapsulate functionality. They can easily hide the complexity of a process from…
Show developers how to use a criteria form to limit the data that appears on an Access report. It is a common requirement that users can specify the criteria for a report at runtime. The easiest way to accomplish this is using a criteria form that a…
Suggested Courses
Course of the Month10 days, 14 hours left to enroll

770 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question