python 음성 인식 speech 모듈

1.원리
음성 조작 은 음성 인식 과 음성 낭독 두 부분 으로 나 뉜 다.
이 두 부분 은 원래 자연 언어 처리 기능 에 관 한 지식 과 일련의 매우 복잡 한 알고리즘 이 있어 야 해결 할 수 있 습 니 다.그러나 이 글 은 이곳 을 뛰 어 넘 을 것 입 니 다.만약 에 알고리즘 과 자연 언어학 에 관심 이 있다 면 걸음 을 옮 겨 야 합 니 다.다음은 이런 내용 을 설명 할 글자 가 없습니다.
일찍이 1990 년대 에 IBM 은 매우 강력 한 음성 인식 시스템 인 vio voice 를 출시 했 고 그 후에 관련 제품 이 끊임없이 등장 하 며 끊임없이 진화 하고 발전 했다.여기 서 는 SAPI 를 사용 하여 음성 모듈 을 실현 할 것 입 니 다.
2.SAPI 란 무엇 인가?
SAPI 는 마이크로소프트 Speech API 로 마이크로소프트 회사 가 내 놓 은 음성 인터페이스 이다.세심 한 사람 은 WINXP 부터 시스템 에 음성 인식 기능 이 있 음 을 발견 할 수 있다.그러나 무 예 를 사용 하 는 곳 이 상당히 적다.그 는 인성 화 된 사용자 정의 방안 을 제시 하지 않 았 고 언어 음성 조작 명령 만 상당히 위협 적 으로 보 였 다.그렇다면 이 글 의 임 무 는 SAPI 를 이용 하여 개성 화 된 음성 인식 을 하 는 것 이다.
코드
전제:win 7 음성 자동 인식 열기(제어 판-가 벼 운 접근-음성 인식)

#!/usr/bin/env python
# -*- codinfg:utf-8 -*-
'''
@author: Jeff LEE
@file: .py
@time: 2018-07-19 11:15
@desc:
'''
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=="   ":
  os.system('notepad') 
 elif speechstr=="   ":
  os.system('write')
 elif speechstr=="   ":
  os.system('mspaint')
 else:
  pass
 
if __name__ == '__main__':
 
 speaker.Speak("      ")
 wordsToAdd = ["   ", "   ","   ",]
 speechReco = SpeechRecognition(wordsToAdd)
 while True:
 pythoncom.PumpWaitingMessages()
문제
python 이 음성 모듈 을 호출 할 때 TypeError:NoneTypetakesnoarguments 와 같은 오류 유형 을 어떻게 해결 해 야 합 니까?
음성 개발 패 키 지 를 호출 할 수 없 기 때 문 입 니 다.
해결 방법:(pyWin 32 가 설치 되 어 있다 면 Python Win 도 설치 되 어 있 습 니 다)
1.python 35 디 렉 터 리 에서 python win 폴 더 의 python win.exe 를 찾 습 니 다.

2.Python win 실행 을 더 블 클릭 한 다음 도구 tools/commakepyutility 를 선택 하 십시오.

3.그리고 Microsoft SpeechObjectLibrary 5.4 를 선택 하고 OK 버튼 을 클릭

4.운행 결 과 는 다음 과 같다.문제 해결

후기
좋 은 음성 인식 문 서 를 추천 합 니 다.
python 의 음성 인식 speech 모듈 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 python 음성 인식 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 조회 하 시기 바 랍 니 다.앞으로 많은 응원 바 랍 니 다!

좋은 웹페이지 즐겨찾기