python语音识别预处理_对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()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值