import requests from requests.structures import CaseInsensitiveDict from jarvis.utils import config_utils def speak(sentence, client_ip, client_port): raw_audio_bytes = get_audio_from_sentence(sentence) play_audio_on_client(raw_audio_bytes, client_ip, client_port) def get_audio_from_sentence(sentence): voice = config_utils.get_in_config("TTS_VOICE") headers = {'accept': '*/*'} params = ( ('voice', voice), ('text', sentence), ) # TODO : add support for external opentts server response = requests.get('http://localhost:5500/api/tts', headers=headers, params=params) return response.content def play_audio_on_client(raw_audio_bytes, client_ip, client_port): url_service = "http://" + client_ip + ":" + client_port + "/play_raw_audio" headers = CaseInsensitiveDict() headers["Content-Type"] = "text/xml; charset=utf8" # headers["Authorization"] = config_utils.get_in_config("API_KEY") response = requests.post(url_service, headers=headers, data=raw_audio_bytes) print(response.content)