Je veux toujours abaisser le seuil de programmation et de production de CG, mais Maya veut aussi travailler avec la reconnaissance vocale, donc je fais beaucoup de recherches.
Cet article n'a pas atteint le point de travailler avec Maya.
Il s'agit simplement d'un test de l'API Microsoft Speech fournie en standard avec Windows.
Windows10 Python 2.7.12 pywin32==220
python -m virtualenv venv
venv\Scripts\activate.bat
python venv \ Lib \ site-packages \ win32com \ client \ makepy.py```Lorsque le programme suivant est exécuté, il attend une entrée vocale avec le message «Prêt», et une chaîne de caractères est sortie vers la sortie standard en réponse aux voix «Un», «Deux», «Trois», «Quatre» et «Bonjour».
main.py
#!/usr/bin/env python
# coding=utf-8
from __future__ import absolute_import, division, print_function
from win32com.client import constants
import win32com.client
import pythoncom
class ContextEvents(win32com.client.getevents("SAPI.SpSharedRecoContext")):
u"""Classe de rappel qui est appelée lorsqu'une phrase est reconnue
Enregistrez les mots à l'avance.
"""
def OnRecognition(self, StreamNumber, StreamPosition, RecognitionType, Result):
newResult = win32com.client.Dispatch(Result)
print(u"You said: {0}".format(newResult.PhraseInfo.GetText()))
class SpeechRecognition(object):
def __init__(self, wordsToAdd):
u"""Diverses initialisations"""
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()
for word in wordsToAdd:
self.wordsRule.InitialState.AddWordTransition(None, word)
self.grammar.Rules.Commit()
self.grammar.CmdSetRuleState("wordsRule", 1)
self.grammar.Rules.Commit()
self.eventHandler = ContextEvents(self.context)
self.say(u"Junbikanryo")
def say(self, phrase):
u"""Laisse moi parler"""
self.speaker.Speak(phrase)
if __name__ == '__main__':
wordsToAdd = ["One", "Two", "Three", "Four", u"Bonjour"]
speechReco = SpeechRecognition(wordsToAdd)
while True:
pythoncom.PumpWaitingMessages()
Je suis désolé indépendamment de Maya.
[Jouez à COM avec Python + pywin32 pour parler. ](Https://mimumimu.net/blog/2011/07/02/python-pywin32-%E3%81%A7-com-%E5%8F%A9%E3%81%84%E3%81%A6% E3% 81% 97% E3% 82% 83% E3% 81% B9% E3% 82% 89% E3% 81% 9B% E3% 82% 8B% E3% 80% 82 /) Python: win32com.client.getevents(“SAPI.SpSharedRecoContext”) returns None
Recommended Posts