無論如何將Dragon NaturallySpeaking融入事件驅動程序?如果我使用DNS記錄用戶語音輸入而不寫入屏幕並將其直接保存到XML,我的老闆會非常喜歡它。我已經做了好幾天的研究,我看不到一個沒有(非常昂貴)SDK的情況下發生這種情況的方法,我甚至不知道它會起作用。Dragon NaturallySpeaking程序員
微軟有能力編寫一個(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嗎?你覺得它有用嗎?
@WarrenP:這個人使用它的40%-60%的發展。確實,開箱即用並不有用,但是使用Natlink和VI/Emacs他有一個非常好的設置。 http://www.youtube.com/watch?v=8SkdfdXWYaI – 2013-09-05 15:44:05
@WarrenP你甚至試過了嗎?我總是使用它,它比使用鍵盤快得多(即使我使用鍵盤,因爲我6意味着我有一個非常高的WPM)。對於編程,我同意它需要改進,但它仍然有用。請參閱[我們如何使用Dragon NaturallySpeaking更高效地編寫代碼?](http://productivity.stackexchange.com/q/3605/2476) – 2014-04-14 15:46:03
我可以輸入120 WPM。我從來沒有見過英文文本到語音用戶達到40 WPM。定義HIGH wpm? – 2014-04-15 20:06:13