hopefully this is what you want, I added a variable for on and off and in order to USE your talker on or off you have to type TEXT ON for on or TEXT OFF for off.

In the area of %text this is where I adapted your string you wanted. personally I would re-write this but its 2:19AM in the morning..

Code:
on *:input:*: {
  if ($1 == TEXT) { %t.sw == $iif($2 == on,on,off) }
; *************ON/OFF switch ADDED****************
  elseif (($istok(channel query,$window($active).type,32)) && (/* !iswm $1) && (!$ctrlenter)) { 
    var %bad = fuck fúck,pussy pússy,motherfucker motherfúcker,fucking fúcking,O_O O_O,>_< >_<,^.^ ^.^,pussy pússy,cunt cúnt,cunts cúnts,slut slút,sluts slúts,dick díck,dicks dícks,incest íncest,incestual íncestual,nigger nígger,niggers níggers,shit shít,bitch bítch,bitches bítches,cum cúm,cumming cúmming,cock cóck,whore whóre,whores whóres,homo hómo,homos hómos,fag fág,faggot fággot,faggots fággots 
    var %nickstyle = 6..4 $+ NICK $+ 6..
    var %text = 0 14:13×14:  $+ $1- $+ 14:13×14: , %nr = 1
; ************ADAPTED STRING HERE*********************
    while $gettok(%bad,%nr,44) {
      var %token = $v1
      while ($findtok(%text,$gettok(%token,1,32),1,32)) {
        var %match = $v1
        var %new = $+($($+($chr(36),$iif(($left($gettok(%text,%match,32),1) isupper),upper,lower), $& 
          ($left($gettok(%token,2,32),1))),2),$mid($gettok(%token,2,32),2))
        var %text = $puttok(%text,%new,%match,32)
      }
      inc %nr
    }
    var %nr = 1
    while ($gettok(%text,%nr,32)) {
      var %token = $left($v1,-1)
      if (($regex($v1,/.+:/s)) && ((%token ison $active) || (%token == $query($active)))) {
        var %text = $puttok(%text,$+($replacecs(%nickstyle,NICK,%token),$chr(15)),%nr,32)
      }
      inc %nr
    }
    if (%t.sw == off) { msg $active $1- }
    else { msg $active %text }
; ***************ON/OFF CHECK switch here************
    halt 
  }
}


Code:
if $reality > $fiction { set %sanity Sane }
Else { echo -a *voices* }