forked from Vocab-Apps/anki-hyper-tts
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathservice_b.py
76 lines (58 loc) · 1.92 KB
/
service_b.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
import sys
import constants
import languages
import service
import voice
import errors
logging_utils = __import__('logging_utils', globals(), locals(), [], sys._addon_import_level_services)
logger = logging_utils.get_child_logger(__name__)
class VoiceB(voice.VoiceBase):
def __init__(self, voice_id, service):
self._voice_id = voice_id
self._service = service
def _get_name(self):
return self._voice_id
def _get_gender(self):
return constants.Gender.Male
def _get_language(self):
return languages.AudioLanguage.ja_JP
def _get_service(self):
return self._service
def _get_voice_key(self):
return {'voice_id': self._voice_id}
def _get_options(self):
return {}
name = property(fget=_get_name)
gender = property(fget=_get_gender)
language = property(fget=_get_language)
service = property(fget=_get_service)
voice_key = property(fget=_get_voice_key)
options = property(fget=_get_options)
class ServiceB(service.ServiceBase):
def __init__(self):
pass
def test_service(self):
return True
def cloudlanguagetools_enabled(self):
return True
@property
def service_type(self) -> constants.ServiceType:
return constants.ServiceType.tts
@property
def service_fee(self) -> constants.ServiceFee:
return constants.ServiceFee.Premium
def voice_list(self):
return [
VoiceB('alex', self),
VoiceB('jane', self),
VoiceB('notfound', self)
]
def get_tts_audio(self, source_text, voice: voice.VoiceBase, options):
if voice.voice_key['voice_id'] == 'notfound':
logger.warning('special notfound voice')
raise errors.AudioNotFoundError(source_text, voice)
raise Exception('not implemented')
def configuration_options(self):
return {
'user_key': str
}