Уведомления

Группа в Telegram: @pythonsu

#1 Ноя. 4, 2023 10:29:11

1000v
Зарегистрирован: 2023-11-04
Сообщения: 1
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите я пытался создать голосого помошника

 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
            # Здесь вы можете добавить свою логику для обработки команд

command.yaml
- command:
action: ahk
exe_path: ahk/Run browser.exe
exe_args:
voice:
sounds:
- ok1
- ok2
- ok3
- ok4
phrases:
- открой браузер
- запусти браузер
- открой гугл хром
- гугл хром

Джарвис активирован, слушаю…
Команда: открой браузер
Команда не распознана, начинаю слушать снова…
хоть команда есть в списке command.yaml

Офлайн

#2 Ноя. 4, 2023 14:04:19

ZerG
Зарегистрирован: 2012-04-05
Сообщения: 2586
Репутация: +  60  -
Профиль   Отправить e-mail  

Помогите я пытался создать голосого помошника

 def load_commands():
    with open(os.path.join('commands', '1', 'command.yaml'), 'r') as file:
        commands = yaml.safe_load(file)
        print("1commands")
    print("2commands")
    return commands



Влодение рускай арфаграфией - это как владение кунг-фу: настаящие мастира не преминяют ево бес ниабхадимости

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version