Text to Speech in ASP.NET - asp.net

I would like to do some japanese text to speech on my dedicated windows 2003 x64 server with .net framework, using c#
I found something on google, but requires to install a lot of files on the server... i don't like, for stability issues: there is another option, like a linked dll or something?

You can use Microsoft Speech SDK. It's a set of COM APIs containing TTS and SR engines. I'm not sure if it contains Japanese TTS though.

What you most likely want is the Microsoft Speech Server especially if your webite is going to encounter any decent load or volume.
From the site:
"A speech platform, MSS contains all
the server components for deploying
telephony (voice-only) and multimodal
(voice/visual) applications. MSS
combines Web technologies,
speech-processing services, and
telephony capabilities into a single
system. "
There is also a dedicated Microsft Speech community which will likely help you get started in this realm. Also, I'm not sure what the latest version is...2004 R2?
This article has a decent diagram outlining the various components. Looks like a good fit for integration with an ASP Web Application.

using SAPI in an ASP.NET website, is impossible: the sound will be reproduced on the server :S
It seems that there is the need of Microsoft Speech Server
...
Or not? With asp.net is possible to run a commandline exe on the server to save an mp3, then stream that mp3, right? (how to do that? i will try to figure it)
I will go this way, i let you know the result :)
edit: this is how i solved:
How to save text-to-speech as a wav with Microsoft SAPI?
I save the generated voice in a wav file, then i embed it on the page, playing it in a flash player
COOL!!

Use Microsoft Speech Library and see this article Text to Speech with the Microsoft Speech Library and SDK version 5.1 in CodeProject. Also see Giving Computers a Voice in Coding4Fun

The System.Speech.Synthesis namespace has been part of the framework since .NET 3.0. However, it has internal dependencies on the Speech SDK COM libraries (it chooses the correct version depending on the host OS), so I would recommend prototyping the work before you jump in.
The class you should probably look at first is System.Speech.Synthesis.SpeechSynthesizer (whitepaper and example code)
Warning: I have personally experienced issues using the speech APIs in an ASP.NET environment whereby the request that returned the audio data never returned. Despite heavy debugging I was never able to resolve the issue and the feature was dropped. I have had an unresolved support case with Microsoft for 12 months now.

Related

Visual Studio 2015 - Network debug tool shows 'Not applicable' - Why?

I am debugging some network issues in a desktop application that makes requests to a service using RestSharp. The actual problem is failing authentication to the service in some limited scenarios, although that is really not relevant to my question.
I have been using Fiddler4 but that has not helped. I wondered if the network tool in Visual Studio 2015 might give some other light on the problem.
https://blogs.msdn.microsoft.com/visualstudio/2015/05/04/introducing-visual-studios-network-tool/
However, when I start the performance profiler the Network tool is grayed out and in the list of 'Not Applicable Tools' (incidentally my menu structure is somewhat different to the screen shot shown in the link above.)I wondered if my Professional Edition does not have the tool enabled, but research on the Microsoft site does not seem to give any information about that. The word 'network' does not appear on this page
https://www.visualstudio.com/vs/compare/
Can anyone tell me what I need to do to access the network diagnostic tool to monitor my application ?
At the moment, the tool only works with the WinRT client. Is that what you are using?
Referring to the comment at the link you provided:
Operations made using the old .NET HttpClient API aren’t captured.

Advice for Web Site Development (WinCE)

I need to set up a web server on WinCE (7.0) and the following are some of the features that I need to implement through this web site:
be able to update the device software (run an exe) and display output
start/end process
display the run-time of device
Should I use ASP or ISAPI on my web server on WinCE 7(WEC 7) platform? If you include some reasons for your response, it would be great.
I was planning on using ASP because of its simplicity compared to ISAPI; however, when I tested a simple Hello World(hello.asp) page on the device, it took around 30 seconds to load the page. For testing purposes, I am using Windows Virtual PC. So I am not sure what is causing it to be so slow. If you could please enlighten me on this topic too, it would be great.
I looked up ASP .NET Compact framework but I am concerned about performance again.
I am beginner on WinCE development and web development so any answers would be greatly appreciated.
If you need any other information to better answer the question, please let me know and I will provide it.
Classic ASP on CE is really, really limited. You're not going to be able to hit your targets without a custom COM control, which is not very fun to write or debug and it will have to be installed on the service device. Out of the two you've proposed, ISAPI is the only one that will reasonably do what you want.
It's a side note, but from experience I'd not use either due to the absolute pain of debugging either one. I'd use a separate commercial ASP.NET web server for Windows CE. Of course I created it, so I'm biased, but really, even creating your own port 80 server is going to be less painful than the piss-poor out-of-box offerings in CE.
I found out the problem with the slow loading ASP. It is an error with the WinCE 7 web server. Microsoft has released an update that fixes that problem.
Windows Embedded Compact 7 Monthly Update July 2011
So I think I will go ahead and use ASP. I'll see if I can add the features that I need to implement.

What are the equivalents of Microsoft ASP.NET and Visual Studio for Linux?

