首頁 >後端開發 >XML/RSS教程 >XML在語音合成上的應用

XML在語音合成上的應用

黄舟
黄舟原創
2017-03-03 17:10:122052瀏覽

    網路以及和它相關的一切現在似乎隨處可見。您或許已經試過接到夜間電話推銷員的語音電話、又或曾經接到過當地藥局給您的處方通知。現在,有一種新技術可以使用語音合成結合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」元素值,我們可以更精確的定義如何產生語音。

 以上就是XML在語音合成中的應用的內容,更多相關內容請關注PHP中文網(www.php.cn)!


#
陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn