微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Microsoft Speech Synthesizer Lexicon 不工作

如何解决Microsoft Speech Synthesizer Lexicon 不工作

我按照示例 here自定义词典添加到我的语音 SSML。然而,它正在被忽视。我用我自己的词典和样本尝试了它。起初样本似乎有效,但是当我删除词典时,它仍然将 BTW 扩展为“顺便说一句”,因此它似乎对样本也没有影响。

作为参考,这里是用于创建词典的示例代码

<?xml version="1.0" encoding="UTF-8"?>
<lexicon version="1.0"
      xmlns="http://www.w3.org/2005/01/pronunciation-lexicon"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://www.w3.org/2005/01/pronunciation-lexicon
        http://www.w3.org/TR/2007/CR-pronunciation-lexicon-20071212/pls.xsd"
      alphabet="ipa" xml:lang="en-US">
  <lexeme>
    <grapheme>BTW</grapheme>
    <alias>By the way</alias>
  </lexeme>
  <lexeme>
    <grapheme> Benigni </grapheme>
    <phoneme> bɛˈniːnji</phoneme>
  </lexeme>
</lexicon>

这里是示例 SSML(其中忽略了词典)

<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis"
          xmlns:mstts="http://www.w3.org/2001/mstts"
          xml:lang="en-US">
    <voice name="en-US-JennyNeural">
        <lexicon uri="MY_PATH_TO/customlexicon.xml"/>
        BTW,we will be there probably at 8:00 tomorrow morning.
        Could you help leave a message to Robert Benigni for me?
    </voice>
</speak>

我尝试从本地存储以及 Azure 应用服务托管的站点访问词典。我还查看了 Javascript 在 SpeechConfig 或 SpeechSynthesizer 中是否有任何类型的“addLexicon”方法,但我找不到任何东西。任何人都知道为什么这不起作用以及我需要做些什么来解决它?

解决方法

根据 Microsoft 的说法,本地机器上的词典路径不起作用。它必须托管在网络上的某个地方。如果您有任何应用服务计划,这是非常轻量级的(它只是托管一个 XML 文件),因此您只需创建一个新的应用服务来托管它。当然,如果您有其他方法通过网络 uri 公开文件,那也应该可以正常工作。

此外,我在使用 sapi 字母表托管文件时遇到了问题。文档中的字母缩写不正确。它应该是 x-microsoft-sapi,而不仅仅是 sapi。一旦我更正了 ipa(正确为 ipa)和托管在远程服务器上的 sapi 词典。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。