国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

asp.net 實(shí)現(xiàn) tts

2019-11-17 01:37:48
字體:
供稿:網(wǎng)友

asp.net 實(shí)現(xiàn) tts

之前用WinForm實(shí)現(xiàn)tts已經(jīng)成功,就調(diào)用了下系統(tǒng)的類庫(kù)。但我把相同的代碼搬到asp.net上時(shí)卻碰到了許多問題,查了好多網(wǎng)站、試過了很多方法,到現(xiàn)在算是做出了一部分吧。

之前調(diào)用微軟的TTS是用的這個(gè)代碼

1 SpeechSynthesizer speech = new SpeechSynthesizer();2 public void Speak(string text, int rate)3 {4     speech.Rate = rate;5     speech.Speak(text);6     speech.Dispose();7 }

在網(wǎng)頁(yè)上,我把這個(gè)方法賦給了button的click事件。按第一次是有聲音的,但聲音播放完后后網(wǎng)頁(yè)卻仍在不停的載入,再按button也沒反應(yīng)了。跟著調(diào)試過了一遍,也發(fā)現(xiàn)事件明明都結(jié)束了。感覺很凌亂,然后想用Ajax讓它后臺(tái)自己執(zhí)行并生成音頻文件,第一次點(diǎn)擊按鈕時(shí)生成很順利,但點(diǎn)擊第二時(shí)就出現(xiàn)問題了,它過了好久才生成出來,就像卡住了,一小伙伴也遇到了同樣的問題。先上Ajax代碼:

 1     <script type="text/javascript"> 2         $(document).ready(function() { 3             $("#bt_read").click(function () { 4                 var url = window.location.href + "/TextSpeak"; 5                 $.ajax({ 6                     type: "POST", 7                     url: url, 8                     data: "{'text':'hello'}", 9                     contentType: "application/json;charset=utf-8",10                     dataType: "json",11                     error: function() {12                         alert("error");13                     }14                 });15             });16         })17     </script>

這是后臺(tái)的代碼:

1     [WebMethod]2     public static void TextSpeak(string text)3     {4         TextToSpeak ttSpeak = new TextToSpeak();5         string x = DateTime.Now.ToString("yyyyMMddHHmmss");6         ttSpeak.SaveWaveFile("d:/" + x + ".wav", text, 1, "male");7     }

(類TextToSpeak的代碼在上一篇里)

希望有大神能看到幫我解決這個(gè)問題(若大神看不到,就只能自己慢慢糾結(jié)了>_<)-----如果想看解決方法的小伙伴,可以忽略上面的代碼。。

嘗試了好多方法,就這個(gè)能行(還要添加一個(gè)DotNetSpeech.dll類庫(kù)):

    /// <summary>    /// 網(wǎng)頁(yè)上使用TTS    /// </summary>    /// <param name="path">路徑</param>    /// <param name="text">文本</param>    /// <param name="rate">語速</param>    /// <param name="gender">性別</param>    public void SaveWaveFile(string path,string text,int rate,string gender)    {        Type type = Type.GetTypeFrom

為啥我沒寫speak的方法呢。。要在網(wǎng)頁(yè)客戶端上播放音頻,讓服務(wù)器speak有啥用。服務(wù)器喊啞了,客戶端也是聽不到的哦~~只能生成音頻文件傳到網(wǎng)頁(yè)上用插件播放。為啥我說是半成品呢,因?yàn)槲以囘^很多方法了,總找不到合適的插件解決播放的問題.

突然才發(fā)現(xiàn)原來它可以直接生成.MP3,網(wǎng)上都說要生成wav格式的,自己也沒試試,直到看到小伙伴直接把路徑寫成*.MP3,并且能生成出來才知道原來是可以直接輸出MP3哇。。那這樣問題就不大了,找個(gè)插件把路徑附進(jìn)去就行啦~~

插件要滿足這兩個(gè)條件:

1.能動(dòng)態(tài)添加鏈接。

2.能播放.wav格式。

我試過用自定義控件編寫的mediaPlayer插件來播放 參考:http://m.survivalescaperooms.com/insus/archive/2009/05/03/1448097.html

其實(shí)這個(gè)能把問題都解決了。。就是只有在ie上有效果,其他瀏覽器上都不行。。看了網(wǎng)頁(yè)代碼,音頻鏈接都讀取到了但就是不能播放~~

還有一個(gè)結(jié)果方法,就是讓swf播放器能播放tts生成的wav文件,或者把wav轉(zhuǎn)換成MP3。。這個(gè)我還沒能實(shí)現(xiàn)。

先到這了,我還在慢慢調(diào)試,等搞出來了,立馬發(fā)出來。。也希望有大神幫我解決下哇~~


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 轮台县| 鹤壁市| 鄯善县| 嵊州市| 乐清市| 平安县| 神池县| 社旗县| 桓台县| 皋兰县| 鄂州市| 荆门市| 邵东县| 综艺| 临高县| 天长市| 永靖县| 甘孜县| 黄龙县| 平乡县| 行唐县| 大城县| 平邑县| 连江县| 大安市| 石阡县| 林口县| 吉木萨尔县| 德江县| 广丰县| 广安市| 文化| 德令哈市| 赣州市| 仁化县| 穆棱市| 七台河市| 临安市| 武义县| 札达县| 芜湖县|