added working opentts integration

This commit is contained in:
Mathieu B 2021-08-01 11:48:33 +02:00
parent 217f6d881c
commit 59029f8398

View File

@ -1,15 +1,38 @@
import os import requests
from requests.structures import CaseInsensitiveDict
from jarvis.utils import config_utils from jarvis.utils import config_utils
def speak(sentence, quality=config_utils.get_in_config("LARYNX_QUALITY")): def speak(sentence, client_ip, client_port):
voice = config_utils.get_in_config("LARYNX_VOICE") raw_audio_bytes = get_audio_from_sentence(sentence)
denoiserstrength = config_utils.get_in_config("LARYNX_DENOISER_STRENGTH") play_audio_on_client(raw_audio_bytes, client_ip, client_port)
os.system(
"larynx \"" + sentence + "\" --voice " + voice + " --quality " + quality + def get_audio_from_sentence(sentence):
# " --output-dir wav " + voice = config_utils.get_in_config("TTS_VOICE")
" --interactive " +
"--denoiser-strength " + str(denoiserstrength) + headers = {'accept': '*/*'}
" --output-naming time")
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)