From bad1dec2d7ec1a59ac398b606f1089f2166519d2 Mon Sep 17 00:00:00 2001 From: itzmarkoni Date: Sun, 15 Jun 2025 22:48:08 -0400 Subject: [PATCH] t --- speaker_driver.lua | 77 +++++++++++++++++++++++++++------------------- 1 file changed, 46 insertions(+), 31 deletions(-) diff --git a/speaker_driver.lua b/speaker_driver.lua index 87dda65..9fbd642 100644 --- a/speaker_driver.lua +++ b/speaker_driver.lua @@ -1,4 +1,6 @@ local dfpwm = require("cc.audio.dfpwm") +local ffmpeg = require('ffmpeg') + local encoder = dfpwm.make_encoder() local decoder = dfpwm.make_decoder() local baseRoute = "https://git.astrocore.space/root/NovaCorpLLC/raw/branch/main/" @@ -35,44 +37,57 @@ local function playInternalAlarm(speakers) end local function playTTSFile(speakers, value) - local ttsRoute = "https://ttsmp3.com/makemp3_new.php" - local fileName = "tts.dfpwm" - local encodedValue = textutils.urlEncode(value) - print("Encoded TTS value: " .. encodedValue) - local body = "msg=" .. encodedValue .. "&lang=Gwyneth&source=ttsmp3" - local headers = { - ["Content-Type"] = "application/x-www-form-urlencoded" - } - print("Sending HTTP POST request") - local response = http.post({ - url = ttsRoute, - method = "POST", - body = body, - headers = headers, - binary = false - }) + local url = "https://music.madefor.cc/tts?text=" .. textutils.urlEncode(message) + local response, err = http.get { url = url, binary = true } + if not response then error(err, 0) end + while true do + local chunk = response.read(16 * 1024) + if not chunk then break end - print("HTTP POST request successful" ) - local data = response.readAll() - response.close() + local buffer = decoder(chunk) + while not speaker.playAudio(buffer) do + os.pullEvent("speaker_audio_empty") + end + end + -- local ttsRoute = "https://ttsmp3.com/makemp3_new.php" + -- local fileName = "tts.dfpwm" + -- local encodedValue = textutils.urlEncode(value) + -- print("Encoded TTS value: " .. encodedValue) + -- local body = "msg=" .. encodedValue .. "&lang=Gwyneth&source=ttsmp3" + -- local headers = { + -- ["Content-Type"] = "application/x-www-form-urlencoded" + -- } - local responseData = textutils.unserialiseJSON(data, { parse_null = true }) - local soundRequest = http.get({ - url = responseData.URL, - binary = true - }) + -- print("Sending HTTP POST request") + -- local response = http.post({ + -- url = ttsRoute, + -- method = "POST", + -- body = body, + -- headers = headers, + -- binary = false + -- }) + + -- print("HTTP POST request successful" ) + -- local data = response.readAll() + -- response.close() + + -- local responseData = textutils.unserialiseJSON(data, { parse_null = true }) + -- local soundRequest = http.get({ + -- url = responseData.URL, + -- binary = true + -- }) - local soundData = soundRequest.readAll() - soundRequest.close() + -- local soundData = soundRequest.readAll() + -- soundRequest.close() - local encodedData = encoder(soundData) + -- local encodedData = encoder.encode(soundData) - local file = fs.open(fileName, "w") - file.write(encodedData) - file.close() + -- local file = fs.open(fileName, "w") + -- file.write(encodedData) + -- file.close() - playSound(speakers, fileName) + -- playSound(speakers, fileName) end local function createSoundFile(fileName)