On new chat, character paragraphs, found an outlier possibility where character/narrator wouldn't swap, so performed replace('"<. *', '"< *"').replace('< *"', '< *') which should capture it.
The narrator and filtering has been re-written to vastly improve filtering of text, resulting in less unwanted sounds and better control over narrator/character.
Discards any text to be generated that is 0 or 1 characters in length after the sentence is split down (usually this is a * or a " and just produces a strange sound).
Many of the LLM's aren't using asterisks to correctly split the narration from the spoken text. Have re-written the entire text pre-processing engine to take text within asterisks as being narrated text, text within quotes as the characters voice and to assume that anything else is narrated text (the bits that the LLM's aren't correctly using asterisks with). Also added some additional filtering to clear up some strange text characters that may be sent to the TTS engine.