diff --git a/python/snippets/stt_streaming_recognize_context.py b/python/snippets/stt_streaming_recognize_context.py index 13664c3..ab95140 100755 --- a/python/snippets/stt_streaming_recognize_context.py +++ b/python/snippets/stt_streaming_recognize_context.py @@ -68,7 +68,8 @@ def print_streaming_recognition_responses(responses): print('"' + alternative.transcript + '"') print("------------------") -stub = stt_pb2_grpc.SpeechToTextStub(grpc.secure_channel(endpoint, grpc.ssl_channel_credentials())) +#stub = stt_pb2_grpc.SpeechToTextStub(grpc.secure_channel(endpoint, grpc.ssl_channel_credentials())) +stub = stt_pb2_grpc.SpeechToTextStub(grpc.insecure_channel(endpoint)) metadata = authorization_metadata(api_key, secret_key, "tinkoff.cloud.stt") responses = stub.StreamingRecognize(generate_repeated_requests(3), metadata=metadata) print_streaming_recognition_responses(responses) diff --git a/python/snippets/stt_streaming_recognize_context_dictionaries.py b/python/snippets/stt_streaming_recognize_context_dictionaries.py new file mode 100755 index 0000000..c80dee1 --- /dev/null +++ b/python/snippets/stt_streaming_recognize_context_dictionaries.py @@ -0,0 +1,71 @@ +#!/usr/bin/env python3 + +import sys +sys.path.append("..") + +from tinkoff.cloud.stt.v1 import stt_pb2_grpc, stt_pb2 +from auth import authorization_metadata +import grpc +import os +import wave + +endpoint = os.environ.get("VOICEKIT_ENDPOINT") or "api.tinkoff.ai:443" +api_key = os.environ["VOICEKIT_API_KEY"] +secret_key = os.environ["VOICEKIT_SECRET_KEY"] + +def build_first_request(sample_rate_hertz, num_channels, context): + request = stt_pb2.StreamingRecognizeRequest() + request.streaming_config.config.encoding = stt_pb2.AudioEncoding.LINEAR16 + request.streaming_config.config.sample_rate_hertz = sample_rate_hertz + request.streaming_config.config.num_channels = num_channels + # ВАЖНО! + # Не рекомендуется: + # - добавление слов короче 5 символов + # - выставление score в слишком большое значение + request.streaming_config.config.speech_contexts.append(context) + return request + +def generate_requests(context): + try: + with wave.open("../../audio/numbers.wav") as f: + yield build_first_request(f.getframerate(), f.getnchannels(), context) + frame_samples = f.getframerate()//10 # Send 100ms at a time + for data in iter(lambda:f.readframes(frame_samples), b''): + request = stt_pb2.StreamingRecognizeRequest() + request.audio_content = data + yield request + # Sending 1 second of silence + for i in range(10): + request = stt_pb2.StreamingRecognizeRequest() + request.audio_content = bytes(frame_samples) + yield request + except Exception as e: + print("Got exception in generate_requests", e) + raise + +def generate_repeated_requests(times_repeated): + context = stt_pb2.SpeechContext(speech_context_dictionary_id = "numbers") + null_context = stt_pb2.SpeechContext(phrases = []) + # Контекст может быть указан несколько раз во время стриминговой сессии + # В этом примере чередуется добавление контекста и его сброс + # Стоит отметить, что для сброса контекста нужно переслать SpeechContext с пустым списком фраз + for i in range(times_repeated): + for request in generate_requests(context if (i % 2 == 1) else null_context): + yield request + + +def print_streaming_recognition_responses(responses): + for response in responses: + for result in response.results: + print("Channel", result.recognition_result.channel) + print("Phrase start:", result.recognition_result.start_time.ToTimedelta()) + print("Phrase end: ", result.recognition_result.end_time.ToTimedelta()) + for alternative in result.recognition_result.alternatives: + print('"' + alternative.transcript + '"') + print("------------------") + +#stub = stt_pb2_grpc.SpeechToTextStub(grpc.secure_channel(endpoint, grpc.ssl_channel_credentials())) +stub = stt_pb2_grpc.SpeechToTextStub(grpc.insecure_channel(endpoint)) +metadata = authorization_metadata(api_key, secret_key, "tinkoff.cloud.stt") +responses = stub.StreamingRecognize(generate_repeated_requests(3), metadata=metadata) +print_streaming_recognition_responses(responses) diff --git a/python/tinkoff/cloud/stt/v1/stt_pb2_grpc.py b/python/tinkoff/cloud/stt/v1/stt_pb2_grpc.py index cefbdf3..95165e9 100644 --- a/python/tinkoff/cloud/stt/v1/stt_pb2_grpc.py +++ b/python/tinkoff/cloud/stt/v1/stt_pb2_grpc.py @@ -1,5 +1,4 @@ # Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! -"""Client and server classes corresponding to protobuf-defined services.""" import grpc from tinkoff.cloud.longrunning.v1 import longrunning_pb2 as tinkoff_dot_cloud_dot_longrunning_dot_v1_dot_longrunning__pb2 @@ -7,133 +6,76 @@ class SpeechToTextStub(object): - """Speech recognition. - """ - - def __init__(self, channel): - """Constructor. - - Args: - channel: A grpc.Channel. - """ - self.Recognize = channel.unary_unary( - '/tinkoff.cloud.stt.v1.SpeechToText/Recognize', - request_serializer=tinkoff_dot_cloud_dot_stt_dot_v1_dot_stt__pb2.RecognizeRequest.SerializeToString, - response_deserializer=tinkoff_dot_cloud_dot_stt_dot_v1_dot_stt__pb2.RecognizeResponse.FromString, - ) - self.StreamingRecognize = channel.stream_stream( - '/tinkoff.cloud.stt.v1.SpeechToText/StreamingRecognize', - request_serializer=tinkoff_dot_cloud_dot_stt_dot_v1_dot_stt__pb2.StreamingRecognizeRequest.SerializeToString, - response_deserializer=tinkoff_dot_cloud_dot_stt_dot_v1_dot_stt__pb2.StreamingRecognizeResponse.FromString, - ) - self.LongRunningRecognize = channel.unary_unary( - '/tinkoff.cloud.stt.v1.SpeechToText/LongRunningRecognize', - request_serializer=tinkoff_dot_cloud_dot_stt_dot_v1_dot_stt__pb2.LongRunningRecognizeRequest.SerializeToString, - response_deserializer=tinkoff_dot_cloud_dot_longrunning_dot_v1_dot_longrunning__pb2.Operation.FromString, - ) + """Speech recognition + """ + def __init__(self, channel): + """Constructor. -class SpeechToTextServicer(object): - """Speech recognition. + Args: + channel: A grpc.Channel. """ + self.Recognize = channel.unary_unary( + '/tinkoff.cloud.stt.v1.SpeechToText/Recognize', + request_serializer=tinkoff_dot_cloud_dot_stt_dot_v1_dot_stt__pb2.RecognizeRequest.SerializeToString, + response_deserializer=tinkoff_dot_cloud_dot_stt_dot_v1_dot_stt__pb2.RecognizeResponse.FromString, + ) + self.StreamingRecognize = channel.stream_stream( + '/tinkoff.cloud.stt.v1.SpeechToText/StreamingRecognize', + request_serializer=tinkoff_dot_cloud_dot_stt_dot_v1_dot_stt__pb2.StreamingRecognizeRequest.SerializeToString, + response_deserializer=tinkoff_dot_cloud_dot_stt_dot_v1_dot_stt__pb2.StreamingRecognizeResponse.FromString, + ) + self.LongRunningRecognize = channel.unary_unary( + '/tinkoff.cloud.stt.v1.SpeechToText/LongRunningRecognize', + request_serializer=tinkoff_dot_cloud_dot_stt_dot_v1_dot_stt__pb2.LongRunningRecognizeRequest.SerializeToString, + response_deserializer=tinkoff_dot_cloud_dot_longrunning_dot_v1_dot_longrunning__pb2.Operation.FromString, + ) - def Recognize(self, request, context): - """Method to recognize whole audio at once: sending complete audio, getting complete recognition result. - """ - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details('Method not implemented!') - raise NotImplementedError('Method not implemented!') - - def StreamingRecognize(self, request_iterator, context): - """Method for streaming recognition. - """ - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details('Method not implemented!') - raise NotImplementedError('Method not implemented!') - - def LongRunningRecognize(self, request, context): - """Method to create longrunning recognition operation. Created operation will persist for a limited time and will be deleted after that time has expired. - """ - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details('Method not implemented!') - raise NotImplementedError('Method not implemented!') +class SpeechToTextServicer(object): + """Speech recognition + """ -def add_SpeechToTextServicer_to_server(servicer, server): - rpc_method_handlers = { - 'Recognize': grpc.unary_unary_rpc_method_handler( - servicer.Recognize, - request_deserializer=tinkoff_dot_cloud_dot_stt_dot_v1_dot_stt__pb2.RecognizeRequest.FromString, - response_serializer=tinkoff_dot_cloud_dot_stt_dot_v1_dot_stt__pb2.RecognizeResponse.SerializeToString, - ), - 'StreamingRecognize': grpc.stream_stream_rpc_method_handler( - servicer.StreamingRecognize, - request_deserializer=tinkoff_dot_cloud_dot_stt_dot_v1_dot_stt__pb2.StreamingRecognizeRequest.FromString, - response_serializer=tinkoff_dot_cloud_dot_stt_dot_v1_dot_stt__pb2.StreamingRecognizeResponse.SerializeToString, - ), - 'LongRunningRecognize': grpc.unary_unary_rpc_method_handler( - servicer.LongRunningRecognize, - request_deserializer=tinkoff_dot_cloud_dot_stt_dot_v1_dot_stt__pb2.LongRunningRecognizeRequest.FromString, - response_serializer=tinkoff_dot_cloud_dot_longrunning_dot_v1_dot_longrunning__pb2.Operation.SerializeToString, - ), - } - generic_handler = grpc.method_handlers_generic_handler( - 'tinkoff.cloud.stt.v1.SpeechToText', rpc_method_handlers) - server.add_generic_rpc_handlers((generic_handler,)) - + def Recognize(self, request, context): + """Method to recognize whole audio at once: sending complete audio, getting complete recognition result. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') - # This class is part of an EXPERIMENTAL API. -class SpeechToText(object): - """Speech recognition. + def StreamingRecognize(self, request_iterator, context): + """Method for streaming recognition. """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') - @staticmethod - def Recognize(request, - target, - options=(), - channel_credentials=None, - call_credentials=None, - insecure=False, - compression=None, - wait_for_ready=None, - timeout=None, - metadata=None): - return grpc.experimental.unary_unary(request, target, '/tinkoff.cloud.stt.v1.SpeechToText/Recognize', - tinkoff_dot_cloud_dot_stt_dot_v1_dot_stt__pb2.RecognizeRequest.SerializeToString, - tinkoff_dot_cloud_dot_stt_dot_v1_dot_stt__pb2.RecognizeResponse.FromString, - options, channel_credentials, - insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + def LongRunningRecognize(self, request, context): + """Method to create longrunning recognition operation. Created operation will persist for a limited time and will be deleted after that time has expired. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') - @staticmethod - def StreamingRecognize(request_iterator, - target, - options=(), - channel_credentials=None, - call_credentials=None, - insecure=False, - compression=None, - wait_for_ready=None, - timeout=None, - metadata=None): - return grpc.experimental.stream_stream(request_iterator, target, '/tinkoff.cloud.stt.v1.SpeechToText/StreamingRecognize', - tinkoff_dot_cloud_dot_stt_dot_v1_dot_stt__pb2.StreamingRecognizeRequest.SerializeToString, - tinkoff_dot_cloud_dot_stt_dot_v1_dot_stt__pb2.StreamingRecognizeResponse.FromString, - options, channel_credentials, - insecure, call_credentials, compression, wait_for_ready, timeout, metadata) - @staticmethod - def LongRunningRecognize(request, - target, - options=(), - channel_credentials=None, - call_credentials=None, - insecure=False, - compression=None, - wait_for_ready=None, - timeout=None, - metadata=None): - return grpc.experimental.unary_unary(request, target, '/tinkoff.cloud.stt.v1.SpeechToText/LongRunningRecognize', - tinkoff_dot_cloud_dot_stt_dot_v1_dot_stt__pb2.LongRunningRecognizeRequest.SerializeToString, - tinkoff_dot_cloud_dot_longrunning_dot_v1_dot_longrunning__pb2.Operation.FromString, - options, channel_credentials, - insecure, call_credentials, compression, wait_for_ready, timeout, metadata) +def add_SpeechToTextServicer_to_server(servicer, server): + rpc_method_handlers = { + 'Recognize': grpc.unary_unary_rpc_method_handler( + servicer.Recognize, + request_deserializer=tinkoff_dot_cloud_dot_stt_dot_v1_dot_stt__pb2.RecognizeRequest.FromString, + response_serializer=tinkoff_dot_cloud_dot_stt_dot_v1_dot_stt__pb2.RecognizeResponse.SerializeToString, + ), + 'StreamingRecognize': grpc.stream_stream_rpc_method_handler( + servicer.StreamingRecognize, + request_deserializer=tinkoff_dot_cloud_dot_stt_dot_v1_dot_stt__pb2.StreamingRecognizeRequest.FromString, + response_serializer=tinkoff_dot_cloud_dot_stt_dot_v1_dot_stt__pb2.StreamingRecognizeResponse.SerializeToString, + ), + 'LongRunningRecognize': grpc.unary_unary_rpc_method_handler( + servicer.LongRunningRecognize, + request_deserializer=tinkoff_dot_cloud_dot_stt_dot_v1_dot_stt__pb2.LongRunningRecognizeRequest.FromString, + response_serializer=tinkoff_dot_cloud_dot_longrunning_dot_v1_dot_longrunning__pb2.Operation.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'tinkoff.cloud.stt.v1.SpeechToText', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) diff --git a/python/tinkoff/cloud/tts/v1/tts_pb2.py b/python/tinkoff/cloud/tts/v1/tts_pb2.py index 5fceb55..45fbe81 100644 --- a/python/tinkoff/cloud/tts/v1/tts_pb2.py +++ b/python/tinkoff/cloud/tts/v1/tts_pb2.py @@ -1,7 +1,9 @@ # -*- coding: utf-8 -*- # Generated by the protocol buffer compiler. DO NOT EDIT! # source: tinkoff/cloud/tts/v1/tts.proto -"""Generated protocol buffer code.""" + +import sys +_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1')) from google.protobuf.internal import enum_type_wrapper from google.protobuf import descriptor as _descriptor from google.protobuf import message as _message @@ -13,50 +15,45 @@ from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 +from protoc_gen_openapiv2.options import annotations_pb2 as protoc__gen__openapiv2_dot_options_dot_annotations__pb2 DESCRIPTOR = _descriptor.FileDescriptor( name='tinkoff/cloud/tts/v1/tts.proto', package='tinkoff.cloud.tts.v1', syntax='proto3', - serialized_options=b'ZDgithub.com/Tinkoff/voicekit-examples/golang/pkg/tinkoff/cloud/tts/v1\242\002\005TVKSS', - create_key=_descriptor._internal_create_key, - serialized_pb=b'\n\x1etinkoff/cloud/tts/v1/tts.proto\x12\x14tinkoff.cloud.tts.v1\x1a\x1cgoogle/api/annotations.proto\"_\n\x05Voice\x12\x0c\n\x04name\x18\x02 \x01(\tJ\x04\x08\x01\x10\x02J\x04\x08\x03\x10\x04J\x04\x08\x04\x10\x05R\x0elanguage_codesR\x0bssml_genderR\x19natural_sample_rate_hertz\"(\n\x11ListVoicesRequestJ\x04\x08\x01\x10\x02R\rlanguage_code\"B\n\x13ListVoicesResponses\x12+\n\x06voices\x18\x01 \x03(\x0b\x32\x1b.tinkoff.cloud.tts.v1.Voice\",\n\x0eSynthesisInput\x12\x0c\n\x04text\x18\x01 \x01(\t\x12\x0c\n\x04ssml\x18\x02 \x01(\t\"L\n\x14VoiceSelectionParams\x12\x0c\n\x04name\x18\x02 \x01(\tJ\x04\x08\x01\x10\x02J\x04\x08\x03\x10\x04R\rlanguage_codeR\x0bssml_gender\"\x9d\x01\n\x0b\x41udioConfig\x12;\n\x0e\x61udio_encoding\x18\x01 \x01(\x0e\x32#.tinkoff.cloud.tts.v1.AudioEncoding\x12\x19\n\x11sample_rate_hertz\x18\x05 \x01(\x05J\x04\x08\x02\x10\x03J\x04\x08\x03\x10\x04J\x04\x08\x04\x10\x05R\rspeaking_rateR\x05pitchR\x0evolume_gain_db\"\xc2\x01\n\x17SynthesizeSpeechRequest\x12\x33\n\x05input\x18\x01 \x01(\x0b\x32$.tinkoff.cloud.tts.v1.SynthesisInput\x12\x39\n\x05voice\x18\x02 \x01(\x0b\x32*.tinkoff.cloud.tts.v1.VoiceSelectionParams\x12\x37\n\x0c\x61udio_config\x18\x03 \x01(\x0b\x32!.tinkoff.cloud.tts.v1.AudioConfig\"1\n\x18SynthesizeSpeechResponse\x12\x15\n\raudio_content\x18\x01 \x01(\x0c\"8\n!StreamingSynthesizeSpeechResponse\x12\x13\n\x0b\x61udio_chunk\x18\x01 \x01(\x0c*\xe4\x01\n\rAudioEncoding\x12\x18\n\x14\x45NCODING_UNSPECIFIED\x10\x00\x12\x0c\n\x08LINEAR16\x10\x01\x12\x08\n\x04\x41LAW\x10\x08\x12\x0c\n\x08RAW_OPUS\x10\x0b\"\x04\x08\x02\x10\x02\"\x04\x08\x03\x10\x03\"\x04\x08\x04\x10\x04\"\x04\x08\x05\x10\x05\"\x04\x08\x06\x10\x06\"\x04\x08\x07\x10\x07\"\x04\x08\t\x10\t\"\x04\x08\n\x10\n\"\x04\x08\x0c\x10\x0c*\x04\x46LAC*\x05MULAW*\x03\x41MR*\x06\x41MR_WB*\x08OGG_OPUS*\x16SPEEX_WITH_HEADER_BYTE*\tLINEAR32F*\nOGG_VORBIS*\nMPEG_AUDIO2\x9b\x03\n\x0cTextToSpeech\x12}\n\nListVoices\x12\'.tinkoff.cloud.tts.v1.ListVoicesRequest\x1a).tinkoff.cloud.tts.v1.ListVoicesResponses\"\x1b\x82\xd3\xe4\x93\x02\x15\x12\x13/v1/tts:list_voices\x12\x8a\x01\n\nSynthesize\x12-.tinkoff.cloud.tts.v1.SynthesizeSpeechRequest\x1a..tinkoff.cloud.tts.v1.SynthesizeSpeechResponse\"\x1d\x82\xd3\xe4\x93\x02\x17\"\x12/v1/tts:synthesize:\x01*\x12\x7f\n\x13StreamingSynthesize\x12-.tinkoff.cloud.tts.v1.SynthesizeSpeechRequest\x1a\x37.tinkoff.cloud.tts.v1.StreamingSynthesizeSpeechResponse0\x01\x42NZDgithub.com/Tinkoff/voicekit-examples/golang/pkg/tinkoff/cloud/tts/v1\xa2\x02\x05TVKSSb\x06proto3' + serialized_options=_b('ZDgitlab.tcsbank.ru/speech/tinkoff-cloud-apis/pkg/tinkoff/cloud/tts/v1\222A\242\001\022h\n\033VoiceKit Text To Speech API\"D\n\010VoiceKit\022\033https://voicekit.tinkoff.ru\032\033voicekit_support@tinkoff.ru2\0031.0\032\016api.tinkoff.ai*\002\002\0042\020application/json:\020application/json'), + serialized_pb=_b('\n\x1etinkoff/cloud/tts/v1/tts.proto\x12\x14tinkoff.cloud.tts.v1\x1a\x1cgoogle/api/annotations.proto\x1a.protoc-gen-openapiv2/options/annotations.proto\"_\n\x05Voice\x12\x0c\n\x04name\x18\x02 \x01(\tJ\x04\x08\x01\x10\x02J\x04\x08\x03\x10\x04J\x04\x08\x04\x10\x05R\x0elanguage_codesR\x0bssml_genderR\x19natural_sample_rate_hertz\"(\n\x11ListVoicesRequestJ\x04\x08\x01\x10\x02R\rlanguage_code\"B\n\x13ListVoicesResponses\x12+\n\x06voices\x18\x01 \x03(\x0b\x32\x1b.tinkoff.cloud.tts.v1.Voice\"\xa5\x01\n\rTemplateInput\x12\x10\n\x08template\x18\x01 \x01(\t\x12=\n\x05slots\x18\x02 \x03(\x0b\x32..tinkoff.cloud.tts.v1.TemplateInput.SlotsEntry\x12\x15\n\rbackup_phrase\x18\x03 \x01(\t\x1a,\n\nSlotsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\",\n\x0eSynthesisInput\x12\x0c\n\x04text\x18\x01 \x01(\t\x12\x0c\n\x04ssml\x18\x02 \x01(\t\"L\n\x14VoiceSelectionParams\x12\x0c\n\x04name\x18\x02 \x01(\tJ\x04\x08\x01\x10\x02J\x04\x08\x03\x10\x04R\rlanguage_codeR\x0bssml_gender\"\xb5\x01\n\x0b\x41udioConfig\x12;\n\x0e\x61udio_encoding\x18\x01 \x01(\x0e\x32#.tinkoff.cloud.tts.v1.AudioEncoding\x12\x19\n\x11sample_rate_hertz\x18\x05 \x01(\x05:\x16\x92\x41\x13\n\x11\xd2\x01\x0e\x61udio_encodingJ\x04\x08\x02\x10\x03J\x04\x08\x03\x10\x04J\x04\x08\x04\x10\x05R\rspeaking_rateR\x05pitchR\x0evolume_gain_db\"\xff\x01\n\x17SynthesizeSpeechRequest\x12\x33\n\x05input\x18\x01 \x01(\x0b\x32$.tinkoff.cloud.tts.v1.SynthesisInput\x12\x39\n\x05voice\x18\x02 \x01(\x0b\x32*.tinkoff.cloud.tts.v1.VoiceSelectionParams\x12\x37\n\x0c\x61udio_config\x18\x03 \x01(\x0b\x32!.tinkoff.cloud.tts.v1.AudioConfig\x12;\n\x0etemplate_input\x18\x04 \x01(\x0b\x32#.tinkoff.cloud.tts.v1.TemplateInput\"1\n\x18SynthesizeSpeechResponse\x12\x15\n\raudio_content\x18\x01 \x01(\x0c\"8\n!StreamingSynthesizeSpeechResponse\x12\x13\n\x0b\x61udio_chunk\x18\x01 \x01(\x0c*\xe4\x01\n\rAudioEncoding\x12\x18\n\x14\x45NCODING_UNSPECIFIED\x10\x00\x12\x0c\n\x08LINEAR16\x10\x01\x12\x08\n\x04\x41LAW\x10\x08\x12\x0c\n\x08RAW_OPUS\x10\x0b\"\x04\x08\x02\x10\x02\"\x04\x08\x03\x10\x03\"\x04\x08\x04\x10\x04\"\x04\x08\x05\x10\x05\"\x04\x08\x06\x10\x06\"\x04\x08\x07\x10\x07\"\x04\x08\t\x10\t\"\x04\x08\n\x10\n\"\x04\x08\x0c\x10\x0c*\x04\x46LAC*\x05MULAW*\x03\x41MR*\x06\x41MR_WB*\x08OGG_OPUS*\x16SPEEX_WITH_HEADER_BYTE*\tLINEAR32F*\nOGG_VORBIS*\nMPEG_AUDIO2\x9b\x03\n\x0cTextToSpeech\x12}\n\nListVoices\x12\'.tinkoff.cloud.tts.v1.ListVoicesRequest\x1a).tinkoff.cloud.tts.v1.ListVoicesResponses\"\x1b\x82\xd3\xe4\x93\x02\x15\x12\x13/v1/tts:list_voices\x12\x8a\x01\n\nSynthesize\x12-.tinkoff.cloud.tts.v1.SynthesizeSpeechRequest\x1a..tinkoff.cloud.tts.v1.SynthesizeSpeechResponse\"\x1d\x82\xd3\xe4\x93\x02\x17\"\x12/v1/tts:synthesize:\x01*\x12\x7f\n\x13StreamingSynthesize\x12-.tinkoff.cloud.tts.v1.SynthesizeSpeechRequest\x1a\x37.tinkoff.cloud.tts.v1.StreamingSynthesizeSpeechResponse0\x01\x42\xec\x01ZDgitlab.tcsbank.ru/speech/tinkoff-cloud-apis/pkg/tinkoff/cloud/tts/v1\x92\x41\xa2\x01\x12h\n\x1bVoiceKit Text To Speech API\"D\n\x08VoiceKit\x12\x1bhttps://voicekit.tinkoff.ru\x1a\x1bvoicekit_support@tinkoff.ru2\x03\x31.0\x1a\x0e\x61pi.tinkoff.ai*\x02\x02\x04\x32\x10\x61pplication/json:\x10\x61pplication/jsonb\x06proto3') , - dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,protoc__gen__openapiv2_dot_options_dot_annotations__pb2.DESCRIPTOR,]) _AUDIOENCODING = _descriptor.EnumDescriptor( name='AudioEncoding', full_name='tinkoff.cloud.tts.v1.AudioEncoding', filename=None, file=DESCRIPTOR, - create_key=_descriptor._internal_create_key, values=[ _descriptor.EnumValueDescriptor( name='ENCODING_UNSPECIFIED', index=0, number=0, serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), + type=None), _descriptor.EnumValueDescriptor( name='LINEAR16', index=1, number=1, serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), + type=None), _descriptor.EnumValueDescriptor( name='ALAW', index=2, number=8, serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), + type=None), _descriptor.EnumValueDescriptor( name='RAW_OPUS', index=3, number=11, serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), + type=None), ], containing_type=None, serialized_options=None, - serialized_start=884, - serialized_end=1112, + serialized_start=1185, + serialized_end=1413, ) _sym_db.RegisterEnumDescriptor(_AUDIOENCODING) @@ -74,15 +71,14 @@ filename=None, file=DESCRIPTOR, containing_type=None, - create_key=_descriptor._internal_create_key, fields=[ _descriptor.FieldDescriptor( name='name', full_name='tinkoff.cloud.tts.v1.Voice.name', index=0, number=2, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), + has_default_value=False, default_value=_b("").decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + serialized_options=None, file=DESCRIPTOR), ], extensions=[ ], @@ -95,8 +91,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=86, - serialized_end=181, + serialized_start=134, + serialized_end=229, ) @@ -106,7 +102,6 @@ filename=None, file=DESCRIPTOR, containing_type=None, - create_key=_descriptor._internal_create_key, fields=[ ], extensions=[ @@ -120,8 +115,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=183, - serialized_end=223, + serialized_start=231, + serialized_end=271, ) @@ -131,7 +126,6 @@ filename=None, file=DESCRIPTOR, containing_type=None, - create_key=_descriptor._internal_create_key, fields=[ _descriptor.FieldDescriptor( name='voices', full_name='tinkoff.cloud.tts.v1.ListVoicesResponses.voices', index=0, @@ -139,7 +133,7 @@ has_default_value=False, default_value=[], message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + serialized_options=None, file=DESCRIPTOR), ], extensions=[ ], @@ -152,8 +146,90 @@ extension_ranges=[], oneofs=[ ], - serialized_start=225, - serialized_end=291, + serialized_start=273, + serialized_end=339, +) + + +_TEMPLATEINPUT_SLOTSENTRY = _descriptor.Descriptor( + name='SlotsEntry', + full_name='tinkoff.cloud.tts.v1.TemplateInput.SlotsEntry', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='key', full_name='tinkoff.cloud.tts.v1.TemplateInput.SlotsEntry.key', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='value', full_name='tinkoff.cloud.tts.v1.TemplateInput.SlotsEntry.value', index=1, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=_b('8\001'), + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=463, + serialized_end=507, +) + +_TEMPLATEINPUT = _descriptor.Descriptor( + name='TemplateInput', + full_name='tinkoff.cloud.tts.v1.TemplateInput', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='template', full_name='tinkoff.cloud.tts.v1.TemplateInput.template', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='slots', full_name='tinkoff.cloud.tts.v1.TemplateInput.slots', index=1, + number=2, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='backup_phrase', full_name='tinkoff.cloud.tts.v1.TemplateInput.backup_phrase', index=2, + number=3, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[_TEMPLATEINPUT_SLOTSENTRY, ], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=342, + serialized_end=507, ) @@ -163,22 +239,21 @@ filename=None, file=DESCRIPTOR, containing_type=None, - create_key=_descriptor._internal_create_key, fields=[ _descriptor.FieldDescriptor( name='text', full_name='tinkoff.cloud.tts.v1.SynthesisInput.text', index=0, number=1, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), + has_default_value=False, default_value=_b("").decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( name='ssml', full_name='tinkoff.cloud.tts.v1.SynthesisInput.ssml', index=1, number=2, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), + has_default_value=False, default_value=_b("").decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + serialized_options=None, file=DESCRIPTOR), ], extensions=[ ], @@ -191,8 +266,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=293, - serialized_end=337, + serialized_start=509, + serialized_end=553, ) @@ -202,15 +277,14 @@ filename=None, file=DESCRIPTOR, containing_type=None, - create_key=_descriptor._internal_create_key, fields=[ _descriptor.FieldDescriptor( name='name', full_name='tinkoff.cloud.tts.v1.VoiceSelectionParams.name', index=0, number=2, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), + has_default_value=False, default_value=_b("").decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + serialized_options=None, file=DESCRIPTOR), ], extensions=[ ], @@ -223,8 +297,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=339, - serialized_end=415, + serialized_start=555, + serialized_end=631, ) @@ -234,7 +308,6 @@ filename=None, file=DESCRIPTOR, containing_type=None, - create_key=_descriptor._internal_create_key, fields=[ _descriptor.FieldDescriptor( name='audio_encoding', full_name='tinkoff.cloud.tts.v1.AudioConfig.audio_encoding', index=0, @@ -242,28 +315,28 @@ has_default_value=False, default_value=0, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( name='sample_rate_hertz', full_name='tinkoff.cloud.tts.v1.AudioConfig.sample_rate_hertz', index=1, number=5, type=5, cpp_type=1, label=1, has_default_value=False, default_value=0, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + serialized_options=None, file=DESCRIPTOR), ], extensions=[ ], nested_types=[], enum_types=[ ], - serialized_options=None, + serialized_options=_b('\222A\023\n\021\322\001\016audio_encoding'), is_extendable=False, syntax='proto3', extension_ranges=[], oneofs=[ ], - serialized_start=418, - serialized_end=575, + serialized_start=634, + serialized_end=815, ) @@ -273,7 +346,6 @@ filename=None, file=DESCRIPTOR, containing_type=None, - create_key=_descriptor._internal_create_key, fields=[ _descriptor.FieldDescriptor( name='input', full_name='tinkoff.cloud.tts.v1.SynthesizeSpeechRequest.input', index=0, @@ -281,21 +353,28 @@ has_default_value=False, default_value=None, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( name='voice', full_name='tinkoff.cloud.tts.v1.SynthesizeSpeechRequest.voice', index=1, number=2, type=11, cpp_type=10, label=1, has_default_value=False, default_value=None, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( name='audio_config', full_name='tinkoff.cloud.tts.v1.SynthesizeSpeechRequest.audio_config', index=2, number=3, type=11, cpp_type=10, label=1, has_default_value=False, default_value=None, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='template_input', full_name='tinkoff.cloud.tts.v1.SynthesizeSpeechRequest.template_input', index=3, + number=4, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), ], extensions=[ ], @@ -308,8 +387,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=578, - serialized_end=772, + serialized_start=818, + serialized_end=1073, ) @@ -319,15 +398,14 @@ filename=None, file=DESCRIPTOR, containing_type=None, - create_key=_descriptor._internal_create_key, fields=[ _descriptor.FieldDescriptor( name='audio_content', full_name='tinkoff.cloud.tts.v1.SynthesizeSpeechResponse.audio_content', index=0, number=1, type=12, cpp_type=9, label=1, - has_default_value=False, default_value=b"", + has_default_value=False, default_value=_b(""), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + serialized_options=None, file=DESCRIPTOR), ], extensions=[ ], @@ -340,8 +418,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=774, - serialized_end=823, + serialized_start=1075, + serialized_end=1124, ) @@ -351,15 +429,14 @@ filename=None, file=DESCRIPTOR, containing_type=None, - create_key=_descriptor._internal_create_key, fields=[ _descriptor.FieldDescriptor( name='audio_chunk', full_name='tinkoff.cloud.tts.v1.StreamingSynthesizeSpeechResponse.audio_chunk', index=0, number=1, type=12, cpp_type=9, label=1, - has_default_value=False, default_value=b"", + has_default_value=False, default_value=_b(""), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + serialized_options=None, file=DESCRIPTOR), ], extensions=[ ], @@ -372,18 +449,22 @@ extension_ranges=[], oneofs=[ ], - serialized_start=825, - serialized_end=881, + serialized_start=1126, + serialized_end=1182, ) _LISTVOICESRESPONSES.fields_by_name['voices'].message_type = _VOICE +_TEMPLATEINPUT_SLOTSENTRY.containing_type = _TEMPLATEINPUT +_TEMPLATEINPUT.fields_by_name['slots'].message_type = _TEMPLATEINPUT_SLOTSENTRY _AUDIOCONFIG.fields_by_name['audio_encoding'].enum_type = _AUDIOENCODING _SYNTHESIZESPEECHREQUEST.fields_by_name['input'].message_type = _SYNTHESISINPUT _SYNTHESIZESPEECHREQUEST.fields_by_name['voice'].message_type = _VOICESELECTIONPARAMS _SYNTHESIZESPEECHREQUEST.fields_by_name['audio_config'].message_type = _AUDIOCONFIG +_SYNTHESIZESPEECHREQUEST.fields_by_name['template_input'].message_type = _TEMPLATEINPUT DESCRIPTOR.message_types_by_name['Voice'] = _VOICE DESCRIPTOR.message_types_by_name['ListVoicesRequest'] = _LISTVOICESREQUEST DESCRIPTOR.message_types_by_name['ListVoicesResponses'] = _LISTVOICESRESPONSES +DESCRIPTOR.message_types_by_name['TemplateInput'] = _TEMPLATEINPUT DESCRIPTOR.message_types_by_name['SynthesisInput'] = _SYNTHESISINPUT DESCRIPTOR.message_types_by_name['VoiceSelectionParams'] = _VOICESELECTIONPARAMS DESCRIPTOR.message_types_by_name['AudioConfig'] = _AUDIOCONFIG @@ -414,6 +495,21 @@ }) _sym_db.RegisterMessage(ListVoicesResponses) +TemplateInput = _reflection.GeneratedProtocolMessageType('TemplateInput', (_message.Message,), { + + 'SlotsEntry' : _reflection.GeneratedProtocolMessageType('SlotsEntry', (_message.Message,), { + 'DESCRIPTOR' : _TEMPLATEINPUT_SLOTSENTRY, + '__module__' : 'tinkoff.cloud.tts.v1.tts_pb2' + # @@protoc_insertion_point(class_scope:tinkoff.cloud.tts.v1.TemplateInput.SlotsEntry) + }) + , + 'DESCRIPTOR' : _TEMPLATEINPUT, + '__module__' : 'tinkoff.cloud.tts.v1.tts_pb2' + # @@protoc_insertion_point(class_scope:tinkoff.cloud.tts.v1.TemplateInput) + }) +_sym_db.RegisterMessage(TemplateInput) +_sym_db.RegisterMessage(TemplateInput.SlotsEntry) + SynthesisInput = _reflection.GeneratedProtocolMessageType('SynthesisInput', (_message.Message,), { 'DESCRIPTOR' : _SYNTHESISINPUT, '__module__' : 'tinkoff.cloud.tts.v1.tts_pb2' @@ -458,6 +554,8 @@ DESCRIPTOR._options = None +_TEMPLATEINPUT_SLOTSENTRY._options = None +_AUDIOCONFIG._options = None _TEXTTOSPEECH = _descriptor.ServiceDescriptor( name='TextToSpeech', @@ -465,9 +563,8 @@ file=DESCRIPTOR, index=0, serialized_options=None, - create_key=_descriptor._internal_create_key, - serialized_start=1115, - serialized_end=1526, + serialized_start=1416, + serialized_end=1827, methods=[ _descriptor.MethodDescriptor( name='ListVoices', @@ -476,8 +573,7 @@ containing_service=None, input_type=_LISTVOICESREQUEST, output_type=_LISTVOICESRESPONSES, - serialized_options=b'\202\323\344\223\002\025\022\023/v1/tts:list_voices', - create_key=_descriptor._internal_create_key, + serialized_options=_b('\202\323\344\223\002\025\022\023/v1/tts:list_voices'), ), _descriptor.MethodDescriptor( name='Synthesize', @@ -486,8 +582,7 @@ containing_service=None, input_type=_SYNTHESIZESPEECHREQUEST, output_type=_SYNTHESIZESPEECHRESPONSE, - serialized_options=b'\202\323\344\223\002\027\"\022/v1/tts:synthesize:\001*', - create_key=_descriptor._internal_create_key, + serialized_options=_b('\202\323\344\223\002\027\"\022/v1/tts:synthesize:\001*'), ), _descriptor.MethodDescriptor( name='StreamingSynthesize', @@ -497,7 +592,6 @@ input_type=_SYNTHESIZESPEECHREQUEST, output_type=_STREAMINGSYNTHESIZESPEECHRESPONSE, serialized_options=None, - create_key=_descriptor._internal_create_key, ), ]) _sym_db.RegisterServiceDescriptor(_TEXTTOSPEECH) diff --git a/python/tinkoff/cloud/tts/v1/tts_pb2_grpc.py b/python/tinkoff/cloud/tts/v1/tts_pb2_grpc.py index 2826304..ecfb82c 100644 --- a/python/tinkoff/cloud/tts/v1/tts_pb2_grpc.py +++ b/python/tinkoff/cloud/tts/v1/tts_pb2_grpc.py @@ -1,138 +1,80 @@ # Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! -"""Client and server classes corresponding to protobuf-defined services.""" import grpc from tinkoff.cloud.tts.v1 import tts_pb2 as tinkoff_dot_cloud_dot_tts_dot_v1_dot_tts__pb2 class TextToSpeechStub(object): - """Speech synthesis. - """ - - def __init__(self, channel): - """Constructor. - - Args: - channel: A grpc.Channel. - """ - self.ListVoices = channel.unary_unary( - '/tinkoff.cloud.tts.v1.TextToSpeech/ListVoices', - request_serializer=tinkoff_dot_cloud_dot_tts_dot_v1_dot_tts__pb2.ListVoicesRequest.SerializeToString, - response_deserializer=tinkoff_dot_cloud_dot_tts_dot_v1_dot_tts__pb2.ListVoicesResponses.FromString, - ) - self.Synthesize = channel.unary_unary( - '/tinkoff.cloud.tts.v1.TextToSpeech/Synthesize', - request_serializer=tinkoff_dot_cloud_dot_tts_dot_v1_dot_tts__pb2.SynthesizeSpeechRequest.SerializeToString, - response_deserializer=tinkoff_dot_cloud_dot_tts_dot_v1_dot_tts__pb2.SynthesizeSpeechResponse.FromString, - ) - self.StreamingSynthesize = channel.unary_stream( - '/tinkoff.cloud.tts.v1.TextToSpeech/StreamingSynthesize', - request_serializer=tinkoff_dot_cloud_dot_tts_dot_v1_dot_tts__pb2.SynthesizeSpeechRequest.SerializeToString, - response_deserializer=tinkoff_dot_cloud_dot_tts_dot_v1_dot_tts__pb2.StreamingSynthesizeSpeechResponse.FromString, - ) + """Speech synthesis + """ + def __init__(self, channel): + """Constructor. -class TextToSpeechServicer(object): - """Speech synthesis. + Args: + channel: A grpc.Channel. """ + self.ListVoices = channel.unary_unary( + '/tinkoff.cloud.tts.v1.TextToSpeech/ListVoices', + request_serializer=tinkoff_dot_cloud_dot_tts_dot_v1_dot_tts__pb2.ListVoicesRequest.SerializeToString, + response_deserializer=tinkoff_dot_cloud_dot_tts_dot_v1_dot_tts__pb2.ListVoicesResponses.FromString, + ) + self.Synthesize = channel.unary_unary( + '/tinkoff.cloud.tts.v1.TextToSpeech/Synthesize', + request_serializer=tinkoff_dot_cloud_dot_tts_dot_v1_dot_tts__pb2.SynthesizeSpeechRequest.SerializeToString, + response_deserializer=tinkoff_dot_cloud_dot_tts_dot_v1_dot_tts__pb2.SynthesizeSpeechResponse.FromString, + ) + self.StreamingSynthesize = channel.unary_stream( + '/tinkoff.cloud.tts.v1.TextToSpeech/StreamingSynthesize', + request_serializer=tinkoff_dot_cloud_dot_tts_dot_v1_dot_tts__pb2.SynthesizeSpeechRequest.SerializeToString, + response_deserializer=tinkoff_dot_cloud_dot_tts_dot_v1_dot_tts__pb2.StreamingSynthesizeSpeechResponse.FromString, + ) - def ListVoices(self, request, context): - """Method for retrieving available voices list. - """ - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details('Method not implemented!') - raise NotImplementedError('Method not implemented!') - - def Synthesize(self, request, context): - """Method for the non-streaming synthesis. - """ - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details('Method not implemented!') - raise NotImplementedError('Method not implemented!') - - def StreamingSynthesize(self, request, context): - """Method for streaming synthesis. - """ - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details('Method not implemented!') - raise NotImplementedError('Method not implemented!') +class TextToSpeechServicer(object): + """Speech synthesis + """ -def add_TextToSpeechServicer_to_server(servicer, server): - rpc_method_handlers = { - 'ListVoices': grpc.unary_unary_rpc_method_handler( - servicer.ListVoices, - request_deserializer=tinkoff_dot_cloud_dot_tts_dot_v1_dot_tts__pb2.ListVoicesRequest.FromString, - response_serializer=tinkoff_dot_cloud_dot_tts_dot_v1_dot_tts__pb2.ListVoicesResponses.SerializeToString, - ), - 'Synthesize': grpc.unary_unary_rpc_method_handler( - servicer.Synthesize, - request_deserializer=tinkoff_dot_cloud_dot_tts_dot_v1_dot_tts__pb2.SynthesizeSpeechRequest.FromString, - response_serializer=tinkoff_dot_cloud_dot_tts_dot_v1_dot_tts__pb2.SynthesizeSpeechResponse.SerializeToString, - ), - 'StreamingSynthesize': grpc.unary_stream_rpc_method_handler( - servicer.StreamingSynthesize, - request_deserializer=tinkoff_dot_cloud_dot_tts_dot_v1_dot_tts__pb2.SynthesizeSpeechRequest.FromString, - response_serializer=tinkoff_dot_cloud_dot_tts_dot_v1_dot_tts__pb2.StreamingSynthesizeSpeechResponse.SerializeToString, - ), - } - generic_handler = grpc.method_handlers_generic_handler( - 'tinkoff.cloud.tts.v1.TextToSpeech', rpc_method_handlers) - server.add_generic_rpc_handlers((generic_handler,)) - + def ListVoices(self, request, context): + """Not implemented Method for retrieving available voice list. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') - # This class is part of an EXPERIMENTAL API. -class TextToSpeech(object): - """Speech synthesis. + def Synthesize(self, request, context): + """Not implemented Method for fragment synthesis. """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') - @staticmethod - def ListVoices(request, - target, - options=(), - channel_credentials=None, - call_credentials=None, - insecure=False, - compression=None, - wait_for_ready=None, - timeout=None, - metadata=None): - return grpc.experimental.unary_unary(request, target, '/tinkoff.cloud.tts.v1.TextToSpeech/ListVoices', - tinkoff_dot_cloud_dot_tts_dot_v1_dot_tts__pb2.ListVoicesRequest.SerializeToString, - tinkoff_dot_cloud_dot_tts_dot_v1_dot_tts__pb2.ListVoicesResponses.FromString, - options, channel_credentials, - insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + def StreamingSynthesize(self, request, context): + """Method for streaming synthesis. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') - @staticmethod - def Synthesize(request, - target, - options=(), - channel_credentials=None, - call_credentials=None, - insecure=False, - compression=None, - wait_for_ready=None, - timeout=None, - metadata=None): - return grpc.experimental.unary_unary(request, target, '/tinkoff.cloud.tts.v1.TextToSpeech/Synthesize', - tinkoff_dot_cloud_dot_tts_dot_v1_dot_tts__pb2.SynthesizeSpeechRequest.SerializeToString, - tinkoff_dot_cloud_dot_tts_dot_v1_dot_tts__pb2.SynthesizeSpeechResponse.FromString, - options, channel_credentials, - insecure, call_credentials, compression, wait_for_ready, timeout, metadata) - @staticmethod - def StreamingSynthesize(request, - target, - options=(), - channel_credentials=None, - call_credentials=None, - insecure=False, - compression=None, - wait_for_ready=None, - timeout=None, - metadata=None): - return grpc.experimental.unary_stream(request, target, '/tinkoff.cloud.tts.v1.TextToSpeech/StreamingSynthesize', - tinkoff_dot_cloud_dot_tts_dot_v1_dot_tts__pb2.SynthesizeSpeechRequest.SerializeToString, - tinkoff_dot_cloud_dot_tts_dot_v1_dot_tts__pb2.StreamingSynthesizeSpeechResponse.FromString, - options, channel_credentials, - insecure, call_credentials, compression, wait_for_ready, timeout, metadata) +def add_TextToSpeechServicer_to_server(servicer, server): + rpc_method_handlers = { + 'ListVoices': grpc.unary_unary_rpc_method_handler( + servicer.ListVoices, + request_deserializer=tinkoff_dot_cloud_dot_tts_dot_v1_dot_tts__pb2.ListVoicesRequest.FromString, + response_serializer=tinkoff_dot_cloud_dot_tts_dot_v1_dot_tts__pb2.ListVoicesResponses.SerializeToString, + ), + 'Synthesize': grpc.unary_unary_rpc_method_handler( + servicer.Synthesize, + request_deserializer=tinkoff_dot_cloud_dot_tts_dot_v1_dot_tts__pb2.SynthesizeSpeechRequest.FromString, + response_serializer=tinkoff_dot_cloud_dot_tts_dot_v1_dot_tts__pb2.SynthesizeSpeechResponse.SerializeToString, + ), + 'StreamingSynthesize': grpc.unary_stream_rpc_method_handler( + servicer.StreamingSynthesize, + request_deserializer=tinkoff_dot_cloud_dot_tts_dot_v1_dot_tts__pb2.SynthesizeSpeechRequest.FromString, + response_serializer=tinkoff_dot_cloud_dot_tts_dot_v1_dot_tts__pb2.StreamingSynthesizeSpeechResponse.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'tinkoff.cloud.tts.v1.TextToSpeech', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,))