streaming input architecture
Hello, I recently did some work on the QwenTTS model here: https://github.com/keless/Qwen3-TTS-streaming-input
Starting with a fork of Qwen3-TTS-streaming which itself is a fork of the original Qwen3-TTS focused on streaming output audio, I added the ability to stream text in. By separating the incoming text from the outgoing audio generation, I was able to stream tokens in from an LLM model and keep the prosody/context alive and shared for multiple utterances while streaming the audio out.
This means that instead of waiting for the first sentence or word from an LLM, we can immediately start preparing audio from the first streaming token. And also means that once a sentence is completed, we can continue to process the next sentence (or even multiple paragraphs of sentences) using the same context-- so the spoken response is consistent between all inputs.
I did this on a linux machine with an Nvidia card, but I'm now looking at a MacStudio architecture and wondering if I should use mlx-audio instead (to take better advantage of Metal); however, obviously the work I did to add streaming input to Qwen3-TTS doesnt exist in mlx-audio at this time.
I think this work might be generalizable across some, but not all, of the different audio architectures that mlx-audio supports (specifically models like Kokoro and Chatterbox that aren't autoregressive and probably wouldn't work). Do you think it would be a good idea to look at adding this functionality to your project?
Source: Blaizzy/mlx-audio