MRCP協議學習筆記-語音合成標記語言(SSML)-2

2020-11-28 CTI論壇

  在前一個章節中,筆者介紹了SSML標識語言的第一部分。現在我們將繼續介紹SSML標識語言的第二部分。此部分包括了讀音中的Prosody的語音語調設置參數(break,emphasis,讀音和控制參數 voume,speak rate, pitch),標記符和metadata。通過第二部分的介紹,結合第一部分的知識,筆者會給讀者提供一個非常完整的語音合成標記語言(SSML)的介紹。現在,我們將對第二部分的細節進行逐一介紹。

  1、首先,讓我們簡單說明一下為什麼要對標記語言進行控制設置。演講是一門藝術。我們看到很多名人在觀眾面前侃侃而談。我們經常看的TED節目就是非常出色的演講節目,TED節目中的演講內容也給我們留下來深刻的印象。除了內容本身和PPT吸引觀眾以外,演講嘉賓的語速語調也是非常重要的。演講嘉賓會知道什麼時間強調什麼內容,語速快慢,關鍵詞等也是非常重要的因素。因此,觀眾需要及時捕捉到演講嘉賓的語義才能正確理解嘉賓的準確含義。同樣的道理,語音識別引擎也需要能夠非常智能地識別讀音的不同,這樣才能保證識別出當時的場景和讀者的語氣和語義。

  在語音識別引擎的處理過程中,一個人說話的語氣語調心情決定了內容的輸出結果,內容輸出結果會影響整個系統結果的判斷。Prosody(韻律結構)簡單來說就是控制語音的壓力模式和讀音語調。比如,某些人說話時可能對某些重點詞語增加了強調作用,某些詞可能是語速非常快,或者音量非常高。這些參數的變化會導致完全不同的解析結果,因此能夠智能地判斷出這些相關參數是語音識別中非常重要的功能,也是對語音識別準確率極大挑戰。SSML提供了對語音語調的控制支持,它通過對語音控制的參數調整來對語氣,音量,語速或強調作用來控制輸出結果。

  2、在Prosody邊界參數設置中支持了幾個比較重要的要素標籤參數,通過這些參數可以對讀音進行有效的控制,這些具體的參數包括:break,emphasis和voice。現在我們逐一介紹這些參數設置和其具體作用。

  SSML支持在詞語之間插入一個<break>來目前表示一個暫停或語義的邊界。當數據中沒有支持<break>時,語音合成伺服器將通過語言邏輯來實現暫停或打斷。<break>支持兩種屬性:time和strength(強度)。time屬性表示暫停的時長,以秒或毫秒為單位。strength則表示在輸出語音的暫停的語法強度。其支持的取值範圍包括:none,x-weak,weak,medium (默認值),strong或者x-strong。這裡注意,time和strength都是可選屬性,如果缺少這兩個屬性設置,則表示語音合成伺服器生成break。下面的示例表示暫停3秒以後繼續合成:

  < xml version="1.0" encoding="UTF-8" >

  <speak version="1.0"

  xmlns="http://www.w3.org/2001/10/synthesis"

  xml:lang="en-GB">

  Take a deep breath and count to three <break time="3s"/>

  Now we are ready to proceed.

  </speak>

  SSML同樣支持一個強調功能<emphasis>,它用來表示某些內容需要加以強調或加大語氣,用來突出其重要性。在我們的中文語境中,尤其是某些領導開會的場合中表現尤為明顯,某些被強調的詞語更加需要注意。我們需要準確地了解講話者的內容,特別是強調的內容。<emphasis>的目的就是支持這個功能。當然,<emphasis>也可以結合pitch來實現更多的語義。<emphasis>僅支持一個屬性值的設置,其取值範圍包括:strong, moderate (默認設置),none和reduced。語法示例如下:

  < xml version="1.0" encoding="UTF-8" >

  <speak version="1.0"

  xmlns="http://www.w3.org/2001/10/synthesis"

  xml:lang="en-GB">

  That is the <emphasis level="strong">right</emphasis> answer!

  </speak>

  SSML中的<voice>用來表示在讀音中發出的請求修改讀音。<voice>支持五個屬性選項,分別是:xml:lang,gender,age,name和variant。xml:lang支持各種語言格式,gender支持男性,女性和中性;age表示讀音者的年齡;name可指定特別語音讀音者名稱;variant通過一個正整數表示內容中其他屬性推薦的設置。注意,如果語音合成伺服器中通過<voice>可以完全匹配屬性設置的數據,則使用屬性設置的數據。如果不匹配的話,則需要通過三個語法判斷的優先級實現匹配,具體設置條件可以參考MRCP v2。以下是一個<voice>示例:

  < xml version="1.0" encoding="UTF-8" >

  <speak version="1.0"

  xmlns="http://www.w3.org/2001/10/synthesis"

  xml:lang="en-GB">

  <voice gender="male">

  Welcome to online shopping for him

  </voice>

  <voice gender="female">

  and her!

  </voice>

  </speak>

  3、現在我們介紹一下Prosody的控制參數配置選項,它們分別是:volume,speaking rate 和 pitch。

  volume顧名思義,此選項來控制聲音的音量大小。他可以是一個數值,也可以是一個相對控制量,或者也可以是一個命名標識參數。其數值範圍可以是1-100之間;相對控制量通過數字前加+或-來調整其量;命名標識規範的取值為silent, x-soft,soft,medium,loud,,x-loud或default。示例如下:

  < xml version="1.0" encoding="UTF-8" >

  <speak version="1.0"

  xmlns="http://www.w3.org/2001/10/synthesis"

  xml:lang="en-GB">

  Please consult our website for job vacancies.

  <prosody volume="soft">

  ACME is an equal-opportunities employer

  </prosody></speak>

  speaking rate(讀音速率)有速率和長度來控制。rate可以通過相對數值定義或者命名標識來定義。相對數值可以通過+或-來調整其相對數量值。規範的命名標識值可以是x-slow,slow,medium,fast, x-fast或default。這裡的默認的值是正常語速。

  < xml version="1.0" encoding="UTF-8" >

  <speak version="1.0"

  xmlns="http://www.w3.org/2001/10/synthesis"

  xml:lang="en-IE">

  Please select an option from the following.

  <prosody rate="-30%">

  Press 1 for sales or press 2 for support.

  </prosody>

  Otherwise hold the only line and a customer

  service representative will be with you shortly.

  </speak>

  pitch 通常的中文含義是音高。通常情況下,它使用一個標識和取值範圍來表示。它帶有一個基音取值(base pitch)表示講話人語音的平均頻率。pitch取決於兩個標識符,一個是note,另外一個是note值。例如,我們通常所說的A4紙,實際上A表示一個標識,4表示一個音頻值。如果是A2的話,則表示範圍值為2(4-2)。其單位是Hertz (Hz)。每個標識(note)都對應一個振動頻率值或一個周期(每秒)。同樣,在SSML屬性設置中,pitch也可以支持相對取值方式和標識方式。其相對取值設置是通過+或-然後加一個數字取值來定義,例如+4或70%。其標識取值可支持的標識為x-low, low,medium,high,x-high或default。其語法格式示例如下:

  < xml version="1.0" encoding="UTF-8" >

  <speak version="1.0"

  xmlns="http://www.w3.org/2001/10/synthesis"

  xml:lang="en-IE">

  <prosody pitch="x-high">

  When it hurts, I speak in a high-pitched voice!

  </prosody>

  </speak>

  pitch可以通過contour這個屬性來實現一些高級功能或高級控制方式,通過指定時間位置來分階段調整語音的屬性。通過(time-position, pitch-target)來加以定義區分。當然,這裡的time-position是從0%到100%。例如:

  < xml version="1.0" encoding="UTF-8" >

  <speak version="1.0"

  xmlns="http://www.w3.org/2001/10/synthesis"

  xml:lang="en-IE">

  <prosody contour="(0%,+10Hz) (50%,+50Hz) (100%,-50Hz)">

  Life is full of ups and downs.

  </prosody>

  </speak>

  4、SSMl支持一個標識符功能(marker),此功能可以通過<mark>元素添加到標識語言中。<mark>僅要求一個屬性name值,此值來設定一個標識符的名稱。在MRCP協議中,當語音合成資源伺服器輸出的已渲染的輸出語音數據遇到有標識符<mark>時,伺服器端會在Speech-Marker頭域中插入一個帶標識符名稱的SPEECH-MARKER事件,然後把此事件發送到MRCP客戶端。當激活打斷功能以後,marker可以用來決定被渲染的語音數量。標識符消息也是非常有用的數據,它可以在數據內容中決定一些被播放的非常重要的語音或在內容中標識一個位置,這些位置上的語音可能需要稍晚重啟播放。

  < xml version="1.0" encoding="UTF-8" >

  <speak version="1.0"

  xmlns="http://www.w3.org/2001/10/synthesis"

  xml:lang="en-GB">

  <mark name="before-ad"/>

  <audio src="advertisement.wav"/>

  <mark name="after-ad"/>

  Please select from the following options.

  </speak>

  SSML可以支持兩種metadata容器元素,其支持的格式為:<meta> element 和<metadata>element。<meta>是相對比較舊的格式,支持的語法格式比較簡單,我們這裡不做太多介紹。<metadata>則是一個比較新的格式,它可以支持更多標準的,功能強大的機制來設定metadata數據。在目前的版本中,SSML僅支持<metadata>的格式。<metadata>是一種容器的XML元素格式,容器元素中可以包含一個文件(XML),文件中包含數據信息內容。SSML技術細節推薦使用XML的RDF(Resource Description Framework)語法結合Dublin Core Metadata Initiative(定義標準metadata屬性)構成文件信息內容。Dublin Core Metadata Initiative提供標準的metadata屬性內容,例如抬頭,標題和創建者信息等數據內容。以下示例是使用了RDF和Dublin Core Metadata Initiative來完成對XML語法數據構建:

  < xml version="1.0" encoding="UTF-8" >

  <speak version="1.0"

  xmlns="http://www.w3.org/2001/10/synthesis"

  xml:lang="en-GB">

  <metadata>

  <rdf:RDF

  xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"

  xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"

  xmlns:dc="http://purl.org/dc/elements/1.1/">

  <rdf:Description

  rdf:about="http://www.example.com/meta.xml"

  dc:Title="Online banking welcome"

  dc:Description="Provides a welcome message"

  dc:Publisher="D Burke"

  dc:Language="en-US"

  dc:Date="2006-02-02"

  dc:Rights="Copyright (c) D Burke"

  dc:Format="application/ssml+xml" >

  <dc:Creator>

  <rdf:Seq ID="CreatorsAlphabeticalBySurname">

  <rdf:li>Dave Burke</rdf:li>

  </rdf:Seq>

  </dc:Creator>

  </rdf:Description>

  </rdf:RDF>

  </metadata>

  Welcome to online banking.

  </speak>

  5、在本章節的分享中,我們重點介紹了Prosody中的break來支持詞語之間的邊界控制,我們還介紹了使用emphasis強調元素來對某些詞語進行強調,同時我們還介紹了非常重要的vicoe元素,使用此屬性來設置播放性別,年齡,語言種類等相關參數。另外,我們對Prosody中的控制參數做了詳細說明以及其控制參數 voume,speak rate,pitch的使用方式。最後,筆者介紹了如何使用標記符對某些特定內容進行標記,還有metadata中文件的格式和其數據構成進行了介紹。通過Prosody中屬性參數的介紹,筆者已經把語音合成標記語言的基本數據格式做了一個完整的介紹,為讀者起到了拋磚引玉的作用,也為未來其他章節的學習打下一個良好的基礎。

  參考資料:

