[VB.NET]簡易中文的文字轉語音(需安裝MS Speech SDK與LangPack,調整控制台)

簡易中文的文字轉語音(需安裝Microsoft Speech SDK與LangPack,調整控制台)

在這篇文章中,簡易的實現中文的文字轉語音,文字轉語音是在電腦中輸入文字,而電腦就會將文字轉換成聲音放出來(好像有點廢話!?),這個功能是為了讓機器人能夠說出中文,並且透過簡單、簡短的程式碼實現,此方法實現於Windows XP

以下為實現的步驟

1. 先到微軟網站下載並安裝 Speech SDK 5.1 與 Speech SDK 5.1 語言包 (SpeechSDK51LangPack.exe)

http://www.microsoft.com/downloads/details.aspx?FamilyID=5e86ec97-40a7-453f-b0ee-6583171b4530&displaylang=en

2. 安裝完成後,就可以讓電腦說出中文、日文、英文,但 Speech SDK 5.1 的語言包我只有找到簡體中文跟日文,而要讓電腦說出中文,還必須去調整一些設定

開啟 控制台 -> 語言 -> 文字轉換語音 -> 語言選取 -> Microsoft Simplified Chinese

3. 接著就開始撰寫程式碼讓電腦說出中文,不過只有支援簡體中文,因此我們在輸入字串的部份,就要先將我們所輸入的繁體中文轉換成簡體中文,就可以透過Speech SDK 文字轉語音,而 VB.NET 中的 StrConv 就可以簡單達成繁體轉簡體的功能,但是有些繁體中文轉簡體中文會轉換不過去,是這個程式的缺點之一,以下為程式碼

Public Class Form1

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        TextBox1.Text = "點部落是相當好的語言學習網站"
    End Sub


    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim MyVoice As New SpeechLib.SpVoice
        Dim strData As String
        strData = StrConv(TextBox1.Text, VbStrConv.SimplifiedChinese, 2052)
        MyVoice.Speak(strData)
    End Sub

End Class

執行結果

此外,想要使用C#實現,可以參考這篇文章

http://www.cnblogs.com/Jrong/archive/2009/02/04/1383564.html