forked from platypush/platypush
#20 Added TTS plugin
This commit is contained in:
parent
2ec7a0bbda
commit
7a0295675c
1 changed files with 33 additions and 0 deletions
33
platypush/plugins/tts/__init__.py
Normal file
33
platypush/plugins/tts/__init__.py
Normal file
|
@ -0,0 +1,33 @@
|
|||
import subprocess
|
||||
import urllib.parse
|
||||
|
||||
from platypush.message.response import Response
|
||||
|
||||
from .. import Plugin
|
||||
|
||||
class TtsPlugin(Plugin):
|
||||
""" Default Text-to-Speech plugin. It leverages Google Translate and
|
||||
requires mplayer """
|
||||
|
||||
def say(self, phrase, lang='en-gb'):
|
||||
output = None
|
||||
errors = []
|
||||
cmd = ['mplayer -ao alsa -really-quiet -noconsolecontrols ' +
|
||||
'"http://translate.google.com/translate_tts?{}"'
|
||||
.format(urllib.parse.urlencode({
|
||||
'ie' : 'UTF-8',
|
||||
'client' : 'tw-ob',
|
||||
'tl' : lang,
|
||||
'q' : phrase,
|
||||
}))]
|
||||
|
||||
try:
|
||||
output = subprocess.check_output(
|
||||
cmd, stderr=subprocess.STDOUT, shell=True).decode('utf-8')
|
||||
except subprocess.CalledProcessError as e:
|
||||
errors = [e.output.decode('utf-8')]
|
||||
|
||||
return Response(output=output, errors=errors)
|
||||
|
||||
# vim:sw=4:ts=4:et:
|
||||
|
Loading…
Reference in a new issue