使用 JavaScript 進行單詞發音

發表於2017-04-21

使用 JavaScript 進行單詞發音

在w3c草案中增加了對Web Speech Api的支援;主要作用在
兩個非常重要的方面:

  • 語音識別 (將所說的轉換成文字文字 / speech to text);
  • 語音合成 (將文字文字讀出來 / text to speech);

而chrome在版本33釋出後宣佈對該特性的支援;今天重要介紹第二部分。

演示地址

文件和演示程式碼

開始使用

當然你還可以修改很多引數去調整你的發音:

  • volume:聲音;
  • rate:發音速度;
  • pitch:音調;
  • voice:聲音;
  • language:語言(en,zh,ja…更多參考)

設定發音

你可以通過下面函式獲取可以使用的發音列表名稱

大概你可以獲取下面的一個列表

接下來我們可以試驗下改變發音名稱

除了英文,我們還可以使用其他語言

瀏覽器支援

  • Chrome 33+
  • iOS7 safari部分支援 (測試iOS8支援,iOS9不支援)

相容性檢測

如果對於不支援的瀏覽器,我們可以使用老的方法,即將需要發音的單詞傳送到服務端進行處理,返回一個音訊,類似如下:

推薦框架

當然我們如果追求快速開發的話,我們現在依舊有成熟的框架來支援這個功能,讓他實現更多瀏覽器的支援。

  • ResponsiveVoice.JS 是一款基於html5的跨平臺的發音支援類庫,支援超過56種語言和168種
    聲音,分為免費版和商業版。Demo
  • speak.js 基於eSpeack改造而來的一款js單詞拼讀類庫.
  • meSpeak.js 是一個100%的客戶端發音類庫,支援chrome和safari,並且無需要任何html元素;
  • say.js一款基於node.js的發音擴充套件類庫。

持續更新中…

參考

  1. Web apps that talk – Introduction to the Speech SynthesisAPI
  2. using-google-text-to-speech-in-javascript
  3. A More Awesome Web: Features You’ve Always Wanted – Google I/O 2013
  4. HTML Speech API Examples

相關文章