diff --git a/jarvis/main.py b/jarvis/main.py index be94e4b..9310017 100644 --- a/jarvis/main.py +++ b/jarvis/main.py @@ -2,13 +2,14 @@ import os import struct import sys import threading +import time import pvporcupine import pyaudio import simpleaudio as sa import speech_recognition as sr -from jarvis.utils import server_utils, config_utils, flask_utils +from jarvis.utils import server_utils, flask_utils wake_word_handler = pvporcupine.create(keywords=['jarvis']) @@ -47,10 +48,21 @@ def record(): server_utils.send_record_to_server(audio.frame_data) +def no_voice_input(): + time.sleep(1) + while True: + sentence = input("Write something : ") + server_utils.send_sentence_to_server(sentence) + + if __name__ == '__main__': if server_utils.get_server_ip() is None: sys.exit(1) - thread = threading.Thread(target=wake_word_listening).start() + if '--no-voice' in sys.argv: + print("[WARN] No voice mode enabled") + thread = threading.Thread(target=no_voice_input).start() + else: + thread = threading.Thread(target=wake_word_listening).start() flask_utils.start_server() diff --git a/jarvis/utils/server_utils.py b/jarvis/utils/server_utils.py index 8fedf69..0cb763d 100644 --- a/jarvis/utils/server_utils.py +++ b/jarvis/utils/server_utils.py @@ -26,6 +26,22 @@ def send_record_to_server(raw_audio_data): print(bytes.decode(response.content)) +def send_sentence_to_server(sentence): + url_service = "http://" + str(get_server_ip()) + ":" + str(get_server_port()) + "/process_text_request" + + headers = CaseInsensitiveDict() + headers["Content-Type"] = "application/json; charset=utf8" + headers['Client-Ip'] = socket.gethostbyname(socket.gethostname()) + headers['Client-Port'] = str(config_utils.get_in_config('PORT')) + # headers["Authorization"] = config_utils.get_in_config("API_KEY") + + response = requests.post(url_service, + headers=headers, + json={'sentence': sentence}) + + print(bytes.decode(response.content)) + + def get_server_port(): return config_utils.get_in_config('SERVER_PORT') if not None else 5000