对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 nohup linux 后台运行输出的问题

遇到问题 nohup python flush.py & 这样运行,生成了nohup.out文件,但是内容始终是空的,试了半天也不行。浪费了不少时间。 原因 python的输出又缓...

PyQt5 多窗口连接实例

PyQt5 多窗口连接实例

前言 之前做过pyqt的一个简单界面,在一个窗口(MainWindow)中实现一些操作;之前嫌麻烦没有去做多窗口和它们的切换功能。最近研究了下窗口的调用和切换。 pyqt4和5有很多不同...

pygame游戏之旅 添加键盘按键的方法

pygame游戏之旅 添加键盘按键的方法

本文为大家分享了pygame游戏之旅的第4篇,供大家参考,具体内容如下 按键类型用event.type表示,按键用event.key表示 KEYDOWN和KEYUP的参数描述如下: k...

Python操作Excel插入删除行的方法

1. 前言 由于近期有任务需要,要写一个能够处理Excel的脚本,实现的功能是,在A表格上其中一列,对字符串进行分组和排序,然后根据排序好的A表格以固定格式自动填写到B表格上。 开始写脚...

对numpy和pandas中数组的合并和拆分详解

合并 numpy中 numpy中可以通过concatenate,指定参数axis=0 或者 axis=1,在纵轴和横轴上合并两个数组。 import numpy as np impo...