MRCP学习笔记-Pronunciation Lexicon Specification

在MRCP中会使用到Pronunciation Lexicon Specification(简称为PLS),这里,我们简单称之为发音词汇规范。PLS也是W3C的规范,它定义了标准的语法来说明发音词汇规范,这些规范通常使用在语音合成和语音识别的处理流程中。MRCP协议同样也通过间接或直接的方式使用了PLS。间接的使用方式是通过SSML或SRGS,通过XML中的要素来间接使用PLS。直接的使用方式则是通过MRCP协议,通过对媒体资源服务器发出一个DEFINE-LEXICON请求来实现。

1

现在,我们讨论一下关于PLS的背景介绍。目前很多语音合成和语音识别引擎都支持了大量的丰富的词汇语料库,也可以支持多种不同的语言。但是,如果让一种语言可以完全无遗漏地支持或覆盖所有的词汇,短语是完全不可能也是非常不现实的。通常情况下,如果语音合成服务器或者语音识别引擎服务器遇到一个单词或短语,这个短语或者单词在自己本身的内部语法中不能匹配的话,它会自动通过一些语法规则来自动分析,然后决定其发音。当然,这种分析机制可能在一定的使用场景中是可以工作的,也可以获得比较好的效果。

然而,很多情况下,这种短语或者单词可能不能正确地匹配其发音,因为很多这些语法规则可能来自于不同的发音,这些发音也可能来自于不同的正字法规则,所以不能完全准确地匹配发音或缺乏其一致性。在英文世界或者其他语言中,经常会看到或者听到同样的单词但是有不同的发音,例如英国英语,美国英语,澳大利亚英语都可能出现细微的差别这些差别可能导致识别的失败。我们自己的中文可能更加复杂,不同地区夹杂了不同的方言,这样同样会导致语音识别或合成出现很多的识别问题,降低了识别的准确率。为了解决这些问题,W3C提出来PLS的规范,PLS能够方便地解决这些问题,PLS文件格式可以对一些单词或短语的发音关联它们相关的,它们所期望的标音方式,并且形成标准的XML文件格式来让语音合成和识别引擎做进一步处理。

2

PLS文件是通过媒体类型application/pls+xml来定义的。以下列表定义了PLS的各种参数属性。

具体的语法格式为:

xmlns="http://www.w3.org/2005/01/pronunciation-lexicon"

alphabet="ipa"

xml:lang="en-US">

...

3

笔者介绍了文件的语法结构后,我们具体介绍一下词汇的条目的设置。词汇条目可以通过不同的来加以区分。每个包括一个或多个正字法和相应的发音。则包含正字法中。可选属性orthography可以在使用,它用来定义拼写正字法的脚本代码。关于脚本代码的规范,读者可以参考ISO 15924规范。其相应的发音也包含在

中。以下是一个PLS语法示例:

注意,这里的

可以支持用户自己的字母拼写方式。在语法发音中,为了方便提高语法分析的准确性,在PLS文件中可以添加一个来中间其识别程度。例如如下PLS语法格式:

4

PLS同样也可以支持字母缩写的语法规范。在词汇条目中通过添加的别名的方式来表示词汇的缩写格式。注意,缩写格式有不同的定义,有开头字母缩写方式和别名的方式。开头字母缩写的方式使用了每个单词的开头大写字母来组成一个缩写。别名的方式则有所不同,内容定义比较发散也非常灵活,需要通过,用户需要自己去了解。例如,下面实例中的Unix,一些linux用户可能就知道其别名,其他用户则可能不清楚真正的别名含义。其示例如下:

xmlns="http://www.w3.org/2005/01/pronunciation-lexicon"

alphabet="ipa"

xml:lang="en-GB">

MRCP

Media Resource Control Protocol

5

在很多情况下,正字法可以支持多种书写格式,但是其语义都表达同样的含义。在PLS中添加不同的来表示不同的正字法书写方式(例如,美式英文的center和 英式英文的centre都表达同样的语义)。其示例如下,这里同时也表达同样的发音方式:

如果是同样的发音,完全不同的正字法和拼写方式,当然其含义也完全不同,那么也可以使用以下方式来表示:

xmlns="http://www.w3.org/2005/01/pronunciation-lexicon"

alphabet="ipa"

xml:lang="en-GB">

blue

blu:

blew

blu:

6

在前面的章节中我们重点建设了PLS如何支持多种正字法书写表达方式和发音的结构语法,但是上面的文章中仅说明了一种语法发音的问题。在通常情况下,我们可能会遇到另外一种可能出现的形式-一个发音但是多种正字法的表达方式或多种拼写方式。现在的语音合成服务器可能仅支持目前的PLS标准-仅支持单一的发音。语音合成引擎仅现在第一个发音,而忽略发音列表中后面的发音。为了提高其准确率,在PLS XML文件属性中添加了prefer的参数设置,其参数表示此发音优先级顺序,使用示例如下:

这里,语音合成引擎将使用设置为prefer=true的发音优先级。

7

在本章节中,我们主要介绍了PLS的背景知识,简单的语法结构和其在语音合成和语音识别环境中的使用。在使用方式的介绍中,我们重点针对不同的正文法(拼写)和不同的语法条目的发音做了介绍,然后对不同发音的对应的不同正文法的文件结构也进行了分析说明。通过此章节的剖析,读者可以基本了解了PLS的语法和其文件结构,为笔者读者进一步了解MRCP媒体处理做一个必要的准备。

到此为止,通过几个不同的章节,我们已经非常完整地介绍了关于MRCP的数据表达格式和语法结构。在接下来的几个章节中,我们将开始讨论关于MRCP最为核心的部分-语音合成资源类型,语音识别资源类型,录音资源类型和说话人验证资源类型。这些媒体资源类型是MRCP乃至整个语音识别领域最主要的核心模块。

参考资料:

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

https://www.w3.org/TR/pronunciation-lexicon/#S5

unimrcp-MRCP协议学习分享,QQ群号:208136295

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180708G09K6200?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券