C#語音朗讀文本 — TTS的實現


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 語音文件,這里


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM