程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> .NET實例教程 >> .NET 將文本轉換成語音的實例

.NET 將文本轉換成語音的實例

編輯:.NET實例教程
用過金山詞霸的都知道金山詞霸裡有個功能能夠將單詞按其讀音讀出來。也許會有人認為它是事先將所有的單詞的讀音文件存儲在數據庫裡,然後事需要的時候再調用。其實事實上並不是這樣,我們有更好的解決辦法,MS就專門提供了這種技術。

  在計算機中將文本轉換成語音的技術叫做語音合成(TTS:Text To Speech)。要使用它的話就需要到MS官網上去下載地址為:http://www.microsoft.com/reader/developers/downloads/tts.mspx

  這個東西不是很大,到於原理還沒有去想過,因為現在只是幫想了解的朋友做個最基本的DEMO。

  下下來了後就安裝,注意:如果想實現漢字或非英語的閱讀就要去下載SpeechSDK51LangPack。

  下面來創建一個TTS程序,首先在VS中創建一個項目,然後添加引用"安裝目錄\Samples\Csharp\ListBox"中的Interop.SpeechLib.dll程序集,在程序裡引用SpeechLib Namespace。

  創建SpVoiceClass類,(SpVoiceClass是我們這裡要用到的主要的類),面在這裡必要的屬性如下:

屬性名

類型

說明

Voice

SpObjectToken

大概是用於設置聲音的效果

AudioOutput

SpObjectToken

用於選擇聲卡

Rate

Int

頻率,說話的速度

Volume

Int

音量,最大為100

 

  根據SpVoiceClass類中幾個必要的屬性,我們可以做一個類似下圖的簡單界面

  具體的實現代碼如下:

 

Code
private void button1_Click(object sender, EventArgs e)
{
try
{
voic.Voice = voic.GetVoices(null, null).Item(comboBox1.SelectedIndex);
voic.AudioOutput = voic.GetAudioOutputs(null, null).Item(comboBox2.SelectedIndex);
voic.Rate = trackBar1.Value;
voic.Volume = trackBar2.Value;
voic.Speak(textBox1.Text, SpeechVoiceSpeakFlags.SVSFDefault);
}
catch
{
;
}
}

  注意:comboBox1.SelectedIndex不為3時只能讀英語;如果為3,要讀是是英文的話,它就會一個字母一個字母的讀出來,如果是漢字則會讀漢語(前提是裝了話音補丁)

 

  好了,簡單的Demo已經完成了,接著去探索吧……

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved