对Python 语音识别框架详解

yipeiwu_com6年前Python基础

如下所示:

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 语音识别框架详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

Python三种遍历文件目录的方法实例代码

本文实例代码主要实现的是python遍历文件目录的操作,有三种方法,具体代码如下。 #coding:utf-8 # 方法1:递归遍历目录 import os def v...

关于django 1.10 CSRF验证失败的解决方法

关于django 1.10 CSRF验证失败的解决方法

最近工作闲,没事自学django,感觉这个最烦的就是各版本提供的api函数经常有变化,不是取消了就是参数没有了,网上搜到的帖子也没说明用的是什么版本的django,所以经常出现搬运过来的...

Pytorch自己加载单通道图片用作数据集训练的实例

Pytorch自己加载单通道图片用作数据集训练的实例

pytorch 在torchvision包里面有很多的的打包好的数据集,例如minist,Imagenet-12,CIFAR10 和CIFAR100。在torchvision的datas...

Python实现的网页截图功能【PyQt4与selenium组件】

本文实例讲述了Python实现的网页截图功能。分享给大家供大家参考,具体如下: 方法一、使用PyQt4的QtWebKit组件 #!/usr/bin/env python # -*-...

详解Django+Uwsgi+Nginx的生产环境部署

详解Django+Uwsgi+Nginx的生产环境部署

使用runserver可以使我们的django项目很便捷的在本地运行起来,但这只能在局域网内访问,如果在生产环境部署django,就要多考虑一些问题了。比如静态文件处理,安全,效率等等,...