cloudlanguagetools 11.3.2__tar.gz → 11.3.3__tar.gz

Sign up to get free protection for your applications and to get access to all the features.
Files changed (55) hide show
  1. {cloudlanguagetools-11.3.2 → cloudlanguagetools-11.3.3}/PKG-INFO +2 -1
  2. {cloudlanguagetools-11.3.2 → cloudlanguagetools-11.3.3}/cloudlanguagetools/forvo.py +12 -4
  3. {cloudlanguagetools-11.3.2 → cloudlanguagetools-11.3.3}/cloudlanguagetools/google.py +39 -31
  4. {cloudlanguagetools-11.3.2 → cloudlanguagetools-11.3.3}/cloudlanguagetools.egg-info/PKG-INFO +2 -1
  5. {cloudlanguagetools-11.3.2 → cloudlanguagetools-11.3.3}/cloudlanguagetools.egg-info/SOURCES.txt +9 -1
  6. {cloudlanguagetools-11.3.2 → cloudlanguagetools-11.3.3}/setup.py +1 -1
  7. cloudlanguagetools-11.3.3/tests/test_audio.py +611 -0
  8. cloudlanguagetools-11.3.3/tests/test_breakdown.py +377 -0
  9. cloudlanguagetools-11.3.3/tests/test_chatapi.py +214 -0
  10. cloudlanguagetools-11.3.3/tests/test_dictionary_lookup.py +202 -0
  11. cloudlanguagetools-11.3.3/tests/test_llm.py +66 -0
  12. cloudlanguagetools-11.3.3/tests/test_mock_services.py +106 -0
  13. cloudlanguagetools-11.3.3/tests/test_servicemanager.py +48 -0
  14. cloudlanguagetools-11.3.3/tests/test_translation.py +586 -0
  15. {cloudlanguagetools-11.3.2 → cloudlanguagetools-11.3.3}/LICENSE +0 -0
  16. {cloudlanguagetools-11.3.2 → cloudlanguagetools-11.3.3}/README.rst +0 -0
  17. {cloudlanguagetools-11.3.2 → cloudlanguagetools-11.3.3}/cloudlanguagetools/__init__.py +0 -0
  18. {cloudlanguagetools-11.3.2 → cloudlanguagetools-11.3.3}/cloudlanguagetools/amazon.py +0 -0
  19. {cloudlanguagetools-11.3.2 → cloudlanguagetools-11.3.3}/cloudlanguagetools/argostranslate.py +0 -0
  20. {cloudlanguagetools-11.3.2 → cloudlanguagetools-11.3.3}/cloudlanguagetools/azure.py +0 -0
  21. {cloudlanguagetools-11.3.2 → cloudlanguagetools-11.3.3}/cloudlanguagetools/cereproc.py +0 -0
  22. {cloudlanguagetools-11.3.2 → cloudlanguagetools-11.3.3}/cloudlanguagetools/chatapi.py +0 -0
  23. {cloudlanguagetools-11.3.2 → cloudlanguagetools-11.3.3}/cloudlanguagetools/constants.py +0 -0
  24. {cloudlanguagetools-11.3.2 → cloudlanguagetools-11.3.3}/cloudlanguagetools/deepl.py +0 -0
  25. {cloudlanguagetools-11.3.2 → cloudlanguagetools-11.3.3}/cloudlanguagetools/dictionarylookup.py +0 -0
  26. {cloudlanguagetools-11.3.2 → cloudlanguagetools-11.3.3}/cloudlanguagetools/easypronunciation.py +0 -0
  27. {cloudlanguagetools-11.3.2 → cloudlanguagetools-11.3.3}/cloudlanguagetools/elevenlabs.py +0 -0
  28. {cloudlanguagetools-11.3.2 → cloudlanguagetools-11.3.3}/cloudlanguagetools/encryption.py +0 -0
  29. {cloudlanguagetools-11.3.2 → cloudlanguagetools-11.3.3}/cloudlanguagetools/epitran.py +0 -0
  30. {cloudlanguagetools-11.3.2 → cloudlanguagetools-11.3.3}/cloudlanguagetools/errors.py +0 -0
  31. {cloudlanguagetools-11.3.2 → cloudlanguagetools-11.3.3}/cloudlanguagetools/fptai.py +0 -0
  32. {cloudlanguagetools-11.3.2 → cloudlanguagetools-11.3.3}/cloudlanguagetools/keys.py +0 -0
  33. {cloudlanguagetools-11.3.2 → cloudlanguagetools-11.3.3}/cloudlanguagetools/languages.py +0 -0
  34. {cloudlanguagetools-11.3.2 → cloudlanguagetools-11.3.3}/cloudlanguagetools/libretranslate.py +0 -0
  35. {cloudlanguagetools-11.3.2 → cloudlanguagetools-11.3.3}/cloudlanguagetools/mandarincantonese.py +0 -0
  36. {cloudlanguagetools-11.3.2 → cloudlanguagetools-11.3.3}/cloudlanguagetools/naver.py +0 -0
  37. {cloudlanguagetools-11.3.2 → cloudlanguagetools-11.3.3}/cloudlanguagetools/openai.py +0 -0
  38. {cloudlanguagetools-11.3.2 → cloudlanguagetools-11.3.3}/cloudlanguagetools/options.py +0 -0
  39. {cloudlanguagetools-11.3.2 → cloudlanguagetools-11.3.3}/cloudlanguagetools/pythainlp.py +0 -0
  40. {cloudlanguagetools-11.3.2 → cloudlanguagetools-11.3.3}/cloudlanguagetools/service.py +0 -0
  41. {cloudlanguagetools-11.3.2 → cloudlanguagetools-11.3.3}/cloudlanguagetools/servicemanager.py +0 -0
  42. {cloudlanguagetools-11.3.2 → cloudlanguagetools-11.3.3}/cloudlanguagetools/spacy.py +0 -0
  43. {cloudlanguagetools-11.3.2 → cloudlanguagetools-11.3.3}/cloudlanguagetools/test_services.py +0 -0
  44. {cloudlanguagetools-11.3.2 → cloudlanguagetools-11.3.3}/cloudlanguagetools/tokenization.py +0 -0
  45. {cloudlanguagetools-11.3.2 → cloudlanguagetools-11.3.3}/cloudlanguagetools/translationlanguage.py +0 -0
  46. {cloudlanguagetools-11.3.2 → cloudlanguagetools-11.3.3}/cloudlanguagetools/transliterationlanguage.py +0 -0
  47. {cloudlanguagetools-11.3.2 → cloudlanguagetools-11.3.3}/cloudlanguagetools/ttsvoice.py +0 -0
  48. {cloudlanguagetools-11.3.2 → cloudlanguagetools-11.3.3}/cloudlanguagetools/vocalware.py +0 -0
  49. {cloudlanguagetools-11.3.2 → cloudlanguagetools-11.3.3}/cloudlanguagetools/voicen.py +0 -0
  50. {cloudlanguagetools-11.3.2 → cloudlanguagetools-11.3.3}/cloudlanguagetools/watson.py +0 -0
  51. {cloudlanguagetools-11.3.2 → cloudlanguagetools-11.3.3}/cloudlanguagetools/wenlin.py +0 -0
  52. {cloudlanguagetools-11.3.2 → cloudlanguagetools-11.3.3}/cloudlanguagetools.egg-info/dependency_links.txt +0 -0
  53. {cloudlanguagetools-11.3.2 → cloudlanguagetools-11.3.3}/cloudlanguagetools.egg-info/requires.txt +0 -0
  54. {cloudlanguagetools-11.3.2 → cloudlanguagetools-11.3.3}/cloudlanguagetools.egg-info/top_level.txt +0 -0
  55. {cloudlanguagetools-11.3.2 → cloudlanguagetools-11.3.3}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: cloudlanguagetools
