IIS 5 & IIS 6
IIS 6.0 interaction with Text To Speech engine
Last post Jan 08, 2009 03:31 PM by tomkmvp
Jan 05, 2009 03:27 PM|Rocket2009|LINK
I wrote a simple asp.net application to create a .wav file from a provided text.
From my Windows Server 2003 SP2, when running the application from the personal web server included in VS2005 everything works fine with the TTS (text to speech) engine from AT&T. When I run the application from IIS 6.0 on the same server, the application
creates a .wav file as expected but the sound file is empty, I also get the following mesage:
"The process cannot access the file because it is being used by another process."
I googl'ed the issue, and saw a lot of threads, but none of the published solutions seem to resolve my current issue and I am going around in circles on this one.
During my investigation I noticed that If I switch to the Microsoft provided TTS engine (Mary or Sam) then my application runs fine from IIS 6.0, that is I am able to produce a wav file with the desired sound. When switching back to the AT&T TTS engine
then the application fails to produce the sound file when running from IIS 6.0, *but to clarify, with the AT&T TTS engine the application works from the VS2005 Personal web server, thus the asp.net code seems to work.
My guess is that there seems to be permission issues/collisions between the AT&T TTS engine and IIS 6.0.
Where in IIS 6.0 can I specify or rather grant RW permissions to an specific application such as the AT&T TTS engine?
Jan 06, 2009 08:20 AM|tomkmvp|LINK
These types of things typically fail when the program attempts to access sections of the registry that are expecting an actively logged on user, like in this example:
Can you tell me more about how the AT&T TTS engine works?
Jan 06, 2009 09:17 AM|Rocket2009|LINK
The thing is that all the TTS engines (mostly trial based) I installed worked fine with my application. When I am launch my application from VS 2005 using the built in Personal Web Server everything works as expected, and I am using credentials associated
with the web account and not my system credentials.
"Can you tell me more about how the AT&T TTS engine works?"
There is a lot of ground to cover to answer this question, but I'll try to provide you with a generic response, please let me know if you would like me to be more specific. With regards to TTS engines, in my experience the installation is not user centric,
meaning, after the TTS is installed other users can access the TTS once logged into their local account. Typically to access the TTS engine functionality you use a third party app, for example a screen reader such as TextAloud or you can write your own SAPI
based application (which is my case) and incorporate the TTS engine functionality into your app. In either case the TTS application is used typically to either read back (audible) a given text blob or to generate a sound file to be heard later from a given
text blob (such as an audio book). The following site provides an online demo http://www.research.att.com/~ttsweb/tts/demo.php
Does that helps?
Jan 06, 2009 04:16 PM|tomkmvp|LINK
Try to run regmon while you access the engine to see if it's a registry key that's causing the issue.
Jan 07, 2009 03:42 AM|gameboyLV|LINK
In IIS admin UI, Set the Application Pool property, right click the DefaultAppPool, click property->Identity, Set the account of application pool to Local Service or Local System.
Jan 07, 2009 07:30 PM|Rocket2009|LINK
Thanks for the suggestion Tom, I ran regmon, which produced large log, but nothing stood out as a pointer to the cause of the issue.
Jan 07, 2009 07:36 PM|Rocket2009|LINK
gameboyLV , Thank you! Thank you! , you are my new found hero!.
I followed the steps you provided, I set the account to Local System, and everything works as expected! awesome no more spinning around looking for a solution... I appreciate your pointer, and the suggestions from other members as well.
Jan 08, 2009 03:31 PM|tomkmvp|LINK
Good job - glad it is working now!