gpt4 book ai didi

python - Dragon NaturallySpeaking 程序员

转载 作者:太空狗 更新时间:2023-10-29 20:23:26 26 4
gpt4 key购买 nike

有没有办法将 Dragon 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 吗?你觉得有用吗?

最佳答案

解决方法:下载Natlink - http://qh.antenna.nl/unimacro/installation/installation.html它的使用不如 SAPI 灵活,但它涵盖了基础知识,我几乎从中得到了我需要的一切。另外,请注意,它和 Python 需要为您机器上的所有用户下载,否则它将无法正常工作,并且它适用于除 2.4 以外的所有 Python 版本。

所有支持命令的文档在您下载后位于 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 发出窗口关闭信号的方法非常棒。

关于python - Dragon NaturallySpeaking 程序员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2952899/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com