3
- Version: 11.3.2
3
+ Version: 11.3.3
4
4
  Summary: Interface with various cloud APIs for language processing such as translation, text to speech
5
5
  Home-page: https://github.com/Language-Tools/cloud-language-tools-core
6
6
  Author: Luc
@@ -9,6 +9,7 @@ License: GPL
9
9
  Classifier: Programming Language :: Python :: 3.11
10
10
  Classifier: Topic :: Text Processing :: Linguistic
11
11
  License-File: LICENSE
12
+ Requires-Dist: clt_requirements>=1.7
12
13
 
13
14
  # cloud-language-tools
14
15
  Interface with various cloud APIs for translation, text to speech
@@ -170,8 +170,9 @@ class ForvoService(cloudlanguagetools.service.Service):
170
170
  cloudlanguagetools.languages.AudioLanguage.ta_SG: 'SGP',
171
171
  cloudlanguagetools.languages.AudioLanguage.ta_MY: 'MYS',
172
172
 
173
-
174
-
173
+ # portuguese
174
+ cloudlanguagetools.languages.AudioLanguage.pt_PT: 'PRT',
175
+ cloudlanguagetools.languages.AudioLanguage.pt_BR: 'BRA',
175
176
 
176
177
  # arabic
177
178
  cloudlanguagetools.languages.AudioLanguage.ar_AE: 'ARE',