https://www.ibm.com/support/knowledgecenter/en/SSMQSV_6.1.1/com.ibm.voicetools.ssml.doc/ssml_pitch.html

  http://dublincore.org/specifications/

  https://en.wikipedia.org/wiki/Resource_Description_Framework

  AMY Isard: SSML: A Markup Language for Speech Synthesis

  WU Zhiyong:A Unified Framework for Multilingual Text-to-Speech Synthesis with SSML Specification as Interface    

  unimrcp-MRCP協議學習分享,QQ群號:208136295

  關注微信公眾號:asterisk-cn,獲得有價值的行業分享

  freepbx 技術論壇:www.ippbx.org.cn

  Asterisk, freepbx技術文檔: www.freepbx.org.cn

  歐米(Omni)智能客服解決方案

  融合通信商業解決方案,協同解決方案首選產品:www.hiastar.com

相關焦點

  • MRCP學習筆記-語音識別語法技術細節(SRGS)
    前面的講座中,我們介紹了描述語音合成標記語言。在上一個講座中,筆者介紹了語音合成標記語言的基本語法和使用方式。在今天的章節中,我們繼續介紹MRCP協議中另外一個重要的語言語法-語音識別語言的技術細節(英文全稱是:Speech Recognition Grammar Specification)。
  • CSSML(中文語音合成標記語言)的發展與應用
    CSSML(中文語音合成標記語言)的發展與應用2003/12/17  近年來,隨著中文語音技術的迅速發展和應用的逐步深入,語音產業的廣闊市場及其所凸現的強大的產業帶動效應已經初步顯示出來會上確定了由科大訊飛牽頭制定語音標準。  CSSML(Chinese Speech Synthesis Markup Language),即中文語音合成標記語言,正是在上述背景下由科大訊飛起草,經歷數次中文語音技術標準研討會討論後形成的。  CSSML標記語言針對中文合成領域內的特殊要求,對W3C定義的SSML規範中的標記進行擴展,並與SSML完全兼容。
  • MRCP學習筆記-自然語言語義標識語言(NLSML)
    MRCP協議使用了Natural Language Semantics Markup Language(NLSML)來呈現數據的輸出格式,它封裝了語音識別資源和說話人確認資源的數據。Natural Language Semantics Markup Language的中文的全稱是自然語言語義標識語言。為了書寫方便,我們在接下來的部分使用其縮寫來表示。
  • 語音合成方法概述與總結
    :最初的物理機理語音合成,波形拼接語音合成,韻律轉換語音合成到統計參數語音合成和深度學習語音合成情感語音合成:波形拼接合成方法,韻律特徵修改方法和基於隱馬爾可夫模型( hidden Markov model, HMM )的統計參數語音合成方法HMM傳統參數語音合成方法是基於統計學習和決策樹的隱馬爾科夫
  • 【讀書筆記】1.2、基於HTTP協議的RPC
    1.2.1HTTP協議棧HTTP協議Hypertext Transfer Protocol的縮寫(超文本傳輸協議)屬於應用層協議,構建在TCP與IP協議之上,處於TCP/IP體系架構頂端無需處理丟包補發、握手及數據的分段和重新組裝等細節
  • 前沿| MIT研發語音關聯的圖像識別系統,一次破解所有語言
    選自MIT機器之心編譯參與:Jane W、李澤南將錄音語音與圖像相關聯的系統可以達到完全自動語音識別。MIT 研究人員研發了一種新的訓練語音識別系統的方法,它不依賴於轉錄抄本(transcription)。相反,這個系統的工作方式是分析圖像間的關聯和圖像的語言描述,而這些語言描述是在大量的音頻記錄中捕獲的。點擊閱讀原文查看論文。
  • 前沿 MIT研發語音關聯的圖像識別系統,一次破解所有語言
    計算機通過研究數以百萬的音頻文件和它們的轉錄,學習得到音頻的聲學特徵與詞語類型的對應關係。但目前轉錄是一項昂貴、費時的工作,因此語音識別的研究只限於少數經濟發達國家的語言。該系統會學習錄音中的聲學特徵與圖像特性之間的對應關係。「該研究的目標是讓機器學習語言的方式更像人類,」CSAIL 的高級研究員 Jim Glass 說,他也是闡述此系統的論文的合著者。「當前用來訓練語音識別的方法是完全的有監督學習。一段聲音會被標記為對應的意思。這種被標記的數據量是非常大的。」
  • 一文看懂語音合成:真能跟Siri戀愛?模擬人類語言暗藏哪些商機
    Siri的熱潮同步開啟的,不僅僅是語音合成技術在硬體上的應用,也包括一系列更具想像力的交互場景,帶來了巨大的商機。2015年春節,本就搭載了語音導航的高德地圖與郭德綱合作,推出了高德地圖歡笑版。用戶打開高德地圖,不僅能夠聽到導航播報,還能聽到郭德綱的極具特色的段子。這一次嘗試,讓高德地圖一度躍至蘋果App Store榜單第2名。
  • [論文分享]用GAN從MFCC合成語音波形
    本次論文分享的是一篇2018年發表在IEEE上的用GAN從MFCC合成語音波形的論文。這篇文章提出了一種從濾波器組梅爾頻率倒譜係數(MFCC)生成語音的方法,該方法廣泛用於語音應用程式(例如ASR)中,但通常被認為無法用於語音合成。首先,我們使用自回歸遞歸神經網絡預測MFCC的基本頻率和聲音信息。
  • 中文語音合成最高水平,百度語音技術打造全球首款地圖語音定製產品
    從2012年DNN的深度學習技術落地百度語音搜索,到SMLTA技術率先解決注意力模型的線上使用問題,概括了百度的語音識別技術從跟隨世界AI技術浪潮發展,到領跑世界的整個過程。  端到端建模的注意力模型具有語言語音一體化建模的優勢,識別率較高,同時在嵌入式場合具有很高的應用前景。
  • 2020開年解讀:NLP新範式凸顯跨任務、跨語言能力,語音處理落地開花
    今天,我們將探索自然語言處理(Natural Language Processing,NLP)範式的新發展,以及微軟亞洲研究院在語音識別與合成領域的創新成果。 圖6:跨語言預訓練模型示意圖 微軟亞洲研究院提出的跨語言預訓練模型 Unicoder[2],通過在預訓練過程中引入五種不同的跨語言任務,能夠學習得到很好的跨語言理解能力。
  • 語音合成在語音助手中的應用及擴展
    總的說來,近期語音合成的方法可以歸結為四種:1)物理機理語音合成;2)源-濾波器語音合成;3)基於單元挑選與波形拼接技術的語音合成;4)可訓練的語音合成;其中現在大家常採用的合成方法為基于波形拼接技術的語音合成和可訓練的語音合成兩種。本文涉及的內容為語音合成的後端,語音合成的前端也是文本處理的一部分,主要包括文本正則化、分詞、詞性標註、多音字消崎及韻律預測等,這裡不做具體介紹。
  • 科學網—語音及語言信息處理國家工程實驗室揭牌
    本報訊 9月27日,由國家發改委批覆成立的語音及語言信息處理國家工程實驗室揭牌儀式在中國科學技術大學舉行
  • 國內智能語音行業分析報告
    語音識別、圖像識別和機器人視覺、生物識別等目前最火熱的領域,主要解決的是感知智能的需求,就是使得人工智慧能夠感知周圍的世界,能夠「聽見」或者「看到」。自然語言理解、智能會話、智能決策、人機互動等技術更加側重的是認知智能的領域,解決「聽懂」、「看懂」,並且根據學習到的知識對人類的要求或者周圍的環境做出反應的能力。
  • 人工智慧難點之——自然語言處理(NLP)
    什麼是自然語言處理NLP是計算機以一種聰明而有用的方式分析,理解和從人類語言中獲取意義的一種方式。通過利用NLP,開發者可以組織和構建知識來執行自動摘要,翻譯,命名實體識別,關係提取,情感分析,語音識別和話題分割等任務。
  • 智能語音前沿技術——發音檢錯糾錯和語音轉換
    語音技術包含:語音識別、語音合成、聲紋識別、語音評測、語音轉換等,其中發音檢錯糾錯和語音轉換技術近期有了新的突破。 發音檢錯糾錯 英語是當今世界上最為通用的語言,其重要性已為所有人深刻領會。由於英語的強勢地位,目前被超過100個國家作為外語教學的第一外語。
  • 科學網—語音及語言信息處理國家工程實驗室在中科大成立
    「中文語音技術應由中國人做到最好」
  • 英語語音學習須知
    英語是一種國際廣泛使用的語言,英語發音的學習是口語學習的重要內容。英語發音是靠聽覺來捕捉的,相比於書面文字可以按照字跡描摹,語音的模仿較為簡單,但發音準確還是需要一定的練習才能達到效果。這裡有一些語音方面的知識,對同學們和老師理解英語語言會有所幫助。
  • Go語言學習筆記之字符串一
    Go語言是一個年輕人,身上擁有c++,java,python等語言的特點。在網絡通信、並發和並行編程擁有極好的體驗,當然不僅僅在這上上面,還有網絡編程,web應用,應用下載等有著非常大的潛力。這裡列舉一些 Go 語言的特點: 簡化問題,易於學習 內存管理,簡潔語法,易於使用 快速編譯,高效開發 高效執行 並發支持,輕鬆駕馭, 靜態類型 標準類庫,規範統一 易於部署 文檔全面 免費開源學習go語言有幾天了,今天突然想到把學的寫成筆記,記錄一下。如有不正確的請指教。
  • 馳聲AI語音開放平臺上線,首次公開中英文智能語音評測開發文檔
    「智能技術消滅啞巴英語,讓教和學更高效」是馳聲的使命,為了讓更多的智能語言學習產品更便捷地接入馳聲技術,為此,馳聲首次公開所有自主研發的中英文語音評測內核開發文檔,助力教育品牌實現業務升級。  SDK接入文檔  馳聲中英文語音評測技術支持Linux、Windows、Mac、JS、Android、iOS、微信公眾號、微信小程序、Unity等平臺接入,也支持部分平臺離線方案調用。  2. API接入文檔  馳聲中英文語音評測技術支持WebSocket、Http協議接入。  3. 馳聲英文口語評測內核文檔  4.