Windows 10
Python 3.10
Джарвис активирован, слушаю…
Команда: открой браузер
Команда не распознана, начинаю слушать снова…
хоть команда есть в списке command.yaml
Python 3.10
Код:
import os
import json
import pyaudio
import yaml
import subprocess
from vosk import Model, KaldiRecognizer
def load_commands():
with open(os.path.join('commands', '1', 'command.yaml'), 'r') as file:
commands = yaml.safe_load(file)
return commands
def recognize_speech():
model = Model("model_small")
recognizer = KaldiRecognizer(model, 16000)
p = pyaudio.PyAudio()
stream = p.open(format=pyaudio.paInt16, channels=1, rate=16000, input=True, frames_per_buffer=8000)
stream.start_stream()
while True:
print("Ожидание команды:")
data = stream.read(4000)
if len(data) == 0:
break
if recognizer.AcceptWaveform(data):
result = json.loads(recognizer.Result())
if "джарвис" in result['text'].lower():
print("Джарвис активирован, слушаю...")
while True:
data = stream.read(4000)
if recognizer.AcceptWaveform(data):
command_result = json.loads(recognizer.Result())
command_text = command_result.get('text')
if command_text:
print(f"Команда: {command_text}")
# Здесь вы можете добавить свою логику для обработки команд
if "отмена" in command_text.lower():
print("Команда отмены.")
break
elif not process_command(command_text): # Если команда не распознана
print("Команда не распознана, начинаю слушать снова...")
break
def process_command(command):
commands = load_commands()
for cmd in commands['list']:
if command in cmd['voice']['phrases']:
# Здесь вы можете добавить свою логику для обработки команд
print(f"Выполняется команда: {cmd['command']['exe_path']}")
subprocess.run([cmd['command']['exe_path']] + cmd['command']['exe_args'])
return True
# Если команда не распознана, верните False
return False
if __name__ == "__main__":
while True:
command = recognize_speech()
if command:
print(f"Распознанная команда: {command}")
if cancel_command(command):
print("Команда отмены.")
break
# Здесь вы можете добавить свою логику для обработки команд
YAML:
list:
- command:
action: ahk
exe_path: ahk/Run browser.exe
exe_args:
voice:
sounds:
- ok1
- ok2
- ok3
- ok4
phrases:
- открой браузер
- запусти браузер
- открой гугл хром
- гугл хром
Джарвис активирован, слушаю…
Команда: открой браузер
Команда не распознана, начинаю слушать снова…
хоть команда есть в списке command.yaml