Дракон программисты NaturallySpeaking

Там должен так или иначе включить Дракона NaturallySpeaking в управляемую событиями программу? Мой босс действительно хотел бы его, если бы я использовал DNS для записи пользовательского голосового ввода, не пишущий это в экран и сохранение его непосредственно к XML. Я проводил исследование в течение нескольких дней теперь, и я не вижу путь к этому для случая без (действительно дорогого) SDK, я даже не знаю, что он работал бы затем.

Microsoft имеет способность записать (Python) программу, где это - устройство распознавания речи, может ожидать, пока это не обнаруживает речевое событие, и затем обработайте его. Это также имеет удобное качество способности предложить альтернативные фразы той, что это думает, лучшее предположение и запись .wav файла для более позднего использования. Пример кода:

spEngine = MsSpeech()
spEngine.setEventHandler(RecoEventHandler(spEngine.context))

class RecoEventHandler(SpRecoContext):
def OnRecognition(self, StreamNumber, StreamPosition, RecognitionType, Result):
    res = win32com.client.Dispatch(Result)
    phrase = res.PhraseInfo.GetText()
    #from here I would save it as XML

    # write reco phrases
    altPhrases = reco.Alternates(NBEST)
    for phrase in altPhrases:
        nodePhrase = self.doc.createElement(TAG_PHRASE)

Я, может казаться, не заставляю DNS сделать это. Самое близкое, к которому я могу-пятно это:

while keepGoing == True:
    yourWords = raw_input("Your input: ")
    transcript_el = createTranscript(doc, "user", yourWords)
    speech_el.appendChild(transcript_el)
    if yourWords == 'bye':
        break

Это даже имеет ужасный побочный эффект того, чтобы заставлять пользователя сказать "новую строку" после каждого предложения! Не предпочтительное решение вообще! Там должен так или иначе заставить DNS сделать то, что делает Microsoft Speech?

К вашему сведению: Я знаю, что логичное решение должно было бы просто переключиться на Microsoft Speech, но давайте примем, только для усмешек и хихиканья, это, которое не является опцией.

ОБНОВЛЕНИЕ - кто-либо купил SDK? Вы находили это полезным?

10
задан pnuts 25 September 2014 в 23:48
поделиться

1 ответ

Решение: скачать Natlink - http://qh.antenna.nl/unimacro/installation/installation.html Он не такой гибкий в использовании, как SAPI, но он охватывает основы, и я получил от него почти все, что мне было нужно. Кроме того, обратите внимание, его и Python необходимо загрузить для всех пользователей на вашем компьютере, иначе он не будет работать должным образом, и он работает для каждой версии Python, НО 2.4.

После загрузки документация по всем поддерживаемым командам находится в папке C: \ NatLink \ NatLink \ MiscScripts \ natlink.txt. Он находится под всеми обновлениями вверху файла.

Пример кода:

#make sure DNS is running before you start
if not natlink.isNatSpeakRunning():
  raiseError('must start up Dragon NaturallySpeaking first!')
  shutdownServer()
  return
#connect to natlink and load the grammer it's supposed to recognize
natlink.natConnect()
loggerGrammar = LoggerGrammar()
loggerGrammar.initialize()
if natlink.getMicState() == 'off':
   natlink.setMicState('on')
userName = 'Danni'
natlink.openUser(userName)
#natlink.waitForSpeech() continuous loop waiting for input. 
#Results are sent to gotResultsObject method of the logger grammar
natlink.waitForSpeech()
natlink.natDisconnect()

Код сильно сокращен по сравнению с моей производственной версией, но я надеюсь, что вы уловили идею. Единственная проблема сейчас в том, что мне все еще нужно вернуться в мини-окно, которое создает natlink.waitForSpeech (), чтобы щелкнуть «закрыть», прежде чем я смогу безопасно выйти из программы. Способ сигнализировать о закрытии окна из python без использования параметра тайм-аута был бы фантастическим.

8
ответ дан 4 December 2019 в 02:25
поделиться
Другие вопросы по тегам:

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