選來引用加入的命名空間:
using
wmplib;
然後在main方法中寫入
windowsmediaplayer
player =
newwindowsmediaplayer
();//
player.url =
"f:/test/a.wma";//
console
.read();
//暫停程式,不至於退出
第二個,用vbs指令碼檔案,首先建立乙個記事本檔案,開啟記事本,在裡面寫入下面**:
createobject("sapi.spvoice").speak"測試語音檔案.",然後儲存並把副檔名改為.vbs,這時,檔案的圖示就發生了變化,然後雙擊該vbs檔案,就會聽到語音朗讀。
這好像與程式無關,不急,接下來要在c#中,利用io來處理該檔案,並實現對他的呼叫。
先引入命名空間
using
system.io;
然後生成並呼叫指令碼**如下:
string
path =
@"f:/test/a.vbs";//
定義指令碼路徑
string
content =
"createobject(\"sapi.spvoice\").speak\"\"";//
定議指令碼內容框架
content=
string
.format(content,
"你好,這是一段測試語音!"
);//
合併生成指令碼內容
file
.writealltext(path,content,
encoding
.default);
//把內容寫入指令碼檔案
process
.start(path);
//呼叫指令碼檔案
用機器去讀語音,是個好主意,但還要生成指令碼檔案,就顯的有些業餘了,有沒有不生成語音檔案的呢,那就是第三種情況。
第三種,用微軟的speech platform
要開發microsoft speech platform應用,首先要整理好開發環境
1、speechplatformruntime.msi
2、msspeech_tts_zh-cn_huihui.msi
3、msspeech_sr_zh-cn_tele.msi
4、microsoftspeechplatformsdk.msi
這些檔案有x86,有64位的,要依自己的os而定。
在**中引用命名空間
using
microsoft.speech.synthesis;
speechsynthesizer
ss =
newspeechsynthesizer
();//
ss.setoutputtodefaultaudiodevice();
// ss.volume= 10;
//設定音量
ss.speak(
"這是乙個測試語音!"
);//
讀語音 這樣就實現了簡單的語音而不產生語音檔案
後兩種基實都是利用了微軟的tts功能來實現的,第三種更為專業一些。
下面簡單比較幾種方式的優缺點:
vbsspeech platform
優點音質效果好,和語音檔案相關。
使用簡單。
只需要錄入語音文字就可以,語音資訊靈活
不需要安裝檔案
不需要或產生任何檔案
語音功能更強大
缺點需要錄製語音,不靈活。
音質死板,單調
需要生成指令碼檔案
音質死板,單調
需要安裝包
程式中的語音實現
選來引用加入的命名空間 using wmplib 然後在main方法中寫入 windowsmediaplayer player newwindowsmediaplayer player.url f test a.wma console read 暫停程式,不至於退出 第二個,用vbs指令碼檔案,首先...
小程式實現簡單語音聊天
基於ws外掛程式 引入ws外掛程式 var websocketserver require ws server 例項化websocket var wss new websocketserver 初始化客戶端陣列 var clients 建立鏈結監聽 wss.on connection functio...
語音互動中ONESHOT裝置端實現
之前的幾篇博文中我們介紹了語音互動框架 語音sdk設計,本篇博文中重點介紹語音互動中的oneshot設計。那什麼是語音oneshot呢?簡單的講,就是使用者喚醒詞與要識別的內容連說。傳統的語音互動模式一般是這種情形 我想聽歌 等待對話結果 那oneshot互動模式是怎樣的呢?你好小樂,我想聽歌 呈現...