python 음성 인식 speech 모듈
음성 조작 은 음성 인식 과 음성 낭독 두 부분 으로 나 뉜 다.
이 두 부분 은 원래 자연 언어 처리 기능 에 관 한 지식 과 일련의 매우 복잡 한 알고리즘 이 있어 야 해결 할 수 있 습 니 다.그러나 이 글 은 이곳 을 뛰 어 넘 을 것 입 니 다.만약 에 알고리즘 과 자연 언어학 에 관심 이 있다 면 걸음 을 옮 겨 야 합 니 다.다음은 이런 내용 을 설명 할 글자 가 없습니다.
일찍이 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 음성 인식 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 조회 하 시기 바 랍 니 다.앞으로 많은 응원 바 랍 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
로마 숫자를 정수로 또는 그 반대로 변환그 중 하나는 로마 숫자를 정수로 변환하는 함수를 만드는 것이었고 두 번째는 그 반대를 수행하는 함수를 만드는 것이었습니다. 문자만 포함합니다'I', 'V', 'X', 'L', 'C', 'D', 'M' ; 문자열이 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.