幾周前,我簡要討論了nlp及其相關技術。 在處理自然語言時,要考慮兩個不同但又互補的方面:自動語音識別( asr )和文字轉語音( tts )。 在介紹web語音api的文章中,我討論了web語音api,這是乙個在web瀏覽器中提供語音輸入和文字到語音輸出功能的api。 您可能已經注意到,我只介紹了如何在**中實現語音識別,而不是語音合成。 在本文中,我們將填補描述語音合成api的空白。
在**中,使用者可以使用自己的聲音瀏覽頁面或填充表單字段。 使用者也可以在駕駛時與頁面進行互動,而不會將視線移開。 這些不是平凡的用例。語音合成具有與語音識別一樣多的用例。 想想看,在一些新型汽車中實施的系統會讀取您的文字或電子郵件,這樣您就不必將視線移開。 使用計算機的視力障礙人士熟悉jaws之類的軟體,該軟體可以讀取桌面上的所有內容,從而執行任務。 這些應用程式很棒,但是花費很多錢。 多虧了語音合成api,我們可以幫助人們使用我們的**,無論他們有多殘疾。
例如,假設您正在部落格上寫文章(就像我現在所做的那樣),為了提高其可讀性,您將其分為幾段。 這不是使用語音合成api的好機會嗎? 實際上,我們可以對**進行程式設計,以便一旦使用者將滑鼠懸停在(或專注於)文字上時,螢幕上就會出現揚聲器圖示。 如果使用者單擊該圖示,我們將呼叫乙個函式,該函式將合成給定段落的文字。 這是不平凡的改進。 更好的是,對於我們作為開發人員而言,它的開銷非常低,而對使用者而言則沒有開銷。 下面的js bin中顯示了此概念的基本實現。
語音合成api演示
現在,我們對這個api的用例有了更多的了解,讓我們了解它的方法和屬性。
我們需要學習的第乙個物件是speechsynthesisutterance
物件。 它代表合成器要說的話語(即文字)。 該物件非常靈活,可以通過多種方式自定義。 除文字外,我們還可以設定用於發音的語言,速度甚至音高。 以下是其屬性的列表:
要例項化此物件,我們可以將文字傳遞給synthesize作為構造函式引數,也可以忽略該文字並在以後進行設定。 以下**是第一種情況的示例。
// create the utterance object
var utterance = new speechsynthesisutterance('my name is aurelio de rosa');
下面顯示了第二種情況,該情況構造了speechsynthesisutterance
,然後分配了引數。
// create the utterance object
var utterance = new speechsynthesisutterance();
utterance.text = 'my name is aurelio de rosa';
utterance.lang = 'it-it';
utterance.rate = 1.2;
該物件公開的一些方法是:
speechsynthesisutterance
物件使我們可以設定speechsynthesisutterance
的文字以及配置說的方式。 目前,我們僅建立了代表話語的物件。 我們仍然需要將其繫結到合成器。
speechsynthesis
物件不需要例項化。 它屬於window
物件,可以直接使用。 該物件公開了幾種方法,例如:
另乙個有趣的方法是getvoices()
。 它不接受任何引數,用於檢索特定瀏覽器可用的語音列表(陣列)。 列表中的每個條目都提供諸如name
,助記符名稱之類的資訊,以便為開發人員提供語音提示(例如「 google us english」),lang
,語音語言(例如it-it)和voiceuri
,此語音的語音合成服務的位置。
重要說明:在chrome和safari中,voiceuri
屬性改為名為voice
。 因此,我們將在本文中構建的演示使用voice
而不是voiceuri
。
不幸的是,在撰寫本文時,唯一支援語音合成api的瀏覽器是具有完全支援的chrome 33和具有部分支援的safari for ios 7。
本部分提供了語音合成api的簡單演示。 該頁面允許您輸入一些文字並進行合成。 另外,可以設定速率,音高和您要使用的語言。 您還可以隨時使用提供的相應按鈕停止,暫停或恢復文字的合成。
在將偵聽器附加到按鈕之前,由於對此api的支援非常有限,我們對實現進行測試。 像往常一樣,測試非常簡單,並且包含以下**:
if (window.speechsynthesisutterance === undefined) else
此處提供了**的實時演示。 此外,此演示以及我到目前為止構建的所有其他演示都可以在我的html5 api演示儲存庫中找到。
api not supported
clear all
在本文中,我們介紹了語音合成api。 它是一種用於合成文字並改善我們**使用者(尤其是有視覺障礙的**)使用者的整體體驗的api。 如我們所見,該api公開了多個物件,方法和屬性,但是使用起來並不難。 不幸的是,目前它的瀏覽器支援非常差,chrome和safari是唯一支援它的瀏覽器。
from:
語音合成 什麼是語音合成?
1.什麼是語音合成?2.psola演算法 3.基於hmm的引數合成 4.未來有哪些趨勢?本系列時常補充和糾錯 1.1 什麼是語音合成?語音合成則是乙個相反的過程,語音合成要求使用者輸入一段文字,系統負責將文字轉換成一段流暢自然的語音。其實,語音合成在生活中的應用也是隨處可見,只是我們有時候會將其忽略...
電腦生成siri語音 語音識別和語音合成技術
語音識別是指將人的說話的聲音轉換成相應的文字,這需要計算機自動識別出語音頻號中的單詞和詞彙,甚至理解其中所包含的意思。語音識別的應用面特別的廣泛,包括語音撥號,語音導航,裝置操作控制,語音文件檢索,聽寫資料錄入等,如果語音識別和機器翻譯以及語音合成技術相結合,還可以提供從一種語音到另外一種語音的計算...
語音合成技術
語音合成又稱文語轉換 text to speech 簡稱tts,指通過機械的 電子的方法生成語音的技術。隨著科技的發展,合成語音的自然度和音質均得到了明顯的改善。目前,語音合成技術在我們生活中具有廣泛的應用,如電子閱讀 車載語音導航 銀行醫院排號系統 交通播報等等,這些應用場景都離不開語音合成。簡單...