-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathassistente.py
More file actions
76 lines (54 loc) · 2.27 KB
/
assistente.py
File metadata and controls
76 lines (54 loc) · 2.27 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
import sys
import os
import argparse
sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))
from src.transcritor import Transcritor
from src.processador_comandos import ProcessadorComandos
from src.atuadores import Atuador
CAMINHO_CONFIG = os.path.join(os.path.dirname(__file__), "config", "commands.json")
def executar_via_microfone(transcritor, processador, atuador):
print("\n" + "=" * 55)
print(" ASSISTENTE VIRTUAL | Automação por Voz")
print("=" * 55)
print("Pressione Ctrl+C para sair.\n")
while True:
try:
print("\n[ASSISTENTE] Aguardando comando...")
texto = transcritor.gravar_e_transcrever()
if not texto:
print("[ASSISTENTE] Não entendi. Tente novamente.")
continue
comando = processador.encontrar_comando(texto)
if comando:
atuador.executar(comando)
else:
print(f"[ASSISTENTE] Comando não reconhecido para: '{texto}'")
listar_comandos(processador)
except KeyboardInterrupt:
print("\n[ASSISTENTE] Encerrando. Até logo!")
break
def executar_via_arquivo(caminho_audio, transcritor, processador, atuador):
print(f"\n[ASSISTENTE] Processando arquivo: {caminho_audio}")
texto = transcritor.transcrever_arquivo(caminho_audio)
comando = processador.encontrar_comando(texto)
if comando:
atuador.executar(comando)
else:
print("[ASSISTENTE] Nenhum comando reconhecido.")
return comando
def listar_comandos(processador):
for cmd in processador.comandos:
print(f" • {cmd['description']} → ex: '{cmd['keywords'][0]}'")
def main():
analisador = argparse.ArgumentParser(description="Assistente Virtual por Voz")
analisador.add_argument("--arquivo", "-a", type=str, default=None)
args = analisador.parse_args()
transcritor = Transcritor(caminho_config=CAMINHO_CONFIG)
processador = ProcessadorComandos(caminho_config=CAMINHO_CONFIG)
atuador = Atuador(caminho_config=CAMINHO_CONFIG)
if args.arquivo:
executar_via_arquivo(args.arquivo, transcritor, processador, atuador)
else:
executar_via_microfone(transcritor, processador, atuador)
if __name__ == "__main__":
main()