#c# #wpf #naturallyspeaking
Вопрос:
Я хочу создать приложение с текстовым полем, которое фиксирует транскрипцию голоса, созданную Dragon Medical Practice Edition 4 (DMPE4) в среде Windows. По умолчанию DMPE4 помещает текст всего, что записано, в текущее местоположение курсора. Это означает, что если пользователь нажимает где-то еще, кроме того места, где он хочет, чтобы его диктовка, то речь будет записана в другое окно (или, что еще хуже, если текстовое поле недоступно, то, что они диктуют, нигде не появится).
Мне нужно приложение WPF с текстовым полем, которое будет захватывать текст независимо от того, где находится текущее местоположение курсора, вместо этого оно должно поместить расшифрованный текст в текстовое поле, где курсор был последним. Пока приложение открыто и окно с текстовым полем активно, не должно быть возможности транскрибировать текст где-либо еще. Я все еще хочу использовать приложение DMPE4 и все другие его функции, я просто хочу, чтобы расшифрованный текст помещался в определенное текстовое поле.
Несколько учебников, которые я нашел, были основаны на System.Speech
встроенном в Microsoft распознавании речи, я хочу использовать DMPE4 и, похоже, не могу найти хорошую отправную точку.
В DMPE4 есть нечто похожее, называемое Полем диктовки, но для того, чтобы переместить текст из поля диктовки в место, где должен быть текст, есть дополнительные шаги, я хочу, чтобы текст переходил непосредственно в текстовое поле нового приложения.
Комментарии:
1. Я ничего не знаю о DMPE, но я наткнулся на это: rwilke.de/dragoncapture похоже, он уже делает то, что вы ищете, и есть пробная версия, которую вы могли бы проверить.
2. Если приложение Dragon может выводить текст в любое текстовое поле с фокусом, я думаю, что может быть какой-то поток «Стандартного вывода», к которому вы можете подключиться, а затем захватить его. Это рискованно, но пробовали ли вы запускать приложение Dragon с помощью «Процесса»? Начать» , а затем прочитать стандартный выходной поток? docs.microsoft.com/en-us/dotnet/api/…
Ответ №1:
Поскольку DMPE является закрытым приложением и, скорее всего, имитирует нажатия клавиш, вам нужно будет каким-то образом обернуть его, захватить его вывод и использовать. Моя первая идея сделать это состояла бы в том, чтобы запустить его на виртуальной машине (или, возможно, будет достаточно какого-нибудь контейнера, такого как docker), где он просто запишет символы в ваше приложение-прослушиватель, и вы сможете передать и использовать его где-нибудь еще.
Однако, если вам просто нужно создать решение, основанное на распознавании речи Dragon Medical, я бы начал с их SDK, который может предоставить возможности распознавания речи любому программному обеспечению: https://www.nuance.com/dragon/for-developers/dragon-software-developer-kit.html