commit
e04d5cc2f5
1 changed files with 37 additions and 0 deletions
@ -0,0 +1,37 @@ |
|||
#!/usr/bin/env python2 |
|||
|
|||
import xchat |
|||
from espeak import espeak |
|||
__module_name__ = "IRC Speak" |
|||
__module_version__ = "1.0" |
|||
__module_description__ = "Allows you to make certain users' text run through a voice synthesizer" |
|||
|
|||
|
|||
defaults = {"rate" : (1,175), |
|||
"volume" : (2,70), |
|||
"pitch" : (3,50), |
|||
"vrange" : (4,50)} |
|||
|
|||
names = {"nick-here" : {"args": {"pitch" : 200}, "language" : "english"}, |
|||
"nick-here" : {"args": {"pitch" : 40}, "language" : "english"}} |
|||
|
|||
def say(sentence, language="english", **kargs): |
|||
espeak.set_voice(name=language) |
|||
if not kargs: |
|||
[espeak.set_parameter(defaults[arg][0], defaults[arg][1]) for arg in defaults] #setting the values, the [1] is there because defaults has tuples, not single values |
|||
else: |
|||
[espeak.set_parameter(defaults[arg][0], kargs[arg]) for arg in kargs] |
|||
return espeak.synth(sentence) |
|||
|
|||
def irc_speak(word, word_eol, users): |
|||
if names.has_key(word[0]): |
|||
say(word[1], names[word[0]]["language"], **names[word[0]]["args"]) |
|||
|
|||
def commands(word, word_eol, users): |
|||
arguments = word[1:] |
|||
cmds = {"langlist" : "\n".join([item["name"] for item in espeak.list_voices()]), |
|||
"names" : names} |
|||
print cmds[arguments[0]] |
|||
|
|||
xchat.hook_print("Channel Message", irc_speak) |
|||
xchat.hook_command("speaker",commands) |
Reference in new issue