有没有将 Dragon NaturallySpeaking 纳入事件驱动程序?如果我使用 DNS 记录用户语音输入而不将其写入屏幕并将其直接保存为 XML,我的老板会非常喜欢它。我已经做了几天的研究,如果没有(非常昂贵的)SDK,我看不到这种情况发生的方法,我什至不知道它会起作用。
微软有能力编写一个(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 吗?你觉得有用吗?