Re: [問題] Micorsoft Speech SDK5.1 與 SDK11

看板C_and_CPP作者 (藍調迷思)時間11年前 (2013/02/09 12:56), 編輯推噓0(003)
留言3則, 2人參與, 最新討論串2/2 (看更多)
找了許多資訊後,最後得到結論是,SDK11是包裝在SDK5.1更上面的SDK. 意思就是基於SDK5.1所包裝出來較高階的SDK. 當然SDK11似乎僅支援C#和VB等高階點的語言. 而SDK5.1則可支援C/C++做使用,也屬於較底層一點的語言. 不知道我這樣的理解是否正確呢@@" 再來我現在遇到一個問題. SDK11 DOC裡面有提到要讓電腦發出聲音可使用SpeechSynthesizer裡面的Speek() 函式. 用法是. using System; using System.Collections.Generic; using System.Linq; using System.Text; using Microsoft.Speech.Synthesis; namespace SimpleSpeak { class Program { static void Main(string[] args) { SpeechSynthesizer s = new SpeechSynthesizer(); s.Speak("Hello. My name is Microsoft Server Speech Text to Speech Voice (en-US, Helen)."); } } } 然而我照著把程式貼上去後,建置也成功了沒有錯誤,但是執行的時候程式很快就跑完了 ,什麼聲音也沒出來就結束掉了!! 之後我試著用也是SpeechSynthesizer類別裡的SetOutputToWaveFile()函式將s.Speak的 內容輸出成wmv檔,然後在文件夾裡做開啟,結果確實是有聲音的! 表示Speak這個函式確實是用來產生聲音的! 但是為什麼在C#執行時就是不會有聲音出 來呢? 還是說Speak只負責產生聲音,要播放聲音還需要另外寫類似撥放器的東西嗎? 小弟對這一塊還處於很陌生的階段,拜託大家幫忙了>"< -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 1.161.94.200 ※ 編輯: moonskyex 來自: 1.161.94.200 (02/09 12:58)

02/09 19:50, , 1F
s.SetOutputToDefaultAudioDevice();
02/09 19:50, 1F
我找到問題了! 最簡單的方法就是linotwo大提供的加入那個程式碼就行了! 其他還有可以使用System.IO.media.Soundplayer把SpeechSynthesizer的串流資料讀入 再用Soundplayer的PlaySyn()函式播放! ※ 編輯: moonskyex 來自: 1.161.81.16 (02/09 23:24)

02/12 12:16, , 2F
11是platform SDK... 給.net相關程式用的... 5比較接近核心
02/12 12:16, 2F

02/12 12:17, , 3F
兩者是不同的東西...
02/12 12:17, 3F
文章代碼(AID): #1H5TRsRX (C_and_CPP)
文章代碼(AID): #1H5TRsRX (C_and_CPP)