• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 793
  • Last Modified:

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

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
Rashimus
Asked:
Rashimus
1 Solution
 
J-ManCommented:
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
 
RashimusAuthor Commented:
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.

 
HermeticCommented:
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
 
Shaka913Commented:
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
 
RashimusAuthor Commented:
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
 
Shaka913Commented:
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
 
RashimusAuthor Commented:
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
 
Shaka913Commented:
http://www.digalo.com/digalo_pc.asp is one example. go to google and search for french tts sapi

Good Luck
0
 
Shaka913Commented:
are you satisfied? points?
0
 
RashimusAuthor Commented:
All the comments Shaka913 provided for this question combined has helped me to a solution

Thanks
0

Featured Post

What does it mean to be "Always On"?

Is your cloud always on? With an Always On cloud you won't have to worry about downtime for maintenance or software application code updates, ensuring that your bottom line isn't affected.

Tackle projects and never again get stuck behind a technical roadblock.
Join Now