如下所示:
from win32com.client import constants import os import win32com.client import pythoncom speaker = win32com.client.Dispatch(\"SAPI.SPVOICE\") class SpeechRecognition: def __init__(self, wordsToAdd): self.speaker = win32com.client.Dispatch(\"SAPI.SpVoice\") self.listener = win32com.client.Dispatch(\"SAPI.SpSharedRecognizer\") self.context = self.listener.CreateRecoContext() self.grammar = self.context.CreateGrammar() self.grammar.DictationSetState(0) self.wordsRule = self.grammar.Rules.Add(\"wordsRule\", constants.SRATopLevel + constants.SRADynamic, 0) self.wordsRule.Clear() [self.wordsRule.InitialState.AddWordTransition(None, word) for word in wordsToAdd] self.grammar.Rules.Commit() self.grammar.CmdSetRuleState(\"wordsRule\", 1) self.grammar.Rules.Commit() self.eventHandler = ContextEvents(self.context) self.say(\"Started successfully\") def say(self, phrase): self.speaker.Speak(phrase) class ContextEvents(win32com.client.getevents(\"SAPI.SpSharedRecoContext\")): def OnRecognition(self, StreamNumber, StreamPosition, RecognitionType, Result): newResult = win32com.client.Dispatch(Result) print(\"小伙子你在说 \", newResult.PhraseInfo.GetText()) speechstr=newResult.PhraseInfo.GetText() if speechstr==\"张三\": speaker.Speak(\"zhaodahai love fengjie\") elif speechstr==\"你好\": speaker.Speak(\"hello world\") elif speechstr==\"国庆快乐\": speaker.Speak(\"Happy nationalday\") elif speechstr==\"新年快乐\": speaker.Speak(\"happy New Year\") elif speechstr==\"李四\": speaker.Speak(\"a beauty baby\") elif speechstr==\"王五\": speaker.Speak(\"a little boy\") elif speechstr==\"赵六\": speaker.Speak(\"a boy can coding\") else: pass if __name__ == \'__main__\': speaker.Speak(\"语音识别开启\") wordsToAdd = [\"张三\", \"你好\", \"国庆快乐\", \"新年快乐\", \"李四\", \"王五\", \"赵六\",] speechReco = SpeechRecognition(wordsToAdd) while True: pythoncom.PumpWaitingMessages()
以上这篇对Python 语音识别框架详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。
版权声明
本文仅代表作者观点,不代表百度立场。
本文系作者授权百度百家发表,未经许可,不得转载。




