互聯(lián)網(wǎng)以及和它相關(guān)的一切現(xiàn)在似乎隨處可見。您也許已經(jīng)試過接到夜間電話推銷員的語音電話、又或者曾經(jīng)接到過當(dāng)?shù)厮幍杲o您的處方通知?,F(xiàn)在,有一種新技術(shù)可以使用語音合成結(jié)合XML技術(shù)傳送語音信息了。
以語音傳遞信息的手段并不是什么新東西。它是我們幾千年來一直使用的交流方法。而且,從一臺(tái)計(jì)算機(jī)那里接收到電話也并非什么新發(fā)明。許多語音技術(shù)到現(xiàn)在已經(jīng)大行其道了,從傳真機(jī)、自動(dòng)撥號(hào)器到集成語音回復(fù)系統(tǒng)(IVR)。電話當(dāng)然是它最普遍的應(yīng)用。
傳統(tǒng)的語音系統(tǒng)使用預(yù)先錄制好的樣本、詞典和音素來創(chuàng)建我們所聽到的聲音。然而,使用這種預(yù)先錄制的手段有很多問題。其中最普遍的問題之一就是缺少連貫性和變化。如果只有一種錄制好的語音版本,其中每個(gè)單詞或者聲音都只有一個(gè)樣本,那么很難讓計(jì)算機(jī)發(fā)出和普通陳述語句不同語調(diào)的疑問句。同樣困難的是讓計(jì)算機(jī)知道何時(shí)該用某種語調(diào)或者該用何種語調(diào)發(fā)音。
為了幫助解決語音合成問題,W3C為語音合成標(biāo)記語言(Speech Synthesis Markup Language)創(chuàng)建了一種新的工作草稿。這種新的XML詞匯表可以使語音瀏覽器開發(fā)人員能夠控制一個(gè)語音合成器的創(chuàng)建方法。例如,開發(fā)者可以將命令包含進(jìn)音量中,并在合成語音模式的時(shí)候使用它。
SSML規(guī)范基于Sun公司早期的一項(xiàng)名為JSpeeck Markup Language(JSML)的研究工作。JSML則是基于Java Speech API Markup Language。現(xiàn)在SSML是W3C語音研究工作組的工作稿。
SSML語言的基本目標(biāo)是一個(gè)文本到語音(Text-To-Speech簡稱TTS)的處理器。一個(gè)TTS引擎獲得一個(gè)文本的集合并將它轉(zhuǎn)換為語音。現(xiàn)在已經(jīng)有了幾種TTS應(yīng)用程序了,例如電話語音合成回復(fù)系統(tǒng),以及為盲人設(shè)計(jì)的更高級(jí)的系統(tǒng)等等。特定文本集合的發(fā)音本身固有的不確定性是現(xiàn)有TTS系統(tǒng)的所面臨的主要難題之一。其他普遍一點(diǎn)的問題集中在單詞簡寫(如HTML)、拼寫和發(fā)音不同的單詞(如subpoena)等詞類的發(fā)音上。
SSML語言的基礎(chǔ)元素指定了文本的格式。例如針對(duì)HTML,SSML語言提供了一種段落元素而且走得更遠(yuǎn)。因?yàn)樗€提供了句子元素。通過像指定段落一樣指定句子的地址,包括起始地址和終止地址,TTS引擎就能更精確的生成語音。
除了基本的格式,SSML還提供了功能來指定如何發(fā)某個(gè)預(yù)定的詞語或者詞語集合。這個(gè)功能由“say-as”元素來實(shí)現(xiàn)。它是SSML中一個(gè)非常有用的組件。它能讓你指定一個(gè)模板,這個(gè)模板描述如何發(fā)音某個(gè)單詞或者單詞集合。通過“say-as”,我們可以為縮寫的單詞指定如何發(fā)音,也可以為拼寫與發(fā)音不同的單詞指定發(fā)音。我們還可以列出數(shù)字和日期之間的區(qū)別。“say-as”元素包含了對(duì)email地址、貨幣和電話號(hào)碼等的支持。
我們也可以對(duì)文本提供一種語音學(xué)上的表達(dá)方式。例如,我們可以通過這種手段來指出美式英語和英式英語對(duì)potato單詞發(fā)音的不同。
SSML語言的幾個(gè)高級(jí)屬性可以幫助我們讓TTS系統(tǒng)生成更人性化的聲音。我們可以使用“voice”元素指定男聲、女聲或者中性的聲音,而且還可以指定聲音所屬的年齡。我們可以使用這個(gè)元素來指定從4歲的男孩到75歲的老婦之間的任何聲音。
我們還可以使用“emphasis”元素環(huán)繞那些需要強(qiáng)調(diào)或者比較次要的文本。我們還可以使用“break”元素告訴系統(tǒng)語音在某處應(yīng)該暫停。
SSML語言最高級(jí)地特性之一體現(xiàn)在它地“prosody”元素上。通過它我們可以以某種指定地方式生成某個(gè)確定的文本集合的語音。我們可以指定聲音的語調(diào)、范圍、語速(單詞每分鐘)。我們甚至可以通過使用“contour”元素指定更細(xì)節(jié)的東西。“contour”元素把語調(diào)和語速集成在了一起。通過指定一個(gè)文本集合的“contour”元素值,我們可以更精確的定義如何生成語音。