Add same transcription job name case
diff --git a/localstack/services/transcribe/provider.py b/localstack/services/transcribe/provider.py
index 0ebbc3b817f01..3d679b50104f0 100644
--- a/localstack/services/transcribe/provider.py
+++ b/localstack/services/transcribe/provider.py
@@ -12,6 +12,7 @@
 from localstack.aws.api import RequestContext, handler
 from localstack.aws.api.transcribe import (
     BadRequestException,
+    ConflictException,
     GetTranscriptionJobResponse,
     ListTranscriptionJobsResponse,
     MaxResults,
@@ -123,6 +124,11 @@ def start_transcription_job(
 
         store = transcribe_stores[context.account_id][context.region]
 
+        if job_name in store.transcription_jobs:
+            raise ConflictException(
+                "The requested job name already exists. Use a different job name."
+            )
+
         s3_path = request["Media"]["MediaFileUri"]
         output_bucket = request.get("OutputBucketName", get_bucket_and_key_from_s3_uri(s3_path)[0])
         output_key = request.get("OutputKey")
diff --git a/tests/integration/test_transcribe.py b/tests/integration/test_transcribe.py
index 24aa8f729467d..a7792b77dea78 100644
--- a/tests/integration/test_transcribe.py
+++ b/tests/integration/test_transcribe.py
@@ -5,7 +5,7 @@
 import pytest
 from botocore.exceptions import ClientError
 
-from localstack.aws.api.transcribe import BadRequestException, NotFoundException
+from localstack.aws.api.transcribe import BadRequestException, ConflictException, NotFoundException
 from localstack.aws.connect import ServiceLevelClientFactory
 from localstack.utils.files import new_tmp_file
 from localstack.utils.platform import get_arch
@@ -277,3 +277,38 @@ def _cleanup():
             TranscriptionJobName=transcribe_job_name
         )
         snapshot.match("delete-transcription-job", res_delete_transcription_job)
+
+    @pytest.mark.aws_validated
+    @pytest.mark.skip_snapshot_verify(paths=["$..TranscriptionJob..Transcript"])
+    def test_transcribe_start_job_same_name(
+        self,
+        s3_bucket,
+        snapshot,
+        aws_client,
+    ):
+        file_path = os.path.join(BASEDIR, "files/en-gb.wav")
+        test_key = "test-clip.wav"
+        transcribe_job_name = f"test-transcribe-job-{short_uid()}"
+        params = {
+            "TranscriptionJobName": transcribe_job_name,
+            "LanguageCode": "en-GB",
+            "Media": {"MediaFileUri": f"s3://{s3_bucket}/{test_key}"},
+        }
+
+        with open(file_path, "rb") as f:
+            aws_client.s3.upload_fileobj(f, s3_bucket, test_key)
+
+        response_start_job = aws_client.transcribe.start_transcription_job(**params)
+        snapshot.match("response-start-job", response_start_job)
+
+        self._wait_transcription_job(aws_client.transcribe, params["TranscriptionJobName"])
+
+        with pytest.raises((ClientError, ConflictException)) as e:
+            aws_client.transcribe.start_transcription_job(**params)
+
+        snapshot.match("same-transcription-job-name", e.value.response)
+
+        res_delete_transcription_job = aws_client.transcribe.delete_transcription_job(
+            TranscriptionJobName=transcribe_job_name
+        )
+        snapshot.match("delete-transcription-job", res_delete_transcription_job)
diff --git a/tests/integration/test_transcribe.snapshot.json b/tests/integration/test_transcribe.snapshot.json
index 053b36b78a3b1..11cf06ed37abe 100644
--- a/tests/integration/test_transcribe.snapshot.json
+++ b/tests/integration/test_transcribe.snapshot.json
@@ -458,5 +458,43 @@
         }
       }
     }
+  },
+  "tests/integration/test_transcribe.py::TestTranscribe::test_transcribe_start_job_same_name": {
+    "recorded-date": "09-05-2023, 22:50:14",
+    "recorded-content": {
+      "response-start-job": {
+        "TranscriptionJob": {
+          "CreationTime": "datetime",
+          "LanguageCode": "en-GB",
+          "Media": {
+            "MediaFileUri": "s3:/<test-bucket>/test-clip.wav"
+          },
+          "StartTime": "datetime",
+          "TranscriptionJobName": "<transcription-job:1>",
+          "TranscriptionJobStatus": "IN_PROGRESS"
+        },
+        "ResponseMetadata": {
+          "HTTPHeaders": {},
+          "HTTPStatusCode": 200
+        }
+      },
+      "same-transcription-job-name": {
+        "Error": {
+          "Code": "ConflictException",
+          "Message": "The requested job name already exists. Use a different job name."
+        },
+        "Message": "The requested job name already exists. Use a different job name.",
+        "ResponseMetadata": {
+          "HTTPHeaders": {},
+          "HTTPStatusCode": 400
+        }
+      },
+      "delete-transcription-job": {
+        "ResponseMetadata": {
+          "HTTPHeaders": {},
+          "HTTPStatusCode": 200
+        }
+      }
+    }
   }
 }

Added fix and test case if transcription job name is same in `StartTranscriptionJob`
