# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT!
"""Client and server classes corresponding to protobuf-defined services."""
import grpc

from phonexia.grpc.technologies.speech_to_text_whisper_enhanced.v1 import speech_to_text_whisper_enhanced_pb2 as phonexia_dot_grpc_dot_technologies_dot_speech__to__text__whisper__enhanced_dot_v1_dot_speech__to__text__whisper__enhanced__pb2


class SpeechToTextStub(object):
    """Service implementing speech-to-text transcription.
    """

    def __init__(self, channel):
        """Constructor.

        Args:
            channel: A grpc.Channel.
        """
        self.Transcribe = channel.stream_stream(
                '/phonexia.grpc.technologies.speech_to_text_whisper_enhanced.v1.SpeechToText/Transcribe',
                request_serializer=phonexia_dot_grpc_dot_technologies_dot_speech__to__text__whisper__enhanced_dot_v1_dot_speech__to__text__whisper__enhanced__pb2.TranscribeRequest.SerializeToString,
                response_deserializer=phonexia_dot_grpc_dot_technologies_dot_speech__to__text__whisper__enhanced_dot_v1_dot_speech__to__text__whisper__enhanced__pb2.TranscribeResponse.FromString,
                )
        self.ListSupportedLanguages = channel.unary_unary(
                '/phonexia.grpc.technologies.speech_to_text_whisper_enhanced.v1.SpeechToText/ListSupportedLanguages',
                request_serializer=phonexia_dot_grpc_dot_technologies_dot_speech__to__text__whisper__enhanced_dot_v1_dot_speech__to__text__whisper__enhanced__pb2.ListSupportedLanguagesRequest.SerializeToString,
                response_deserializer=phonexia_dot_grpc_dot_technologies_dot_speech__to__text__whisper__enhanced_dot_v1_dot_speech__to__text__whisper__enhanced__pb2.ListSupportedLanguagesResponse.FromString,
                )


class SpeechToTextServicer(object):
    """Service implementing speech-to-text transcription.
    """

    def Transcribe(self, request_iterator, context):
        """Performs synchronous speech-to-text transcription. Receives results while
        the audio is being transcribed. The transcription starts after the whole
        audio has been received.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def ListSupportedLanguages(self, request, context):
        """Method to retrieve supported languages.
        Models can be monolingual or multilingual.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')


def add_SpeechToTextServicer_to_server(servicer, server):
    rpc_method_handlers = {
            'Transcribe': grpc.stream_stream_rpc_method_handler(
                    servicer.Transcribe,
                    request_deserializer=phonexia_dot_grpc_dot_technologies_dot_speech__to__text__whisper__enhanced_dot_v1_dot_speech__to__text__whisper__enhanced__pb2.TranscribeRequest.FromString,
                    response_serializer=phonexia_dot_grpc_dot_technologies_dot_speech__to__text__whisper__enhanced_dot_v1_dot_speech__to__text__whisper__enhanced__pb2.TranscribeResponse.SerializeToString,
            ),
            'ListSupportedLanguages': grpc.unary_unary_rpc_method_handler(
                    servicer.ListSupportedLanguages,
                    request_deserializer=phonexia_dot_grpc_dot_technologies_dot_speech__to__text__whisper__enhanced_dot_v1_dot_speech__to__text__whisper__enhanced__pb2.ListSupportedLanguagesRequest.FromString,
                    response_serializer=phonexia_dot_grpc_dot_technologies_dot_speech__to__text__whisper__enhanced_dot_v1_dot_speech__to__text__whisper__enhanced__pb2.ListSupportedLanguagesResponse.SerializeToString,
            ),
    }
    generic_handler = grpc.method_handlers_generic_handler(
            'phonexia.grpc.technologies.speech_to_text_whisper_enhanced.v1.SpeechToText', rpc_method_handlers)
    server.add_generic_rpc_handlers((generic_handler,))


 # This class is part of an EXPERIMENTAL API.
class SpeechToText(object):
    """Service implementing speech-to-text transcription.
    """

    @staticmethod
    def Transcribe(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, '/phonexia.grpc.technologies.speech_to_text_whisper_enhanced.v1.SpeechToText/Transcribe',
            phonexia_dot_grpc_dot_technologies_dot_speech__to__text__whisper__enhanced_dot_v1_dot_speech__to__text__whisper__enhanced__pb2.TranscribeRequest.SerializeToString,
            phonexia_dot_grpc_dot_technologies_dot_speech__to__text__whisper__enhanced_dot_v1_dot_speech__to__text__whisper__enhanced__pb2.TranscribeResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def ListSupportedLanguages(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, '/phonexia.grpc.technologies.speech_to_text_whisper_enhanced.v1.SpeechToText/ListSupportedLanguages',
            phonexia_dot_grpc_dot_technologies_dot_speech__to__text__whisper__enhanced_dot_v1_dot_speech__to__text__whisper__enhanced__pb2.ListSupportedLanguagesRequest.SerializeToString,
            phonexia_dot_grpc_dot_technologies_dot_speech__to__text__whisper__enhanced_dot_v1_dot_speech__to__text__whisper__enhanced__pb2.ListSupportedLanguagesResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
