zoukankan      html  css  js  c++  java
  • python 语音模块

    from win32com.client import constants
    import os
    import win32com.client
    import pythoncom

    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())
    s = newResult.PhraseInfo.GetText()
    if s == "记事本":
    os.system("notepad")

    if __name__ == '__main__':
    wordsToAdd = ["关机", "取消关机", "记事本", "画图板","写字板","设置","关闭记事本"]
    speechReco = SpeechRecognition(wordsToAdd)
    while True:
    pythoncom.PumpWaitingMessages()
  • 相关阅读:
    使用virtualenv搭建python3的环境
    Linux/unix inode
    转:进程间通信方式
    保研复试上机——数据库
    转:mysql grant
    mysql 查询结果创建表
    279. Perfect Squares
    Mybatis中javaType和jdbcType对应和CRUD例子
    mysql explain
    91. Decode Ways
  • 原文地址:https://www.cnblogs.com/pygo/p/12274671.html
Copyright © 2011-2022 走看看