Solved

Speech API select voice under a service

Posted on 2004-09-29
11
870 Views
Last Modified: 2008-01-09
Here is an interesting one.  I have a program that has no visible user interface, as it runs as a service.  It does talk Using SPVOICE.

 I would like to have it speak with a certain voice, but it always selects the default voice.  Since there is no user, it cant select the default voice for the user, as there is no user.  So, where does it get the voice it selects?  It seems to pick Sam.  I have a user interface for changing settings (when there is a user logged on) where i would like to set the voice, but it uses an spobjecttoken as the object to select the voice, and i dont know how to save that to the registry.

Thanks!
John Gjonola
0
Comment
Question by:publicvoid
11 Comments
 

Expert Comment

by:ssiadmin
ID: 12243032
I would try setting the service credentials to your username, restart the servce, and see if it uses the default voice you select for running the parent application in your user context.  If so, then create a user (admin if needed), log that user on and set it's default voice, then log off that user.  This will create a profile for that dummy user and set the HKCU key that likely holds the value.  Set the service to use that dummy user's credentials.  If the dummy user needs to be administrator level, you may want to remove the ability to log on locally in the local security settings (or domain/GPO if you use a domain admin user).
0
 
LVL 13

Expert Comment

by:davidlars99
ID: 12243977
publicvoid, If you don't mind, can you tell me what progrma is it and how to get it..?
0
 

Expert Comment

by:DarryDoo
ID: 12256725
Look in HKEY_USERS\.Default

If you already know the location in the HKCU registry hive where the voice selection is stored, then either update that same location in HKU\.Default, or create it.

If you don't know where it's stored, either search for the voice name, or use a tool such as REGMON from sysinternals.com to monitor the registry as you change the voice.

Note that changing the .DEFAULT key means that users who log on for the first time will receive the configured settings as their initial settings.
0
Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

 
LVL 1

Expert Comment

by:tissier
ID: 12256731
Be carreful with Speech, because on Win 2000, there's only one voice available. Maybe that is your problem ? can you change the voice with a GUI app ?
0
 

Expert Comment

by:billgell
ID: 12257705
A Windows service does have a user. Check the Services - Properties, under the Log On tab. The logon defaults to 'Local System account' which is a special Windows user. You might try setting it to log in under another user.
0
 
LVL 1

Accepted Solution

by:
quintsystems earned 500 total points
ID: 12257774
If you install the speach SDK you can get different voices.  Once installed, go to the control panel, speech and the TEXT TO SPEECH tab and you should have three voices to choose from: Microsoft Mary, Microsoft Mike and Microsoft Sam.  I don't know how to get other voices and they might cost money.  I prefer Microsoft Mary.
0
 

Expert Comment

by:DarryDoo
ID: 12513185
Based on the initial post, "but it always selects the default voice" leads me to believe that the other voices are already installed. Therefore, installing the Speech SDK to get more voices won't resolve the issue.

Just my 2 pesos.
0

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

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

Article by: Ivo
C# And Nullable Types Since 2.0 C# has Nullable(T) Generic Structure. The idea behind is to allow value type objects to have null values just like reference types have. This concerns scenarios where not all data sources have values (like a databa…
Summary: Persistence is the capability of an application to store the state of objects and recover it when necessary. This article compares the two common types of serialization in aspects of data access, readability, and runtime cost. A ready-to…
This tutorial demonstrates a quick way of adding group price to multiple Magento products.
Need to grow your business through quality cloud solutions? With everything required to build a cloud platform and solution, you may feel like the distance between you and the cloud is quite long. Help is here. Spend some time learning about the Con…

914 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

Need Help in Real-Time?

Connect with top rated Experts

18 Experts available now in Live!

Get 1:1 Help Now