voicerss.py 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. import logging
  2. from core import AudioPlayer
  3. from tts import TTS
  4. logging.basicConfig()
  5. logger = logging.getLogger("kalliope")
  6. class Voicerss(TTS):
  7. TTS_LANGUAGES_DEFAULT = 'fr-fr'
  8. TTS_URL = "http://www.voicerss.org/controls/speech.ashx"
  9. TTS_CONTENT_TYPE = "audio/mpeg"
  10. TTS_TIMEOUT_SEC = 30
  11. def __init__(self):
  12. TTS.__init__(self)
  13. def say(self, words=None, language=TTS_LANGUAGES_DEFAULT, cache=True):
  14. self.say_generic(cache, language, words, self.get_audio_voicerss, AudioPlayer.PLAYER_MP3, AudioPlayer.AUDIO_MP3_44100_FREQUENCY)
  15. def get_audio_voicerss(self, **kwargs):
  16. words = kwargs.get('words', None)
  17. cache = kwargs.get('cache', None)
  18. file_path = kwargs.get('file_path', None)
  19. language = kwargs.get('language', None)
  20. payload = Voicerss.get_payload(language, words)
  21. return TTS.get_audio(file_path, cache, payload, self.TTS_URL)
  22. @staticmethod
  23. def get_payload(language, words):
  24. return {
  25. "src": words,
  26. "hl": language,
  27. "c": "mp3"
  28. }