Need to save text file to wave under classic asp

I have a web application that is written in classic asp and one of it's functions is to take a date string and convert it to a wave file using text to speech and then save it to a folder on the server. This was working using a third party activeX dll and the Microsoft Speech SDK 5.1 but now it has stopped working. When it tries to create the speech object I get a create object failed error in the IIS log. The only difference I can see is that we are now running it on 64 bit Windows 7 instead of 32 bit but I have IIS set to run in 32 bit mode. Unfortunately the third party activeX component is no longer supported.  Can anyone provide me with some sample code in classic asp to perform this operation or is there a better way?
dssisupportAsked:
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

Big MontySenior Web Developer / CEO of ExchangeTree.org Commented:
make sure your IUSR account (or whatever account you use to run the site) has permissions to the folder where the dll resides
0
dssisupportAuthor Commented:
By default it put the dll in the system32 folder but I tried moving it to the root folder of my application and re-registered it but still same result. Should I be using the 32bit or 64 bit version of the dll?
0
Big MontySenior Web Developer / CEO of ExchangeTree.org Commented:
you want to use the version that your application pool is using.
0
Cloud Class® Course: Microsoft Exchange Server

The MCTS: Microsoft Exchange Server 2010 certification validates your skills in supporting the maintenance and administration of the Exchange servers in an enterprise environment. Learn everything you need to know with this course.

dssisupportAuthor Commented:
That's what I thought.  Can't this be done without the third party dll?
0
Big MontySenior Web Developer / CEO of ExchangeTree.org Commented:
no, classic asp doesn't have any kind of built in functionality such as that...

what's the exact error message you're seeing in the log file?
0
dssisupportAuthor Commented:
ASP_0177_:_8004503a|Server.CreateObject_Failed
0
Scott Fell, EE MVEDeveloper & EE ModeratorCommented:
You need to keep it in system32.  When you went to the new machine, did you remember to give it permissions?
0
Scott Fell, EE MVEDeveloper & EE ModeratorCommented:
There are going to be a lot of javasctipt options that may be easier.

http://www.masswerk.at/mespeak/
https://github.com/hiddentao/google-tts
http://www.jtalkplugin.com/
http://updates.html5rocks.com/2014/01/Web-apps-that-talk---Introduction-to-the-Speech-Synthesis-API

as well as api's you can hit via xmlhttppost
http://tts-api.com/
http://www.ispeech.org/api

I have only used https://www.twilio.com/ but for what you are doing, that may be a cost factor.
0
dssisupportAuthor Commented:
I unregistered it and then I moved it back to the system32 folder and now I can't register it. It acts like it is missing something but I was able to register it in my web app folder. Very weird. I am going to reboot and try to register it again.

I thought about javascript but the problem with that is this application will sometimes be used in a closed network environment so it may not have access to the api site.
0
Scott Fell, EE MVEDeveloper & EE ModeratorCommented:
What about trying SysWOW64 instead of system32?

Using an external api may not work, but if you load the js files on your own site it should be fine.
0
dssisupportAuthor Commented:
Oh, yeah. I forgot about the syswow64 folder. Microsoft sure got those system folder names backwards.

I was able to register it now and I enabled permissions to it for the IIS_IUSR and IUSR accounts but still got the same error.
0
Scott Fell, EE MVEDeveloper & EE ModeratorCommented:
I know that registering dll's get tricky.  

What about using the command line?  I found http://jampal.sourceforge.net/ptts.html

You can use asp to hit the command line.  I use image magick http://www.imagemagick.org/ for images and use the command line via classic asp.  Works very nicely (once I got the dll to work with server 2012)
0
dssisupportAuthor Commented:
That would probably work. How do I trigger the command line using asp?
0
Scott Fell, EE MVEDeveloper & EE ModeratorCommented:
You will  use  CreateObject("WScript.Shell").

http://classicasp.aspfaq.com/general/how-do-i-execute-a-dos-command/batch-file/exe-from-asp.html
 set wshell = CreateObject("WScript.Shell") 
    wshell.run "%COMSPEC% /C dir c:\ > c:\dir.txt", 0, TRUE 
    set wshell = nothing 

Open in new window


http://www.experts-exchange.com/Programming/Languages/Scripting/ASP/Q_20095277.html#a5949592
Set WshShell = Wscript.CreateObject("WScript.Shell")
CmdLine = "%comspec% /c PING.exe -n 1 194.90.96.193 > ping.txt"
WshShell.Run CmdLine, 1, TRUE

Open in new window


You can also use fso to dynamically create a bat file and run that too.
0

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
dssisupportAuthor Commented:
Thanks. I will run with that.
0
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
ASP

From novice to tech pro — start learning today.

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.