1. <form id="m0xjc"></form>

      濟(jì)寧果殼科技專業(yè)軟件開(kāi)發(fā)團(tuán)隊(duì),提供全方位的互聯(lián)網(wǎng)服務(wù)!
      座機(jī):15563775221 手機(jī):15563775221(微信)

      熱門標(biāo)簽

      1. 首頁(yè)
      2. 果殼學(xué)院
      3. 技術(shù)顧問(wèn)
      4. 語(yǔ)音合成 (Speech Synthesis),語(yǔ)音識(shí)別(Speech Recognition) | 果殼科技
      語(yǔ)音合成 (Speech Synthesis),語(yǔ)音識(shí)別(Speech Recognition) | 果殼科技

      語(yǔ)音合成 (Speech Synthesis),語(yǔ)音識(shí)別(Speech Recognition) | 果殼科技

      語(yǔ)音合成 ,Speech Synthesis,語(yǔ)音識(shí)別,Speech Recognition,JS,前端應(yīng)用,Windows窗體應(yīng)用,濟(jì)寧果殼科技。Windows 語(yǔ)音使用

      濟(jì)寧果殼科技

      2017-07-22 16:46:01

      0

      7377

      一、首先說(shuō)一下語(yǔ)音識(shí)別和語(yǔ)音合成技術(shù)實(shí)現(xiàn);Windows系統(tǒng)有自己的語(yǔ)音,基于C#的開(kāi)發(fā),也已經(jīng)將語(yǔ)音封裝到System.Speech程序集中,有興趣的朋友可以自己試試;

      二、我們講述一下c#實(shí)現(xiàn)語(yǔ)音閱讀以及文本轉(zhuǎn)語(yǔ)音文件,是基于c#的一個(gè)類庫(kù)SpeechSynthesizer 實(shí)現(xiàn)的,使用該類必須要添加引用using System.Speech.Synthesis;直接是無(wú)法添加引用的,先對(duì)項(xiàng)目進(jìn)行添加System.Speech引用;

      下面的代碼使用窗體應(yīng)用程序簡(jiǎn)單實(shí)現(xiàn)的,當(dāng)然程序集里還封裝的好多的功能,大家可以自行探討;在web應(yīng)用是不行的,應(yīng)該可以封裝成ActiveX 控件,供瀏覽器調(diào)用吧,這個(gè)還沒(méi)實(shí)現(xiàn);下面會(huì)說(shuō)用JS實(shí)現(xiàn)web語(yǔ)音技術(shù)。

      using System;
      using System.Collections.Generic;
      using System.ComponentModel;
      using System.Data;
      using System.Drawing;
      using System.Linq;
      using System.Speech.Synthesis;
      using System.Text;
      using System.Threading.Tasks;
      using System.Windows.Forms;

      namespace Speech_WinForm
      {
      public partial class SpeakVoice : Form
      {
      public SpeakVoice()
      {
      InitializeComponent();
      }

      private void text_content_TextChanged(object sender, EventArgs e)
      {

      }

      private void btn_speak_Click(object sender, EventArgs e)
      {
      var content = this.text_content.Text;
      SpeechSynthesizer synth = new SpeechSynthesizer();
      synth.Speak(content);
      }

      private void SpeakVoice_Load(object sender, EventArgs e)
      {

      }
      }
      }

      上面的代碼也可以用控制臺(tái)應(yīng)用程序去寫(xiě),在這里只給大家一個(gè)引子,感興趣的同志可以去百度一下吧,

      三、HTML5語(yǔ)音Web Speech

      HTML5中和Web Speech相關(guān)的API實(shí)際上有兩類,一類是“語(yǔ)音識(shí)別(Speech Recognition)”,另外一個(gè)就是“語(yǔ)音合成(Speech Synthesis)”,這兩個(gè)名詞聽(tīng)上去很高大上,實(shí)際上指的分別是“語(yǔ)音轉(zhuǎn)文字”,和“文字變語(yǔ)音”。 而下面要介紹的就是這里的“語(yǔ)音合成-文字變語(yǔ)音”。為什么稱為“合成”呢?比方說(shuō)你發(fā)音“你好,世界!” 實(shí)際上是把“你”、“好”、“世”、“界”這4個(gè)字的讀音給合并在一起,因此,稱為“語(yǔ)音合成”。 “語(yǔ)音識(shí)別”和“語(yǔ)音合成”看上去像是正反兩方面,實(shí)際上,至少?gòu)募嫒菪詠?lái)看,兩者并無(wú)法直接對(duì)等。 “語(yǔ)音識(shí)別(Speech Recognition)”目前的就Chrome瀏覽器和Opera瀏覽器默認(rèn)支持,并且需要webkit私有前綴:

      1、先說(shuō)一下 語(yǔ)音識(shí)別(Speech Recognition)

      使用的基本套路如下: 創(chuàng)建SpeechRecognition的新實(shí)例。

      由于到目前為止,瀏覽器還沒(méi)有廣泛支持,所以需要webKit的前綴:

      var newRecognition = webkitSpeechRecognition(); 設(shè)置是持續(xù)聽(tīng)還是聽(tīng)到聲音之后就關(guān)閉接收。通過(guò)設(shè)置continuous屬性值實(shí)現(xiàn)。一般聊天溝通使用false屬性值,如果是寫(xiě)文章寫(xiě)公眾號(hào)之類的則可以設(shè)置為true,

      如下示意: newRecognition.continuous = true;

      控制語(yǔ)音識(shí)別的開(kāi)啟和停止,可以使用start()和stop()方法:

      // 開(kāi)啟 newRecognition.start();

      // 停止 newRecognition.stop(); 對(duì)識(shí)別到的結(jié)果進(jìn)行處理,可以使用一些事件方法,比方說(shuō)onresult: newRecognition.onresult = function(event) { console.log(event); } event是個(gè)對(duì)象,我家里電腦不知道什么原因,無(wú)法成功返回識(shí)別內(nèi)容,顯示網(wǎng)絡(luò)錯(cuò)誤,可能因?yàn)閴Φ木壒剩?

      2、語(yǔ)音合成Speech Synthesis


      先從最簡(jiǎn)單的例子說(shuō)起,如果想讓瀏覽器讀出“你好,世界!”的聲音,可以下面的JS代碼:


      var utterThis = new window.SpeechSynthesisUtterance('你好,世界!');

      window.speechSynthesis.speak(utterThis);


      沒(méi)錯(cuò),只需要這么一點(diǎn)代碼就足夠了,大家可以在自己瀏覽器的控制臺(tái)里面運(yùn)行上面兩行代碼,看看有沒(méi)有讀出聲音。


      上面代碼出現(xiàn)了兩個(gè)長(zhǎng)長(zhǎng)的對(duì)象,SpeechSynthesisUtterance和speechSynthesis,就是語(yǔ)音合成Speech Synthesis API的核心。


      首先是SpeechSynthesisUtterance對(duì)象,主要用來(lái)構(gòu)建語(yǔ)音合成實(shí)例,例如上面代碼中的實(shí)例對(duì)象utterThis。我們可以直接在構(gòu)建的時(shí)候就把要讀的文字內(nèi)容寫(xiě)進(jìn)去:


      var utterThis = new window.SpeechSynthesisUtterance('你好,世界!');


      又或者是使用實(shí)例對(duì)象的一些屬性,包括:


      text – 要合成的文字內(nèi)容,字符串。

      lang – 使用的語(yǔ)言,字符串, 例如:"zh-cn"

      voiceURI – 指定希望使用的聲音和服務(wù),字符串。

      volume – 聲音的音量,區(qū)間范圍是0到1,默認(rèn)是1。

      rate – 語(yǔ)速,數(shù)值,默認(rèn)值是1,范圍是0.1到10,表示語(yǔ)速的倍數(shù),例如2表示正常語(yǔ)速的兩倍。

      pitch – 表示說(shuō)話的音高,數(shù)值,范圍從0(最?。┑?(最大)。默認(rèn)值為1。


      因此上面的代碼也可以寫(xiě)作:


      var utterThis = new window.SpeechSynthesisUtterance();

      utterThis.text = '你好,世界!';


      不僅如此,該實(shí)例對(duì)象還暴露了一些方法:


      onstart – 語(yǔ)音合成開(kāi)始時(shí)候的回調(diào)。

      onpause – 語(yǔ)音合成暫停時(shí)候的回調(diào)。

      onresume – 語(yǔ)音合成重新開(kāi)始時(shí)候的回調(diào)。

      onend – 語(yǔ)音合成結(jié)束時(shí)候的回調(diào)。


      接下來(lái)是speechSynthesis對(duì)象,主要作用是觸發(fā)行為,例如讀,停,還原等:


      speak() – 只能接收SpeechSynthesisUtterance作為唯一的參數(shù),作用是讀合成的話語(yǔ)。

      stop() – 立即終止合成過(guò)程。

      pause() – 暫停合成過(guò)程。

      resume() – 重新開(kāi)始合成過(guò)程。

      getVoices – 此方法不接受任何參數(shù),用來(lái)返回瀏覽器支持的語(yǔ)音包列表,是個(gè)數(shù)組,例如,在我的電腦下,F(xiàn)irefox瀏覽器返回的語(yǔ)言包是兩個(gè):

      雖然數(shù)量很多,是有種給人中看不中用的感覺(jué),為什么這么說(shuō)呢!在我的chrome瀏覽器下,不知道為什么,不會(huì)讀任何聲音,但是同樣的demo見(jiàn)面,公司的電腦就可以,我后來(lái)仔細(xì)查了一下,有可能(20%可能性)是我家里的電腦win7版本是閹割版,沒(méi)有安裝或配置TTS引擎。


      手機(jī)Safari瀏覽器也不會(huì)讀。



      三、語(yǔ)音合成Speech Synthesis API有什么用


      對(duì)于盲人或弱視用戶,往往會(huì)借助一些輔助設(shè)備或者軟件訪問(wèn)我們的網(wǎng)頁(yè),其原理是通過(guò)觸摸或定位某些元素發(fā)出聲音,來(lái)讓用戶感知內(nèi)容。


      有了語(yǔ)音合成Speech Synthesis API,對(duì)于這類用戶,以及開(kāi)發(fā)人員自己,都會(huì)帶來(lái)一定的便利性。首先對(duì)于視覺(jué)有障礙的用戶,他們就不需要再安裝其他軟件或購(gòu)買其他設(shè)備,就可以無(wú)障礙地訪問(wèn)我們的產(chǎn)品。對(duì)于開(kāi)發(fā)人員自己,我們的無(wú)障礙建設(shè)可以變得更加靈活,不一定要百分百契合ARIA無(wú)障礙規(guī)范(可參見(jiàn)我之前文章“WAI-ARIA無(wú)障礙網(wǎng)頁(yè)應(yīng)用屬性完全展示”),因?yàn)槲覀兛梢灾苯幼尀g覽器合成我想要的語(yǔ)音內(nèi)容,例如,VoiceOver在對(duì)一些標(biāo)簽讀取的時(shí)候,總會(huì)附帶一句“標(biāo)志性內(nèi)容”,就算對(duì)于我這樣專業(yè)從業(yè)者,這個(gè)詞也是有點(diǎn)生澀難懂的,我們其實(shí)可以把這個(gè)語(yǔ)音合成交給自己,使用更通俗易懂的詞反饋給用戶,我想體驗(yàn)上應(yīng)該是更好的。



      定制首選 果殼科技 咨詢熱線:0537-2551991

      關(guān)閉咨詢框
      狠狠爱天天综合色欲网,国产真人无码作爱免费视频禁免费,三级国产在线观看,人妻免费公开在线视频
      1. <form id="m0xjc"></form>