I just wonder what are the similar frameworks and tools for Linux web development.
And can I use Visual Studio to develop websites for Linux Apache? Thanks.
Mono (it supports ASP.NET) and MonoDevelop, I guess.
Web development on Linux isn't specifically tied to one programming language, framework or IDE. More commonly they are related in terms of being Free and Open Source (free as in cost, and also the ability to do what you want with the code).
I loved Visual Studio when we used it for classes, however I haven't quite found a tool that is the same. The only thing near to this would be Eclipse or Netbeans.
In general, many Linux enthusiasts use emacs or vi (or vim) for their editing. At first glance you may not see the power they have, but emacs is definitely a wonderful editor, and vi is very good once you become familiar with it.
For Web programming langauges and frameworks, you have a variety to pick from.
Python is one of the most popular languages to use for Web development. This language has been used by Google, Reddit, Quora and a host of others. Perhaps the most popular framework for Python is Django, and each (Python and Django) have their own following, as well.
Ruby is a wonderfully beautiful langauge, too. Most likely you may have heard of Ruby on Rails, which is a great Web framework allowing you to quickly turn an idea into something actual in no time.
PHP is another popular language, and has the PEAR framework. Many of the online forums that you can buy are written in this language, such as vBulletin and the ever famous phpbb.
In my opinion, it depends on what you want to accomplish. Python and Ruby are great for Web development, as well as non-Web, too.
Ad 1) There are several IDEs. I prefer eclipse, no matter if for html, php, python, c or java.
Ad 2) Yes you can. Create your websites, copy them to your /var/www (or wherever your ww-root) is and you are set.
EDIT: < personal opinion > By the way, I mean there is no thing like "windows web development" and "linux web development". In the end it is of no importance at all on which OS you developped your web application, on which OS the web server runs, which OS the client has or which server- and client-side languages you used (as long as you don't use something certain clients can't provide). You have a web server that communicates via HTTP, HTTPS (or whatever) with clients. This server passes certain data via CGI, lib-apache2-mod-XYZ, WSGI, the interface IIS uses for ASP (or whatever) to executable scripts. These yield a result that the web server then publishes via (fill in arbitrary OSI layer 7 protocol) to the client, no matter what the content: HTML, CSS, images, JSON, you name it. Your operating systems has nothing to do with this.
Not all interfaces are available on all hosting server OS, but you always have a bunch to choose from and what counts is the result in the end. Quidquid agis, prudenter agas et respice finem. < /personal opinion >
There are a ton. You can use mono for ASP.NET that runs on Apache. There are even other languages. PHP, JSP, Djanjo, Ruby on Rails, Node... just to name a few languages/frameworks. There isn't a build of Visual Studio for Linux and you would be hard pressed to set it up to compile Linux assemblies on Windows.

How to Protect program from using on the SERVER?

I have a progam this is a converter for .NET that can be used in other .NET projects.
I have two kinds of license:
Developer license for DESKTOP software
Developer license for WEB server deployed software.
How I can protect my program if client buy (1) license he CAN NOT use it on the SERVER.
Disclaimer: I don't know anything about .Net, other than how to spell it, and I'm not completely sure about that.
It seems like one difference between a person using your file converter on their desktop and using it on a web server is that only a single instance will be running at a time on the desktop; a web page will probably have multiple instances, once per concurrent request. This seems like something you could enforce in software, and also something you could easily write into a license agreement.
Does IIS run with a graphical console on Windows? If it doesn't, and your desktop version does, maybe you could detect that?
Ultimately, though, if someone wants to get around your server/desktop distinction enough, they're going to; they could, for example, have the web server send the document to a desktop machine, and have the desktop send it back to the server. So, at some point, you'll have to give in and either ignore it or to say that's a problem for legal to handle.
If it is desktop software (I'm not sure by the question with the tag), you could use the Environment object to check what OS the code is running on and stop it running on Server Technology. This won't help if they run a server using XP or the like though, but it's a start.

In Windows Mobile (5/6) SDK, where did windns.h go?

According to http://msdn.microsoft.com/en-us/library/aa916070.aspx (DnsQuery_W), DNS query libraries are available on Windows Mobile / CE developers for versions 5.0 onwards. Yet, "#include " gives nasty "file not found" errors. What gives?
Strangely enough "dnsapi.lib" is available. Does Microsoft actually expect developers to scavenge the file from somewhere?..
The posted thread here claims that this API is not actually available in Windows Mobile 5 (and perhaps later?), despite claiming otherwise. I looked through the Mobile 5 and 6 SDKs, and didn't see this API either, so perhaps the thread's suggestion might work for you:
If it's a simple host name->IP address
(IPv4 or v6), you can use getnameinfo
in Winsock. The DNSQuery_W is only
needed if you're doing like a
non-A/AAAA query. If you're doing
that, we really don't have any helpers
to do that for you from the OS side -
sorry. You may look around to see if
there's helper library floating around
out there that you may be able to
recompile for CE (assuming you're
comfortable with whatever licensing
agreements they may put on you.)
getnameinfo should be documented here (for Windows Mobile), in case that helps.
If you are really after 'windns.h', I found it in the WM5/WM6/WM6.1 Platform Builders in
\public\common\sdk\inc
The hard part is getting access to the WM Platform Builder if your an ISV. That I can't help you with.

Resources