filter
ARES System Manual: filter Text Filter Utilities

filter install|remove
filter <name> <flags>
filter <name> help

Transforms text provided on the input pipe and returns it to the output pipe.

Supported filters in this version:
    censor (layer 0): Removes words considered objectionable.
        flags: Specify the subkey of censor within the filter database section which contains an array of words to censor. Entries should be in lower case.

    replace (layer 0): Replaces single words with alternatives.
        flags: Specify the subkey of replace within the filter database section which contains a dictionary of words to replace, e.g. filter.replace.pacifism {'hate':'love'} can be loaded with vox <chain> replace love.
       
        replace is good at preserving punctuation and capitalization, but it can only replace single words; it is not suitable for more complex grammatical changes.

    slang (layer 0): Injects spurious clauses.
        flags: Specify the subkey of slang within the filter database section which contains the arrays 'pre', 'mid', and 'post' of words to inject into sentences.

    nonverbal (layer 1): Replaces all words with a single predefined syllable, varying only in length.
        flags: Specify the prefix, repeat, and suffix for the new word, separated by spaces. For example, 'ny a n' converts nyan nyaaan nyan 'nyan'.

    translate (layer 1): Sends messages to mymemory.translated.net for language translation.
        flags: Specify the origin and destination languages as two-letter codes separated by a pipe. For example, 'en|it' converts English to Italian.

    serpentine (layer 2): Exaggerates S and Z sounds.
        flags: Specify the severity as 0 (no snek) to 100 (extreme ssssnek).

    stutter (layer 2): Randomly reduplicates consonants and syllables.
        flags: Specify the severity as 0 (no stutter) to 100 (extreme st-stutter).

    lisp (layer 3): Converts alveolar sibilants into alveolar fricatives.
        flags: Specify the severity as 0 (no lisp) to 100 (alwayth lithp).

    mumble (layer 4): Simulates blocked or muffled lips.
        flags: None.

    caps (layer 5): Converts text to all upper-case.
        flags: None.

    rot13 (layer 5): Encrypts text in rot13.
        flags: None.

    slow (layer 5): Exaggerates spaces between words.
        flags: Number of extra spaces to add, from 0 (normal) to 15 (extreme).

    bimbo (layer 6): Remaps letters to stylish Unicode approximations.
        flags: None.

    superscript (layer 6): Remaps letters to superscript variants.
        flags: None.

    corrupted (layer 7): Simulates various speech processor malfunctions.
        flags: Level of corruption, from 0 (no corruption) to 100 (illegible).

    glitch (layer 7): Adds combining diacritics to affect the appearance of a noisy transmission.
        flags: Level of corruption, from 0 (no Zalgo) to 100 (HE COMES).

See the entry vox for information on how to set up automatic filtering of chat.

The layer number indicates the order in which filters will be applied when used combination. Each layer corresponds to a stage in human verbal or textual communication, and thus also in the robot's model of speech production:

- Layer 0 (semantic) filters change the meaning of each modified sentence.
- Layer 1 (linguistic) filters change the way in which sentences are converted into utterances.
- Layer 2 (apraxic) filters concern the ability of the robot to choose what sounds to make, and when to make them.
- Layer 3 (phonemic) filters concern the ability of the robot to correctly produce the sounds it has chosen.
- Layer 4 (obstructive) filters concern the ability of the robot to transmit sounds clearly.
- Layer 5 (orthographic) filters change how words are represented in text.
- Layer 6 (typographic) filters change how the text is intended to look.
- Layer 7 (decorative) filters add ornamental characters or transmission errors.

For detail on how to configure each filter, see the individual manual entries for each filter.