|
@@ -21,10 +21,22 @@ class Acapela(TTSModule):
|
|
|
raise MissingTTSParameter("voice parameter is required by the Acapela TTS")
|
|
|
|
|
|
def say(self, words):
|
|
|
+ """
|
|
|
+
|
|
|
+ :param words: The sentence to say
|
|
|
+ """
|
|
|
|
|
|
self.generate_and_play(words, self._generate_audio_file)
|
|
|
|
|
|
def _generate_audio_file(self):
|
|
|
+ """
|
|
|
+
|
|
|
+ Generic method used as a Callback in TTSModule
|
|
|
+ - must provided the audio file and write it on the disk
|
|
|
+
|
|
|
+ .. raises:: FailToLoadSoundFile
|
|
|
+ """
|
|
|
+
|
|
|
|
|
|
# Prepare payload
|
|
|
payload = self.get_payload()
|
|
@@ -48,6 +60,13 @@ class Acapela(TTSModule):
|
|
|
FileManager.write_in_file(self.file_path, r.content)
|
|
|
|
|
|
def get_payload(self):
|
|
|
+ """
|
|
|
+
|
|
|
+ Generic method used load the payload used to acces the remote api
|
|
|
+
|
|
|
+ :return: Payload to use to access the remote api
|
|
|
+ """
|
|
|
+
|
|
|
return {
|
|
|
"MyLanguages": self.language,
|
|
|
"MySelectedVoice": self.voice,
|
|
@@ -58,6 +77,17 @@ class Acapela(TTSModule):
|
|
|
|
|
|
@staticmethod
|
|
|
def get_audio_link(url, payload, timeout_expected=TTS_TIMEOUT_SEC):
|
|
|
+
|
|
|
+ """
|
|
|
+ Return the audio link
|
|
|
+
|
|
|
+ :param url: the url to access
|
|
|
+ :param payload: the payload to use to acces the remote api
|
|
|
+ :param timeout_expected: timeout before the post request is cancel
|
|
|
+ :return: the audio link
|
|
|
+ :rtype: String
|
|
|
+ """
|
|
|
+
|
|
|
r = requests.post(url, payload, timeout=timeout_expected)
|
|
|
data = r.content
|
|
|
return re.search("(?P<url>https?://[^\s]+).mp3", data).group(0)
|