@@ -251,7 +252,14 @@ class ForvoService(cloudlanguagetools.service.Service):
251
252
 
252
253
  logger.debug(f'processing language_enum {language_enum}')
253
254
  audio_language_list = self.audio_language_map[language_enum]
254
-
255
+
256
+ # special handling for portugese. we need to add both countries manually.
257
+ if language_enum == cloudlanguagetools.languages.Language.pt_pt:
258
+ audio_language_list = [
259
+ cloudlanguagetools.languages.AudioLanguage.pt_PT,
260
+ cloudlanguagetools.languages.AudioLanguage.pt_BR
261
+ ]
262
+
255
263
  voices = []
256
264
 
257
265
  for gender in cloudlanguagetools.constants.Gender:
@@ -296,7 +304,7 @@ class ForvoService(cloudlanguagetools.service.Service):
296
304
  language_voice_list = self.get_voices_for_language_entry(language)
297
305
  voice_list.extend(language_voice_list)
298
306
 
299
- # pprint.pprint(data)
307
+ pprint.pprint(data)
300
308
  else:
301
309
  print(response.content)
302
310
 
@@ -13,6 +13,9 @@ import cloudlanguagetools.languages
13
13
 
14
14
  logger = logging.getLogger(__name__)
15
15
 
16
+ # updates on google text to speech:
17
+ # https://cloud.google.com/text-to-speech/docs/release-notes
18
+
16
19
  def language_code_to_enum(language_code):
17
20
  override_map = {
18
21
  'cmn-TW': cloudlanguagetools.languages.AudioLanguage.zh_TW,
@@ -146,36 +149,41 @@ class GoogleService(cloudlanguagetools.service.Service):
146
149
  cloudlanguagetools.options.AudioFormat.ogg_opus: google.cloud.texttospeech.AudioEncoding.OGG_OPUS
147
150
  }
148
151
 
