diff --git a/rigel/tcp.py b/rigel/tcp.py index 8071ec7..dce3844 100644 --- a/rigel/tcp.py +++ b/rigel/tcp.py @@ -70,17 +70,26 @@ def synth(config): ) async def tcp_handler(reader, writer): - # Read till EOF - data = await reader.read(-1) - message = data.decode() - wav = synthesizer.tts(message, speaker_idx, "None", None) + while True: + # Read till EOF + data = await reader.read(4) + msg_len = int.from_bytes(data, 'big') - play(wav) + if msg_len != 0: + data = await reader.read(msg_len) + message = data.decode() - print(f"Received {message!r}") + print(f"Received {message!r}") - writer.write(b"Ok") - await writer.drain() + if message == "//close": + break + + wav = synthesizer.tts(message, speaker_idx, "None", None) + # synthesizer.save_wav(wav, "/tmp/blah.wav") + play(wav) + + writer.write(b"Ok") + await writer.drain() writer.close() return tcp_handler