當前位置:才華齋>設計>網頁設計>

XML技術在語音合成中的應用

網頁設計 閱讀(1.75W)

網際網路以及和它相關的一切現在似乎隨處可見。您也許已經試過接到夜間電話推銷員的語音電話、又或者曾經接到過當地藥店給您的處方通知。現在,有一種新技術可以使用語音合成結合XML技術傳送語音資訊了。

XML技術在語音合成中的應用

以語音傳遞資訊的手段並不是什麼新東西。它是我們幾千年來一直使用的交流方法。而且,從一臺計算機那裡接收到電話也並非什麼新發明。許多語音技術到現在已經大行其道了,從傳真機、自動撥號器到整合語音回覆系統(IVR)。電話當然是它最普遍的應用。

傳統的語音系統使用預先錄製好的樣本、詞典和音素來建立我們所聽到的聲音。然而,使用這種預先錄製的手段有很多問題。其中最普遍的問題之一就是缺少連貫性和變化。如果只有一種錄製好的語音版本,其中每個單詞或者聲音都只有一個樣本,那麼很難讓計算機發出和普通陳述語句不同語調的疑問句。同樣困難的是讓計算機知道何時該用某種語調或者該用何種語調發音。

為了幫助解決語音合成問題,W3C為語音合成標記語言(Speech Synthesis Markup Language)建立了一種新的工作草稿。這種新的XML詞彙表可以使語音瀏覽器開發人員能夠控制一個語音合成器的建立方法。例如,開發者可以將命令包含進音量中,並在合成語音模式的時候使用它。

SSML規範基於Sun公司早期的一項名為JSpeeck Markup Language(JSML)的`研究工作。JSML則是基於Java Speech API Markup Language。現在SSML是W3C語音研究工作組的工作稿。

SSML語言的基本目標是一個文字到語音(Text-To-Speech簡稱TTS)的處理器。一個TTS引擎獲得一個文字的集合並將它轉換為語音。現在已經有了幾種TTS應用程式了,例如電話語音合成回覆系統,以及為盲人設計的更高階的系統等等。特定文字集合的發音本身固有的不確定性是現有TTS系統的所面臨的主要難題之一。其他普遍一點的問題集中在單詞簡寫(如HTML)、拼寫和發音不同的單詞(如subpoena)等詞類的發音上。

SSML語言的基礎元素指定了文字的格式。例如針對HTML,SSML語言提供了一種段落元素而且走得更遠。因為它還提供了句子元素。通過像指定段落一樣指定句子的地址,包括起始地址和終止地址,TTS引擎就能更精確的生成語音。

除了基本的格式,SSML還提供了功能來指定如何發某個預定的詞語或者詞語集合。這個功能由“say-as”元素來實現。它是SSML中一個非常有用的元件。它能讓你指定一個模板,這個模板描述如何發音某個單詞或者單詞集合。通過“say-as”,我們可以為縮寫的單詞指定如何發音,也可以為拼寫與發音不同的單詞指定發音。我們還可以列出數字和日期之間的區別。“say-as”元素包含了對email地址、貨幣和電話號碼等的支援。

我們也可以對文字提供一種語音學上的表達方式。例如,我們可以通過這種手段來指出美式英語和英式英語對potato單詞發音的不同。

SSML語言的幾個高階屬性可以幫助我們讓TTS系統生成更人性化的聲音。我們可以使用“voice”元素指定男聲、女聲或者中性的聲音,而且還可以指定聲音所屬的年齡。我們可以使用這個元素來指定從4歲的男孩到75歲的老婦之間的任何聲音。

我們還可以使用“emphasis”元素環繞那些需要強調或者比較次要的文字。我們還可以使用“break”元素告訴系統語音在某處應該暫停。

SSML語言最高階地特性之一體現在它地“prosody”元素上。通過它我們可以以某種指定地方式生成某個確定的文字集合的語音。我們可以指定聲音的語調、範圍、語速(單詞每分鐘)。我們甚至可以通過使用“contour”元素指定更細節的東西。“contour”元素把語調和語速整合在了一起。通過指定一個文字集合的“contour”元素值,我們可以更精確的定義如何生成語音。