149
- client = self.get_client()
150
-
151
- ssml_text = '<speak>' + text + '</speak>'
152
- input_text = google.cloud.texttospeech.SynthesisInput(ssml=ssml_text)
153
-
154
- # Note: the voice can also be specified by name.
155
- # Names of voices can be retrieved with client.list_voices().
156
- voice = google.cloud.texttospeech.VoiceSelectionParams(
157
- name=voice_key['name'],
158
- language_code=voice_key['language_code'],
159
- ssml_gender=google.cloud.texttospeech.SsmlVoiceGender[voice_key['ssml_gender']]
160
- )
161
-
162
- audio_config = google.cloud.texttospeech.AudioConfig(
163
- audio_encoding=audio_format_map[audio_format],
164
- speaking_rate=options.get('speaking_rate', 1.0),
165
- pitch=options.get('pitch', 0.0)
166
- )
167
-
168
- response = client.synthesize_speech(
169
- request={"input": input_text, "voice": voice, "audio_config": audio_config}
170
- )
171
-
172
- # The response's audio_content is binary.
173
- output_temp_file = tempfile.NamedTemporaryFile()
174
- output_temp_filename = output_temp_file.name
175
- with open(output_temp_filename, "wb") as out:
176
- out.write(response.audio_content)
177
-
178
- return output_temp_file
152
+ try:
153
+ client = self.get_client()
154
+
155
+ ssml_text = '<speak>' + text + '</speak>'
156
+ input_text = google.cloud.texttospeech.SynthesisInput(ssml=ssml_text)
157
+
158
+ # Note: the voice can also be specified by name.
159
+ # Names of voices can be retrieved with client.list_voices().
160
+ voice = google.cloud.texttospeech.VoiceSelectionParams(
161
+ name=voice_key['name'],
162
+ language_code=voice_key['language_code'],
163
+ ssml_gender=google.cloud.texttospeech.SsmlVoiceGender[voice_key['ssml_gender']]
164
+ )
165
+
166
+ audio_config = google.cloud.texttospeech.AudioConfig(
167
+ audio_encoding=audio_format_map[audio_format],
168
+ speaking_rate=options.get('speaking_rate', 1.0),
169
+ pitch=options.get('pitch', 0.0)
170
+ )
171
+
172
+ response = client.synthesize_speech(
173
+ request={"input": input_text, "voice": voice, "audio_config": audio_config}
174
+ )
175
+
176
+ # The response's audio_content is binary.
177
+ output_temp_file = tempfile.NamedTemporaryFile()
178
+ output_temp_filename = output_temp_file.name
179
+ with open(output_temp_filename, "wb") as out:
180
+ out.write(response.audio_content)
181
+
182
+ return output_temp_file
183
+ except google.api_core.exceptions.BadRequest as bad_request_exception:
184
+ logger.exception(bad_request_exception)
185
+ error_message = f'Could not generate audio: {str(bad_request_exception)}'
186
+ raise cloudlanguagetools.errors.RequestError(error_message)
179
187
 
180
188
 
181
189
  def get_tts_voice_list(self):
@@ -202,7 +210,7 @@ class GoogleService(cloudlanguagetools.service.Service):
202
210
  translation_language = GoogleTranslationLanguage(entry['language'])
203
211
  result_dict[translation_language.get_language_code()] = translation_language
204
212
  except KeyError:
205
- logging.warn(f'could not process translation language for {entry}', exc_info=True)
213
+ logging.warning(f'could not process translation language for {entry}', exc_info=True)
206
214
  return result_dict.values()
207
215
 
208
216
  def get_transliteration_language_list(self):
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: cloudlanguagetools
3
- Version: 11.3.2
3
+ Version: 11.3.3
4
4
  Summary: Interface with various cloud APIs for language processing such as translation, text to speech
5
5
  Home-page: https://github.com/Language-Tools/cloud-language-tools-core
6
6
  Author: Luc
@@ -9,6 +9,7 @@ License: GPL
9
9
  Classifier: Programming Language :: Python :: 3.11
10
10
  Classifier: Topic :: Text Processing :: Linguistic
11
11
  License-File: LICENSE
12
+ Requires-Dist: clt_requirements>=1.7
12
13
 
13
14
  # cloud-language-tools
14
15
  Interface with various cloud APIs for translation, text to speech
@@ -42,4 +42,12 @@ cloudlanguagetools.egg-info/PKG-INFO
42
42
  cloudlanguagetools.egg-info/SOURCES.txt
43
43
  cloudlanguagetools.egg-info/dependency_links.txt
44
44
  cloudlanguagetools.egg-info/requires.txt
45
- cloudlanguagetools.egg-info/top_level.txt
45
+ cloudlanguagetools.egg-info/top_level.txt
46
+ tests/test_audio.py
47
+ tests/test_breakdown.py
48
+ tests/test_chatapi.py
49
+ tests/test_dictionary_lookup.py
50
+ tests/test_llm.py
51
+ tests/test_mock_services.py
52
+ tests/test_servicemanager.py
53
+ tests/test_translation.py
@@ -6,7 +6,7 @@ from setuptools.command.install import install
6
6
  # twine upload dist/*
7
7
 
8
8
  setup(name='cloudlanguagetools',
9
- version='11.3.2',
9
+ version='11.3.3',
10
10
  description='Interface with various cloud APIs for language processing such as translation, text to speech',
11
11
  long_description=open('README.rst', encoding='utf-8').read(),
12
12
  url='https://github.com/Language-Tools/cloud-language-tools-core',