TTS, Text To Speech的縮寫,是使用語音朗讀文本的技術。目前,在國內應用較多的是排隊叫號系統
Windows 平台的TTS,通常使用的是微軟自帶的 Speech API。
Windows XP 自帶的是 Speech API 5.1,默認是只支持英文的。如果要朗讀中文,需要安裝LangPack,里面支持簡體中文,不過,是個男生的發音。
從Vista開始,默認自帶的 Microsoft Speech API 5.3,效果好了很多,可惜不支持XP,郁悶
下面,說一下 C# 利用 TTS 來朗讀文本的實現方式:
從 .NET 3.0開始,.NET Framework里,提供了托管的Speech API 調用方法,這樣,就非常流暢了。而不必拘泥於繁瑣的非托管COM調用了。
.Net 3.0 的實現代碼:
using System.Speech.Synthesis; SpeechSynthesizer synth = new SpeechSynthesizer(); synth.Speak("Hello, world! 你好么?"); synth.Dispose();
從.NET 4.0開始,增加了一個 dynamic 動態綁定的功能,使得C#可以像VB.NET那樣,使用后期綁定的方式,使用COM對象了,從而使得直接COM調用,也非常的簡單了。
.Net 4.0 的實現方式:
Type type = Type.GetTypeFromProgID("SAPI.SpVoice"); dynamic spVoice = Activator.CreateInstance(type); spVoice.Speak("你好,歡迎使用 CSharp 4.0!");
說明: 如果是XP系統,並且沒有安裝 TTS 5.1 語言包的話,上面的朗讀,會忽略所有的中文的。
我這里,也把 TTS5.1的下載地址,一並發布出來:
SDK 5.1 下載, 這里
SDK 5.1 語言包,這里
SDK 5.1 語音文件,這里