Views
No views yet
# Dados simulados Petrobras
self.equipamentos = {
"Bomba_01": {"status": "operacional", "ultima_manut": "2024-01-15"},
"Válvula_05": {"status": "manutenção", "prioridade": "alta"}
}
self.fala("Bem-vindo ao AIPA Petrobras! Diga 'ajuda' para comandos.")
def fala(self, texto):
"""Texto para fala acessível"""
print(f"🗣️: {texto}")
self.engine.say(texto)
self.engine.runAndWait()
def escuta(self):
"""Reconhecimento de voz robusto"""
with self.microphone as source:
self.recognizer.adjust_for_ambient_noise(source)
try:
with self.microphone as source:
audio = self.recognizer.listen(source, timeout=5)
comando = self.recognizer.recognize_google(audio, language='pt-BR').lower()
print(f"👤: {comando}")
return comando
except:
self.fala("Não entendi. Repita por favor.")
return ""
def relatorio_inspecao(self):
"""Gera relatório automático de inspeção"""
agora = datetime.datetime.now().strftime("%d/%m/%Y %H:%M")
relatorio = f"""
📋 RELATÓRIO DE INSPEÇÃO AUTOMÁTICO
Data/Hora: {agora}
Equipamentos verificados: OK
Status geral: OPERACIONAL
Assinatura digital: AIPA-Petrobras
"""
self.fala("Relatório gerado com sucesso!")
print(relatorio)
return relatorio
def checklist_seguranca(self):
"""Checklist guiado por voz"""
itens = [
"Capacete colocado?",
"Óculos de proteção?",
"Cinto de segurança?",
"EPIs completos?"
]
self.fala("Iniciando checklist de segurança. Responda sim ou não.")
checklist_ok = True
for item in itens:
self.fala(item)
resposta = self.escuta()
if "não" in resposta or "nao" in resposta:
self.fala("ATENÇÃO! Item pendente. Corrija antes de continuar.")
checklist_ok = False
break
if checklist_ok:
self.relatorio_inspecao()
self.fala("Checklist concluído! Tudo OK.")
def status_equipamentos(self):
"""Monitora status dos equipamentos"""
self.fala("Verificando equipamentos...")
for eq, dados in self.equipamentos.items():
status = f"{eq}: {dados['status']}"
self.fala(status)
def agendar_manutencao(self):
"""Agenda manutenção preditiva"""
self.fala("Qual equipamento? Ex: Bomba 01")
equipamento = self.escuta()
agora = datetime.datetime.now()
proxima = agora + datetime.timedelta(days=7)
self.equipamentos[equipamento] = {
"status": "agendada",
"data": proxima.strftime("%d/%m/%Y")
}
self.fala(f"Manutenção de {equipamento} agendada para {proxima.strftime('%d de %B')}")
def modo_acessivel(self):
"""Modo para deficiências específicas"""
self.fala("Qual modo? Visual, auditivo, motor ou cognitivo")
modo = self.escuta()
if "visual" in modo:
self.fala("Ativando modo visual: alto contraste e braille ativado")
elif "motor" in modo:
self.fala("Ativando modo motor: comandos por piscada e gestos")
elif "cognitivo" in modo:
self.fala("Ativando modo cognitivo: instruções simplificadas")
def executar(self):
"""Loop principal"""
while True:
try:
comando = self.escuta()
if "relatório" in comando or "inspeção" in comando:
self.relatorio_inspecao()
elif "checklist" in comando or "segurança" in comando:
self.checklist_seguranca()
elif "equipamento" in comando or "status" in comando:
self.status_equipamentos()
elif "manutenção" in comando or "agendar" in comando:
self.agendar_manutencao()
elif "acessível" in comando or "modo" in comando:
self.modo_acessivel()
elif "ajuda" in comando:
self.fala("Comandos: relatório, checklist, equipamentos, manutenção, acessível, sair")
elif "sair" in comando:
self.fala("Obrigado! Fique seguro.")
break
else:
self.fala("Comando não reconhecido. Diga 'ajuda'.")
except KeyboardInterrupt:
self.fala("Encerrando AIPA.")
break