Unable to do voice ID Batch Enrollment using StartSpeakerEnrollmentJob

0

Hi team,

I am trying to do a voice enrollment of my own to check how the batch enrollment is happening, according to the document I did all the setup like Api request od domain Id, InputDataConfig, OutputDataConfig and DataAccessRoleArn with all the necessary permissio, including the input manifest.json file and pointing that with InputDataConfig.

I can see the 200 success response while I run StartSpeakerEnrollmentJobCommand, but when I see the status of the enrollment using DescribeSpeakerEnrollmentJobCommand shows..

FailureDetails: { Message: 'The input JSON file is malformed and cannot be parsed.', StatusCode: 400 }

the above error message in the Json response when I mention the inputDataConfig S3 uri location pointing to the manifest file containing folder

But, If I mentioned the S3 uri of the manifest.json file itself I am getting..

FailureDetails: { Message: 'The provided input S3 URI is invalid.', StatusCode: 400 }

either of them are not enrolling and shows the above error messages, the json format in the manifest file is checked via validator and no issue in the format.

Please let me know how to enroll it.

Thanks, Arun vikash

1 Answer
0

Check S3 URI Format:

The S3 URI should be in the format s3://bucket-name/path/to/manifest.json. Ensure that the URI directly points to the manifest.json file and not just the folder containing it. Example: If your manifest.json is located in a folder input in your S3 bucket named voice-enrollment, the correct URI should be s3://voice-enrollment/input/manifest.json.

Validate the Manifest File Structure:

Ensure that your manifest.json follows the exact structure required by Amazon Transcribe or Amazon Voice ID. The common structure should look something like this:

{
  "AudioFileS3Locations": [
    {
      "S3Uri": "s3://your-bucket-name/path-to-audio-file/audio1.wav",
      "SpeakerId": "speaker-1"
    },
    {
      "S3Uri": "s3://your-bucket-name/path-to-audio-file/audio2.wav",
      "SpeakerId": "speaker-2"
    }
  ]
}

Each entry in AudioFileS3Locations should have a valid S3Uri pointing to the audio file and a SpeakerId.

Check Permissions:

Ensure that the S3 bucket and the files are accessible by the DataAccessRoleArn you've provided. This role should have the necessary permissions to read the S3 bucket and objects. The necessary permissions usually include s3:GetObject, s3:ListBucket, and possibly others depending on your setup.

Test with a Simple Manifest:

Create a very simple manifest.json file with just one or two entries to test the batch enrollment. This helps in isolating the problem, especially if there's an issue with specific files or entries in your full manifest.

Check File Paths in S3:

Ensure that there are no typos or incorrect paths in the S3Uri values. The path should exactly match the structure in your S3 bucket. Use AWS CLI or SDK Examples:

Refer to AWS documentation or examples that use StartSpeakerEnrollmentJobCommand.

profile pictureAWS
EXPERT
Deeksha
answered a month ago

You are not logged in. Log in to post an answer.

A good answer clearly answers the question and provides constructive feedback and encourages professional growth in the question asker.

Guidelines for Answering Questions