程式中的語音實現

2021-09-04 09:09:33 字數 1930 閱讀 9994

選來引用加入的命名空間:

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互動模式是怎樣的呢?你好小樂,我想聽歌 呈現...