UWP - распознавание речи - не может ссылаться на внешний файл грамматики - PullRequest
0 голосов
/ 06 октября 2018

Я создаю приложение UWP с возможностью распознавания речи.Я хочу сослаться на внешний файл грамматики из другого -root- файла.Вот код для корневого файла грамматики (с именем RootGrammar.xml):

<?xml version="1.0" encoding="utf-8"?>
<grammar version="1.0" xml:lang="en-us" 
         root="topLevel" 
         xmlns="http://www.w3.org/2001/06/grammar" 
         tag-format="semantics/1.0"
         mode="voice">

<rule id="topLevel">
  <item>Hello</item>
  <ruleref uri="words.xml"/>
</rule>

</grammar>

И внешний файл грамматики (с именем words.xml):

<?xml version="1.0" encoding="utf-8"?>
<grammar version="1.0" xml:lang="en-us" root="words"
         xmlns="http://www.w3.org/2001/06/grammar" 
         tag-format="semantics/1.0" 
         mode="voice">

  <rule id="words" scope="public">
    <one-of>
      <item>world</item>
      <item>universe</item>
      <item>galaxy</item>
    </one-of>
  </rule>

</grammar>

Два файларасположены в той же папке (с именем Grammar), папка находится на верхнем уровне решения.

Я пробовал много значений для атрибута URI в корневом файле грамматики, например:

  • uri= "/words.xml"
  • uri= "\words.xml"
  • uri = "../words.xml"
  • uri = "..\words.xml"
  • uri = "ms-appx:///Grammar///words.xml"

Я также пытался переименовать внешний файл в words.grxml, также пытался явно определить правило в URI (то есть uri = "/words.xml#words"), но все это привело к GrammarCompilationFailure.

Ответы [ 2 ]

0 голосов
/ 09 ноября 2018

Это по замыслу.При проверке ссылок на пути к файлам единственными поддерживаемыми схемами URI являются file://, http:// и https://.На данный момент единственным решением, скорее всего, будет отсутствие внешних справочных файлов.Вы также можете отправить Запрос функции на WPDev UserVoice .

0 голосов
/ 06 октября 2018

Вам необходимо установить файл как Содержимое .Выберите файл в Solution Explorer и в окне Свойства установите для Действие построения значение Содержимое .

Затемправильный URI должен быть следующим:

ms-appx:///Grammar/words.xml

Только корень - это три прямые косые черты (///), тогда вы просто используете одну косую черту (/).

...