def test_recognize(self): # Setup Expected Response expected_response = {} expected_response = cloud_speech_pb2.RecognizeResponse( **expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = speech_v1p1beta1.SpeechClient() # Setup Request encoding = enums.RecognitionConfig.AudioEncoding.FLAC sample_rate_hertz = 44100 language_code = "en-US" config = { "encoding": encoding, "sample_rate_hertz": sample_rate_hertz, "language_code": language_code, } uri = "gs://bucket_name/file_name.flac" audio = {"uri": uri} response = client.recognize(config, audio) assert expected_response == response assert len(channel.requests) == 1 expected_request = cloud_speech_pb2.RecognizeRequest(config=config, audio=audio) actual_request = channel.requests[0][1] assert expected_request == actual_request
def test_streaming_recognize(self): # Setup Expected Response expected_response = {} expected_response = cloud_speech_pb2.StreamingRecognizeResponse( **expected_response) # Mock the API response channel = ChannelStub(responses=[iter([expected_response])]) patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = speech_v1p1beta1.SpeechClient() # Setup Request request = {} request = cloud_speech_pb2.StreamingRecognizeRequest(**request) requests = [request] response = client.streaming_recognize(requests) resources = list(response) assert len(resources) == 1 assert expected_response == resources[0] assert len(channel.requests) == 1 actual_requests = channel.requests[0][1] assert len(actual_requests) == 1 actual_request = list(actual_requests)[0] assert request == actual_request
def test_recognize(self): # Setup Expected Response expected_response = {} expected_response = cloud_speech_pb2.RecognizeResponse( **expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) client = speech_v1p1beta1.SpeechClient(channel=channel) # Setup Request encoding = enums.RecognitionConfig.AudioEncoding.FLAC sample_rate_hertz = 44100 language_code = 'en-US' config = { 'encoding': encoding, 'sample_rate_hertz': sample_rate_hertz, 'language_code': language_code } uri = 'gs://bucket_name/file_name.flac' audio = {'uri': uri} response = client.recognize(config, audio) assert expected_response == response assert len(channel.requests) == 1 expected_request = cloud_speech_pb2.RecognizeRequest( config=config, audio=audio) actual_request = channel.requests[0][1] assert expected_request == actual_request
def test_long_running_recognize_exception(self): # Setup Response error = status_pb2.Status() operation = operations_pb2.Operation( name="operations/test_long_running_recognize_exception", done=True) operation.error.CopyFrom(error) # Mock the API response channel = ChannelStub(responses=[operation]) patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = speech_v1p1beta1.SpeechClient() # Setup Request encoding = enums.RecognitionConfig.AudioEncoding.FLAC sample_rate_hertz = 44100 language_code = "en-US" config = { "encoding": encoding, "sample_rate_hertz": sample_rate_hertz, "language_code": language_code, } uri = "gs://bucket_name/file_name.flac" audio = {"uri": uri} response = client.long_running_recognize(config, audio) exception = response.exception() assert exception.errors[0] == error
def test_streaming_recognize(self): # Setup Expected Response expected_response = {} expected_response = cloud_speech_pb2.StreamingRecognizeResponse( **expected_response) # Mock the API response channel = ChannelStub(responses=[iter([expected_response])]) client = speech_v1p1beta1.SpeechClient(channel=channel) # Setup Request request = {} request = cloud_speech_pb2.StreamingRecognizeRequest(**request) requests = [request] response = client.streaming_recognize(requests) resources = list(response) assert len(resources) == 1 assert expected_response == resources[0] assert len(channel.requests) == 1 actual_requests = channel.requests[0][1] assert len(actual_requests) == 1 actual_request = list(actual_requests)[0] assert request == actual_request
def test_long_running_recognize_exception(self): # Setup Response error = status_pb2.Status() operation = operations_pb2.Operation( name='operations/test_long_running_recognize_exception', done=True) operation.error.CopyFrom(error) # Mock the API response channel = ChannelStub(responses=[operation]) client = speech_v1p1beta1.SpeechClient(channel=channel) # Setup Request encoding = enums.RecognitionConfig.AudioEncoding.FLAC sample_rate_hertz = 44100 language_code = 'en-US' config = { 'encoding': encoding, 'sample_rate_hertz': sample_rate_hertz, 'language_code': language_code } uri = 'gs://bucket_name/file_name.flac' audio = {'uri': uri} response = client.long_running_recognize(config, audio) exception = response.exception() assert exception.errors[0] == error
def test_streaming_recognize_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) client = speech_v1p1beta1.SpeechClient(channel=channel) # Setup request request = {} request = cloud_speech_pb2.StreamingRecognizeRequest(**request) requests = [request] with pytest.raises(CustomException): client.streaming_recognize(requests)
def test_streaming_recognize_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = speech_v1p1beta1.SpeechClient() # Setup request request = {} request = cloud_speech_pb2.StreamingRecognizeRequest(**request) requests = [request] with pytest.raises(CustomException): client.streaming_recognize(requests)
def google_transcribe(audio_file_name): file_name = filepath + audio_file_name bucket_name = bucketname source_file_name = filepath + audio_file_name destination_blob_name = audio_file_name upload_blob(bucket_name, source_file_name, destination_blob_name) gcs_uri = 'gs://' + bucketname + '/' + audio_file_name transcript = '' client = speech_client.SpeechClient() first_lang = 'hi-IN' second_lang = 'en' audio = speech.RecognitionAudio(uri=gcs_uri) config = speech.RecognitionConfig( encoding=speech.RecognitionConfig.AudioEncoding.LINEAR16, sample_rate_hertz=8000, language_code=first_lang, audio_channel_count=1, enable_separate_recognition_per_channel=False, max_alternatives=6, ) operation = client.long_running_recognize(config, audio) response = operation.result(timeout=10000) confidence = 0 num = 0 for result in response.results: con = 0 tran = '' for alternative in result.alternatives: if (alternative.confidence > con): con = alternative.confidence tran = alternative.transcript transcript += tran confidence = con return transcript, confidence
def test_recognize_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) client = speech_v1p1beta1.SpeechClient(channel=channel) # Setup request encoding = enums.RecognitionConfig.AudioEncoding.FLAC sample_rate_hertz = 44100 language_code = 'en-US' config = { 'encoding': encoding, 'sample_rate_hertz': sample_rate_hertz, 'language_code': language_code } uri = 'gs://bucket_name/file_name.flac' audio = {'uri': uri} with pytest.raises(CustomException): client.recognize(config, audio)
def test_recognize_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = speech_v1p1beta1.SpeechClient() # Setup request encoding = enums.RecognitionConfig.AudioEncoding.FLAC sample_rate_hertz = 44100 language_code = "en-US" config = { "encoding": encoding, "sample_rate_hertz": sample_rate_hertz, "language_code": language_code, } uri = "gs://bucket_name/file_name.flac" audio = {"uri": uri} with pytest.raises(CustomException): client.recognize(config, audio)
def test_long_running_recognize(self): # Setup Expected Response expected_response = {} expected_response = cloud_speech_pb2.LongRunningRecognizeResponse( **expected_response) operation = operations_pb2.Operation( name='operations/test_long_running_recognize', done=True) operation.response.Pack(expected_response) # Mock the API response channel = ChannelStub(responses=[operation]) patch = mock.patch('google.api_core.grpc_helpers.create_channel') with patch as create_channel: create_channel.return_value = channel client = speech_v1p1beta1.SpeechClient() # Setup Request encoding = enums.RecognitionConfig.AudioEncoding.FLAC sample_rate_hertz = 44100 language_code = 'en-US' config = { 'encoding': encoding, 'sample_rate_hertz': sample_rate_hertz, 'language_code': language_code } uri = 'gs://bucket_name/file_name.flac' audio = {'uri': uri} response = client.long_running_recognize(config, audio) result = response.result() assert expected_response == result assert len(channel.requests) == 1 expected_request = cloud_speech_pb2.LongRunningRecognizeRequest( config=config, audio=audio) actual_request = channel.requests[0][1] assert expected_request == actual_request