Skip to content

Commit 21959e9

Browse files
committed
adding text to speech customization
1 parent e92399a commit 21959e9

File tree

3 files changed

+95
-2
lines changed

3 files changed

+95
-2
lines changed

examples/text_to_speech_v1.py

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
# coding=utf-8
12
import json
23
from os.path import join, dirname
34
from watson_developer_cloud import TextToSpeechV1
@@ -11,3 +12,27 @@
1112

1213
with open(join(dirname(__file__), '../resources/output.wav'), 'wb') as audio_file:
1314
audio_file.write(text_to_speech.synthesize('Hello world!'))
15+
16+
print(json.dumps(text_to_speech.pronunciation('Watson', pronunciation_format='spr'), indent=2))
17+
18+
print(json.dumps(text_to_speech.customizations(), indent=2))
19+
20+
# print(json.dumps(text_to_speech.create_customization('test-customization'), indent=2))
21+
22+
# print(text_to_speech.update_customization('YOUR CUSTOMIZATION ID', name='new name'))
23+
24+
# print(json.dumps(text_to_speech.get_customization('YOUR CUSTOMIZATION ID'), indent=2))
25+
26+
# print(json.dumps(text_to_speech.get_customization_words('YOUR CUSTOMIZATION ID'), indent=2))
27+
28+
# print(text_to_speech.add_customization_words('YOUR CUSTOMIZATION ID',
29+
# [{'word': 'resume', 'translation': 'rɛzʊmeɪ'}]))
30+
31+
# print(text_to_speech.set_customization_word('YOUR CUSTOMIZATION ID', word='resume',
32+
# translation='rɛzʊmeɪ'))
33+
34+
# print(json.dumps(text_to_speech.get_customization_word('YOUR CUSTOMIZATION ID', 'resume'), indent=2))
35+
36+
# print(text_to_speech.delete_customization_word('YOUR CUSTOMIZATION ID', 'resume'))
37+
38+
# print(text_to_speech.delete_customization('YOUR CUSTOMIZATION ID'))

watson_developer_cloud/alchemy_data_news_v1.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,14 +25,16 @@ class AlchemyDataNewsV1(WatsonDeveloperCloudService):
2525
def __init__(self, url=default_url, **kwargs):
2626
WatsonDeveloperCloudService.__init__(self, 'alchemy_api', url, **kwargs)
2727

28-
def get_news_documents(self, start, end, max_results=10, query_fields=None, return_fields=None, time_slice=None):
28+
def get_news_documents(self, start, end, max_results=10, query_fields=None, return_fields=None, time_slice=None,
29+
next_page=None):
2930
if isinstance(return_fields, list):
3031
return_fields = ','.join(return_fields)
3132
params = {'start': start,
3233
'end': end,
3334
'maxResults': max_results,
3435
'return': return_fields,
35-
'timeSlice': time_slice}
36+
'timeSlice': time_slice,
37+
'next': next_page}
3638
if isinstance(query_fields, dict):
3739
for key in query_fields:
3840
params[key if key.startswith('q.') else 'q.' + key] = query_fields[key]

watson_developer_cloud/text_to_speech_v1.py

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,3 +46,69 @@ def voices(self):
4646
Returns the list of available voices to use with synthesize
4747
"""
4848
return self.request(method='GET', url='/v1/voices', accept_json=True)
49+
50+
def pronunciation(self, text, voice=None, pronunciation_format='ipa'):
51+
params = {
52+
'text': text,
53+
'voice': voice,
54+
'format': pronunciation_format
55+
}
56+
return self.request(method='GET', url='/v1/pronunciation', params=params, accept_json=True)
57+
58+
def customizations(self, language=None):
59+
params = {
60+
'language': language
61+
}
62+
return self.request(method='GET', url='/v1/customizations', params=params, accept_json=True)
63+
64+
def get_customization(self, customization_id):
65+
customization_id = self.unpack_id(customization_id, 'customization_id')
66+
return self.request(method='GET', url='/v1/customizations/{0}'.format(customization_id), accept_json=True)
67+
68+
def create_customization(self, name, language=None, description=None):
69+
body = {
70+
'name': name,
71+
'language': language,
72+
'description': description
73+
}
74+
return self.request(method='POST', url='/v1/customizations', json=body, accept_json=True)
75+
76+
def update_customization(self, customization_id, name=None, description=None, words=None):
77+
body = {
78+
'name': name,
79+
'description': description,
80+
'words': words
81+
}
82+
return self.request(method='POST', url='/v1/customizations/{0}'.format(customization_id), json=body)
83+
84+
def delete_customization(self, customization_id):
85+
customization_id = self.unpack_id(customization_id, 'customization_id')
86+
return self.request(method='DELETE', url='/v1/customizations/{0}'.format(customization_id))
87+
88+
def get_customization_words(self, customization_id):
89+
customization_id = self.unpack_id(customization_id, 'customization_id')
90+
return self.request(method='GET', url='/v1/customizations/{0}/words'.format(customization_id), accept_json=True)
91+
92+
def add_customization_words(self, customization_id, words):
93+
customization_id = self.unpack_id(customization_id, 'customization_id')
94+
body = {
95+
'words': words
96+
}
97+
return self.request(method='POST', url='/v1/customizations/{0}/words'.format(customization_id), json=body)
98+
99+
def get_customization_word(self, customization_id, word):
100+
customization_id = self.unpack_id(customization_id, 'customization_id')
101+
return self.request(method='GET', url='/v1/customizations/{0}/words/{1}'.format(customization_id, word),
102+
accept_json=True)
103+
104+
def set_customization_word(self, customization_id, word, translation):
105+
customization_id = self.unpack_id(customization_id, 'customization_id')
106+
body = {
107+
'translation': translation
108+
}
109+
return self.request(method='PUT', url='/v1/customizations/{0}/words/{1}'.format(customization_id, word),
110+
json=body)
111+
112+
def delete_customization_word(self, customization_id, word):
113+
customization_id = self.unpack_id(customization_id, 'customization_id')
114+
return self.request(method='DELETE', url='/v1/customizations/{0}/words/{1}'.format(customization_id, word))

0 commit comments

Comments
 (0)