zoukankan      html  css  js  c++  java
  • csharp: Speech

    Speech SDK 5.1
    https://www.microsoft.com/en-us/download/details.aspx?id=10121

    detects mobile devices and browsers  http://51degrees.codeplex.com/

    http://detectmobilebrowsers.com/

    https://github.com/serbanghita/Mobile-Detect


    Speech synthesis sample
    https://code.msdn.microsoft.com/windowsapps/Speech-synthesis-sample-6e07b218

    http://microsoft.github.io/windows/

    Microsoft Speech Platform - Software Development Kit (SDK) (Version 11)
    https://www.microsoft.com/en-us/download/details.aspx?id=27226

    Microsoft Visual Studio International Pack 1.0 SR1
    https://www.microsoft.com/zh-cn/download/confirmation.aspx?id=15251

    Microsoft Visual Studio International Feature Pack 2.0
    https://www.microsoft.com/en-us/download/details.aspx?id=18970

     http://www.codeproject.com/Articles/42354/The-Art-of-Logging (程序日志管理)

    http://slf.codeplex.com/

    https://github.com/net-commons

    https://github.com/aspnet/Logging

    http://netcommon.sourceforge.net/docs/1.2.0/reference/html/logging.html

    https://github.com/apache/log4net/tree/trunk/src

    https://sourceforge.net/projects/log4net/?source=navbar

    http://extjspractice.codeplex.com/

    http://extjsextender.codeplex.com/

    http://fineui.codeplex.com/

    http://extsharp.codeplex.com/

    http://bocaextjs.codeplex.com/

    http://extaspnet.codeplex.com/

    http://helperproject.codeplex.com/

    http://regsharp.codeplex.com/

    http://wacvextjs.codeplex.com/

    http://dough.codeplex.com/

    http://blog.csdn.net/Rock870210/article/details/6068279

    https://github.com/whizkidwwe1217/aspwebapiextjs

    https://github.com/hogaf/Hogaf.ExtNet3.UX

    Speech SDK 5.1

    javascrit:

    <!-- Copyright @ 2001 Microsoft Corporation All Rights Reserved. -->
    <HTML>
    <HEAD>
    <META HTTP-EQUIV="Content-Type" content="text/html; charset=UTF-8">
    <TITLE>TTS Demo</TITLE>
    
    <SCRIPT LANGUAGE="JavaScript">
    
    // Create the Sapi SpVoice object
    var VoiceObj = new ActiveXObject("Sapi.SpVoice");
    
    // ChangeVoice() function:
    // 		This function sets the newly selected voice choice from the Voice 
    //		Select box on the Voice object.
    function ChangeVoice() {
    	var i = parseInt( idsVoices.value );
    	VoiceObj.Voice = VoiceObj.GetVoices().Item(i);
    }
    
    // ChangeAudioOutput() function:
    //		This function sets the newly selected audio output choice from the
    //		Audio Output Select box on the Voice object.
    function ChangeAudioOutput() {
    	var i = parseInt( idsAudioOutputs.value );
    	VoiceObj.AudioOutput = VoiceObj.GetAudioOutputs().Item(i);
    }
    
    // IncRate() function:
    //		This function increases the speaking rate by 1 up to a maximum
    //		of 10.
    function IncRate() {
    	if( VoiceObj.Rate < 10 )
    	{
    		VoiceObj.Rate = VoiceObj.Rate + 1;
    	}
    }
    
    // DecRate() function:
    //		This function decreases the speaking rate by -1 down to a minimum
    //		of -10.
    function DecRate() {
    	if( VoiceObj.Rate > -10 )
    	{
    		VoiceObj.Rate = VoiceObj.Rate - 1;
    	}
    }
    
    // IncVol() function:
    //		This function increases the speaking volume by 10 up to a maximum
    //		of 100.
    function IncVol() {
    	if( VoiceObj.Volume < 100 )
    	{
    		VoiceObj.Volume = VoiceObj.Volume + 10;
    	}
    }
    
    // DecVol() function:
    //		This function decreases the speaking volume by -10 down to a minimum
    //		of 0.
    function DecVol() {
    	if( VoiceObj.Volume > 9 )
    	{
    		VoiceObj.Volume = VoiceObj.Volume - 10;
    	}
    }
    
    // SpeakText() function:
    //		This function gets the text from the textbox and sends it to the
    //		Voice object's Speak() function. The value "1" for the second
    //      		parameter corresponds to the SVSFlagsAsync value in the SpeechVoiceSpeakFlags
    //		enumerated type.
    function SpeakText() {
    	if( idbSpeakText.value == "SpeakText" )
    	{
    		// Speak the string in the edit box
    		try
    		{
    			VoiceObj.Speak( idTextBox.value, 1 );
    		}
    		catch(exception)
    		{
    			alert("Speak error");
    		}
    	}
    	else if( idbSpeakText.value == "Stop" )
    	{
    		// Speak empty string to Stop current speaking. The value "2" for 
    		// the second parameter corresponds to the SVSFPurgeBeforeSpeak
    		// value in the SpeechVoiceSpeakFlags enumerated type.
    		VoiceObj.Speak( "", 2 );
    	}
    }
    
    </SCRIPT>
    
    <SCRIPT FOR="window" EVENT="OnQuit()" LANGUAGE="JavaScript">
    	// Clean up voice object
    	delete VoiceObj;
    </SCRIPT>
    
    </HEAD>
    
    
    
    
    
    <BODY>
    <H1 align=center>Simple TTS (DHTML)</H1>
    <H1 align=center><FONT size=3>        </FONT>
    <IMG alt="" border=2 hspace=0 id=idImage src="mouthclo.bmp">  </H1>
    <H1 align=center>  
    <TEXTAREA ID=idTextBox COLS=50 ROWS=10 WRAP=VIRTUAL>Enter text you wish spoken here</TEXTAREA>
    </H1>
    
    <P align=center><STRONG><STRONG> 
    Rate <STRONG> 
    <INPUT id=idbIncRate name=button1 type=button onclick=IncRate() value="    +    "></STRONG> 
    <INPUT id=idbDecRate name=button2 type=button onclick=DecRate() value="    -    " style="LEFT: 237px; TOP: 292px">     </STRONG>  
    
    Volume <STRONG><STRONG> 
    <INPUT id=idbIncVol name=button3 onclick=IncVol() style="LEFT: 67px; TOP: 318px" type=button value="    +    "> 
    <INPUT id=idbDecVol name=button4 onclick=DecVol() type=button value="    -    " style="LEFT: 134px; TOP: 377px">
    </STRONG></STRONG></STRONG></P>
     
    <P align=center><STRONG><BUTTON id=idbSpeakText onclick=SpeakText(); 
       style="HEIGHT: 24px; LEFT: 363px; TOP: 332px; WIDTH: 178px">SpeakText</BUTTON></STRONG></P>
     
    <P align=center><STRONG>Voice                                             
       <STRONG>Audio Output </STRONG></STRONG></P>
    <P align=center> 
    
    <SELECT id=idsVoices name=Voices onchange=ChangeVoice() style="FONT-FAMILY: serif; HEIGHT: 21px; WIDTH: 179px"> </SELECT>
                
    
    <SELECT id=idsAudioOutputs name=AudioOutputs onchange=ChangeAudioOutput() style="HEIGHT: 22px; WIDTH: 179px">  </SELECT>
     
    
    <SCRIPT LANGUAGE="JavaScript">
    // Code in the BODY of the webpage is used to initialize controls and
    // to handle SAPI events
    
    /***** Initializer code *****/
    InitializeControls();
    
    function InitializeControls()
    {
    	// Initialize the Voices and AudioOutput Select boxes
    	var VoicesToken = VoiceObj.GetVoices();
    	var AudioOutputsToken = VoiceObj.GetAudioOutputs();
    
    	// Add correct strings to Voice Select box
    	for( var i=0; i<VoicesToken.Count; i++ )
    	{
    		var oOption = document.createElement("OPTION");
    		idsVoices.options.add(oOption);
    		oOption.innerText = VoicesToken.Item(i).GetDescription();
    		oOption.value = i;
    	}
    
    	// Add correct strings to Audio Output Select box
    	for( var i=0; i<AudioOutputsToken.Count; i++ )
    	{
    		var oOption = document.createElement("OPTION");
    		idsAudioOutputs.options.add(oOption);
    		oOption.innerText = AudioOutputsToken.Item(i).GetDescription();
    		oOption.value = i;
    	}	
    }
    
    /***** Event handling code *****/
    // These functions are used to handle the SAPI events
    
    // Handle StartStream event	
    function VoiceObj::StartStream() {
    	idbSpeakText.value = "Stop";
    }
    
    // Handle EndStream event	
    function VoiceObj::EndStream() {
    	idbSpeakText.value = "SpeakText";
    	idImage.src = "mouthclo.bmp";
    }
    
    // Handle Viseme event	
    function VoiceObj::Viseme(StreamNum, StreamPos, Duration, VisemeType, Feature, VisemeId) {
    	// Map the VisemeId to the appropriate .bmp
    	if( VisemeId == 15 || VisemeId == 17 || VisemeId == 18 || VisemeId ==21 )
    	{
    		idImage.src = "mouthop1.bmp";
    	}
    	else if( VisemeId == 14 || VisemeId == 16 || VisemeId == 19 || VisemeId == 20 )
    	{
    		idImage.src = "mouthop2.bmp";
    	}
    	else if( VisemeId == 4 || VisemeId == 6 || VisemeId == 9 || VisemeId == 12 )
    	{
    		idImage.src = "mouthop3.bmp";
    	}
    	else if( VisemeId == 1 || VisemeId == 2 || VisemeId == 3 || VisemeId == 11 )
    	{
    		idImage.src = "mouthop4.bmp";
    	}
    	else if( VisemeId == 7 || VisemeId == 8 )
    	{
    		idImage.src = "mouthnar.bmp";
    	}
    	else if( VisemeId == 5 || VisemeId == 10 || VisemeId == 13 )
    	{
    		idImage.src = "mouthmed.bmp";
    	}
    	else
    	{
    		idImage.src = "mouthclo.bmp";
    	}
    }
    </SCRIPT>
    
    
    
    <STRONG>
    <HR></STRONG>
    <P></P>
    
    </BODY>
    </HTML>
    

      

     private void btnSpeak_Click(object sender, System.EventArgs e)
            {
    			//Create a TTS voice and speak.
    			try 
    			{
    				SpeechVoiceSpeakFlags SpFlags = SpeechVoiceSpeakFlags.SVSFlagsAsync;
    				SpVoice Voice = new SpVoice();
    				if (chkSaveToWavFile.Checked)
    				{
    					SaveFileDialog sfd = new SaveFileDialog();
    	    
    					sfd.Filter = "All files (*.*)|*.*|wav files (*.wav)|*.wav";
    					sfd.Title = "Save to a wave file";
    					sfd.FilterIndex = 2;
    					sfd.RestoreDirectory = true;
    	    
    					if (sfd.ShowDialog()== DialogResult.OK) 
    					{
    
    						SpeechStreamFileMode SpFileMode = SpeechStreamFileMode.SSFMCreateForWrite;
    
    						SpFileStream SpFileStream = new SpFileStream();
    						SpFileStream.Open(sfd.FileName, SpFileMode, false);
    
    						Voice.AudioOutputStream = SpFileStream;
    						Voice.Speak(txtSpeakText.Text, SpFlags);
    						Voice.WaitUntilDone(Timeout.Infinite);
    
    						SpFileStream.Close();
    
    					}
    				}
    				else
    				{
    					Voice.Speak(txtSpeakText.Text, SpFlags);
    				}
    			}
    			catch(Exception error)
    			{
    				MessageBox.Show("Speak error", "SimpleTTS", MessageBoxButtons.OK, MessageBoxIcon.Error);
    			}
    
            }
    

      

  • 相关阅读:
    CompletableFuture java 8新增加异步处理
    Java并发编程:CountDownLatch、CyclicBarrier和 Semaphore , Condition
    怎么让一个不定宽高的div垂直水平居中?
    数组对象方法排序
    Webpack ERROR in Path must be a string. Received undefined
    es6 babel转码器安装配置及常见命令
    使用淘宝镜像cnpm安装Vue.js
    JS中的call()和apply()方法
    placeholder颜色更改
    typeof与js数据类型
  • 原文地址:https://www.cnblogs.com/geovindu/p/5666493.html
Copyright © 2011-2022 走看看