@stdio96

Как добавить grammar файл в готовый exe-файл?

Здравствуйте.

Есть xml-файл для SRGS grammar.
<?xml version="1.0" encoding="UTF-8"?>
<grammar version="1.0" xml:lang="en-US"
         xmlns="http://www.w3.org/2001/06/grammar"
         tag-format="semantics/1.0" root="Main">

Сейчас он подключается таким образом (статично).
Grammar citiesGrammar = new Grammar(@"C:\[путь к файлу].xml");
recEngine.LoadGrammar(citiesGrammar);

На даный момент, его надо копировать на компьютер, на котором он должен быть запущен (само-собой, по тому же адресу). Добавил его в ресурсы, но когда пробую передать его конструктору Grammar, то выдает ошибку, что путь не тот. С этим я согласен, т.к. оно выдает содержимое файла.

Есть 2 вопроса:
1. Вопрос состоит в том, как его добавить в готовый exe-файл (после компиляции Release)?
2. Надо реализовать 2 языка для озвучки. Я нашел как сменить язык в SpeechSynthesizer, но теперь вопрос со строками. say("Привет/Hello"); Стоит-ли делать 2 xml-files или можно через ресурсы (пример: hello_en = "Hello", hello_ru = "Привет"). И потом просто вызывать как-то так (если такое возможно): say(resource.phrases.hello_ + lang); Там буквально несколько строк. Это не касается Grammar xml файла.

Спасибо.
  • Вопрос задан
  • 81 просмотр
Решения вопроса 1
@Sumor
у Grammar есть конструктор, принимающий Stream.
Соответственно, вы ресурс представляете в виде Stream (например, через GetManifestResourceStream) и подставляете в конструктор.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы