Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #Constantes de nivel de confianca e coeficiente de Viterbi
- NivelConf = 0.4
- CoefViterbi = -10000
- #Biblioteca de execucao automatica de aplicativos
- import pexpect
- #Biblioteca de busca de correspondencia entre strings
- import re
- #Biblioteca de manipulacao de strings
- import string
- #Biblioteca das funcoes das GPIO
- import RPi.GPIO as GPIO
- #Funcao de pausa da biblioteca "time"
- from time import sleep
- #Configuracoes iniciais das GPIO
- *********************)
- **********************)
- #Pino 16: saida-> Rele - ativacao
- GPIO.setup(16, GPIO.OUT)
- #Inicializacaso da variavel global de indicacao de Primeiro Ciclo
- global PrimCiclo
- #Inicializacao das variaveis globais de estado do comando
- global ComandoAcender
- global ComandoApagar
- #Inicializacao das saidas em "False"
- GPIO.output(16, False)
- #Funcao que busca 'sentence1' no texto de saida do Julius
- def AbrirJulius(TextoJulius):
- print ("ERRO 1")
- global PrimCiclo
- print ("ERRO 2")
- match_res = re.match(r'(.*)sentence1(\.*)', TextoJulius, re.S)
- print ("ERRO 3")
- if PrimCiclo==True:
- pass
- elif match_res:
- TestesErro(TextoJulius)
- else:
- print('ERRO!! Problemas ao carregar o Julius')
- pass
- #Funcao que busca valores invalidos para as variaveis 'sentence1','cmscore1' e 'score1' no texto de saida do Julius
- def TestesErro(TextoJulius):
- VetorLinhas = *********************")
- for line in VetorLinhas:
- if line.find('sentence1') != -1:
- sentence1 = line
- elif line.find('cmscore1') != -1:
- cmscore1 = line
- elif line.find('score1') != -1:
- score1 = line
- VetorCmscore = cmscore1.split()
- FlagErro = False
- for score in VetorCmscore:
- try:
- score_float = float(score)
- except ValueError:
- continue
- if (score_float < NivelConf):
- FlagErro = True
- print ("ERRO!! Nivel de confianca (%.3f) menor que %.3f.Tente novamente.")% (score_float, NivelConf)
- score1_float = float(score1.split()[1])
- if (score1_float < CoefViterbi):
- FlagErro = True
- print ("ERRO!! Coeficiente de Viterbi (%f) menor que %f. Tente novamente.")% (score1_float, CoefViterbi)
- if (FlagErro== False):
- print (sentence1)
- print (cmscore1)
- print (score1)
- MoverPlat(sentence1)
- else:
- pass
- #Funcao que utiliza a plavra de comando para ligar a luz
- def LigarLuz(ComandoFalado):
- global ComandoAcender
- global ComandoApagar
- VetorStr = ComandoFalado.split()
- VetorStrTamanho = len(VetorStr)
- if (VetorStrTamanho<2):
- PalavraComando = 'erro'
- print ("ERRO!! Comando nao entendido.")
- elif (VetorStrTamanho>2):
- PalavraComando = 'erro'
- print ("ERRO!! Fale uma palavra por vez.")
- else:
- PalavraComando = VetorStr[1]
- print ("OK!! Comando reconhecido: %s") % (PalavraComando)
- if ((PalavraComando=='apagar') or (PalavraComando=='apaga') or
- (PalavraComando=='desliga') or (PalavraComando=='desligar')):
- ComandoApagar = True
- print ("A luz está apagada!")
- GPIO.output(16, False)
- sleep(2)
- elif ((PalavraComando=='ativa') or (PalavraComando=='ative') or
- (PalavraComando=='ativar') or (PalavraComando=='aciona') or
- (PalavraComando=='acione') or (PalavraComando=='acionar')):
- ComandoAcender = True
- print ("Luz Acessa!")
- GPIO.output(16, True)
- sleep(2)
- def Julius():
- print ("Julius começa aqui")
- #child.expect(pexpect.EOF)
- child.expect('please speak', timeout=None)
- #child.expect (EOF)
- #child.expect_exact('please speak', timeout=None)
- #child.expect(pexpect.EOF, timeout=None)
- print ("erro aqui")
- ************************)
- print ("FALE....")
- if __name__== "__main__":
- global PrimCiclo
- global ComandoApagar
- global ComandoAcender
- PrimCiclo = True
- ComandoApagar= True
- ComandoAcender = False
- if PrimCiclo==True:
- #GPIO.output(16, True)
- print ('####################################################')
- print ('# Bem vindo ao sistema de reconhecimento de voz!! #')
- print ('####################################################')
- print ('Aguarde, carregando o Julius...')
- #child = *******************************************')
- child = pexpect.spawn('julius -C julius.jconf')
- #child.expect(pexpect.EOF)
- try:
- Julius()
- except KeyboardInterrupt:
- child.close(force=True)
- sys.exit()
- #break
- PrimCiclo=False
- #GPIO.cleanup()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement