6

현재 Dragon NaturallySpeaking (Natlink 사용)에서 입력을 받고 처리하여 음성 출력을 반환하는 AI 프로그램을 작성 중입니다. 드래곤으로부터 모든 입력을 포착하여 파서에 전송하는 Receiver GrammarBase를 만들 수있었습니다.Dragon NaturallySpeaking에서 모든 입력을 Python으로 리디렉션 하시겠습니까? (Natlink 사용)

class Receiver(GrammarBase): 

     gramSpec = """ <start> exported = {emptyList}; """ 

     def initialize(self): 
      self.load(self.gramSpec, allResults = 1) 
      self.activateAll() 

     def gotResultsObject(self, recogType, resObj): 
      if recogType == 'reject': 
       inpt, self.best_guess = [], [] 
      else: 
       inpt = extract_words(resObj) 
       inpt = process_input(inpt) # Forms a list of possible interpretations 
       self.best_guess = resObj.getWords(0) 
      self.send_input(inpt) 

     def send_input(self, inpt): 
      send = send_to_parser(inpt) # Sends first possible interpretation to parser 
      try: 
       while True: 
        send.next() # Sends the next possible interpretation if the first is rejected 
      except StopIteration: # If all interpretations are rejected, try sending the input to Dragon 
       try: 
        recognitionMimic(parse(self.best_guess)) 
       except MimicFailed: # If that fails too, execute all_failed 
        all_failed() 

이 코드는 예상대로 작동하지만 몇 가지 문제가 있습니다 :

  1. 드래곤 내 프로그램에 전송하기 전에 입력을 처리는. 예를 들어, "Open Chrome"이라고 말하면 Chrome을 열고 Python에 입력을 보냅니다. 파이썬을 처음 처리하지 않고 입력을 보낼 수있는 방법이 있습니까?

  2. 내가 waitForSpeech()를 호출하면, 파이썬 인터프리터가 입력 대기 중임을 알리는 메시지 상자가 나타납니다. 메시지 상자가 표시되지 않도록 (미학과 편의를 위해) 가능한가요? 대신 사용자가 상당한 시간을 들인 후 음성 수집 프로세스를 종료 하시겠습니까?

고맙습니다!

답변

3

첫 번째 질문과 관련하여 DNS는 내부적으로 명령 확인 프로세스의 일부로 "열기 ..."발화를 사용합니다. 이것은 DNS가 natlink에 기회가 오기 전에 음성을 해결하고 명령 방식을 실행 함을 의미합니다. 이 문제를 해결할 수있는 유일한 방법은 natlink 문법 (또는 "트리거"외에 DNS가 사용하지 않는 다른 발화법)에서 발언을 "열기 ..."에서 "트리거 ..."로 변경하는 것입니다.

일부 natlink 개발자는 speechcomputing.com에서 기다리고 있습니다. 더 나은 응답을 얻을 수 있습니다.

행운을 빈다.

+0

좋아, 잡았어! 도와 줘서 고마워, 건배! – Jian

+0

speechcomputing.com은 Google 용으로 제작 된 것으로 보입니다. 내가 아는 한 유용한 콘텐츠가 없습니다. – Harry

+1

불행히도 해당 사이트는 더 이상 유지 관리되지 않습니다. voicecoder Yahoo 그룹을 확인하십시오. – reckoner