startMedicalTranscriptionJob method
- required LanguageCode languageCode,
- required Media media,
- required String medicalTranscriptionJobName,
- required String outputBucketName,
- required Specialty specialty,
- required Type type,
- MedicalContentIdentificationType? contentIdentificationType,
- Map<
String, String> ? kMSEncryptionContext, - MediaFormat? mediaFormat,
- int? mediaSampleRateHertz,
- String? outputEncryptionKMSKeyId,
- String? outputKey,
- MedicalTranscriptionSetting? settings,
- List<
Tag> ? tags,
Transcribes the audio from a medical dictation or conversation and applies any additional Request Parameters you choose to include in your request.
In addition to many standard transcription features, Amazon Transcribe Medical provides you with a robust medical vocabulary and, optionally, content identification, which adds flags to personal health information (PHI). To learn more about these features, refer to How Amazon Transcribe Medical works.
To make a StartMedicalTranscriptionJob request, you must
first upload your media file into an Amazon S3 bucket; you can then
specify the Amazon S3 location of the file using the Media
parameter.
You must include the following parameters in your
StartMedicalTranscriptionJob request:
-
region: The Amazon Web Services Region where you are making your request. For a list of Amazon Web Services Regions supported with Amazon Transcribe, refer to Amazon Transcribe endpoints and quotas. -
MedicalTranscriptionJobName: A custom name you create for your transcription job that is unique within your Amazon Web Services account. -
Media(MediaFileUri): The Amazon S3 location of your media file. -
LanguageCode: This must been-US. -
OutputBucketName: The Amazon S3 bucket where you want your transcript stored. If you want your output stored in a sub-folder of this bucket, you must also includeOutputKey. -
Specialty: This must bePRIMARYCARE. -
Type: Choose whether your audio is a conversation or a dictation.
May throw BadRequestException.
May throw ConflictException.
May throw InternalFailureException.
May throw LimitExceededException.
Parameter languageCode :
The language code that represents the language spoken in the input media
file. US English (en-US) is the only valid value for medical
transcription jobs. Any other value you enter for language code results in
a BadRequestException error.
Parameter medicalTranscriptionJobName :
A unique name, chosen by you, for your medical transcription job. The name
that you specify is also used as the default name of your transcription
output file. If you want to specify a different name for your
transcription output, use the OutputKey parameter.
This name is case sensitive, cannot contain spaces, and must be unique
within an Amazon Web Services account. If you try to create a new job with
the same name as an existing job, you get a ConflictException
error.
Parameter outputBucketName :
The name of the Amazon S3 bucket where you want your medical transcription
output stored. Do not include the S3:// prefix of the
specified bucket.
If you want your output to go to a sub-folder of this bucket, specify it
using the OutputKey parameter; OutputBucketName
only accepts the name of a bucket.
For example, if you want your output stored in
S3://DOC-EXAMPLE-BUCKET, set OutputBucketName to
DOC-EXAMPLE-BUCKET. However, if you want your output stored
in S3://DOC-EXAMPLE-BUCKET/test-files/, set
OutputBucketName to DOC-EXAMPLE-BUCKET and
OutputKey to test-files/.
Note that Amazon Transcribe must have permission to use the specified location. You can change Amazon S3 permissions using the Amazon Web Services Management Console. See also Permissions Required for IAM User Roles.
Parameter specialty :
Specify the predominant medical specialty represented in your media. For
batch transcriptions, PRIMARYCARE is the only valid value. If
you require additional specialties, refer to .
Parameter type :
Specify whether your input media contains only one person
(DICTATION) or contains a conversation between two people
(CONVERSATION).
For example, DICTATION could be used for a medical
professional wanting to transcribe voice memos; CONVERSATION
could be used for transcribing the doctor-patient dialogue during the
patient's office visit.
Parameter contentIdentificationType :
Labels all personal health information (PHI) identified in your
transcript. For more information, see Identifying
personal health information (PHI) in a transcription.
Parameter kMSEncryptionContext :
A map of plain text, non-secret key:value pairs, known as encryption
context pairs, that provide an added layer of security for your data. For
more information, see KMS
encryption context and Asymmetric
keys in KMS.
Parameter mediaFormat :
Specify the format of your input media file.
Parameter mediaSampleRateHertz :
The sample rate, in hertz, of the audio track in your input media file.
If you do not specify the media sample rate, Amazon Transcribe Medical
determines it for you. If you specify the sample rate, it must match the
rate detected by Amazon Transcribe Medical; if there's a mismatch between
the value that you specify and the value detected, your job fails.
Therefore, in most cases, it's advised to omit
MediaSampleRateHertz and let Amazon Transcribe Medical
determine the sample rate.
Parameter outputEncryptionKMSKeyId :
The Amazon Resource Name (ARN) of a KMS key that you want to use to
encrypt your medical transcription output.
KMS key ARNs have the format
arn:partition:kms:region:account:key/key-id. For example:
arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab.
For more information, see
KMS key ARNs.
If you do not specify an encryption key, your output is encrypted with the default Amazon S3 key (SSE-S3).
Note that the role making the request and the role specified in the
DataAccessRoleArn request parameter (if present) must have
permission to use the specified KMS key.
Parameter outputKey :
Use in combination with OutputBucketName to specify the
output location of your transcript and, optionally, a unique name for your
output file. The default name for your transcription output is the same as
the name you specified for your medical transcription job
(MedicalTranscriptionJobName).
Here are some examples of how you can use OutputKey:
-
If you specify 'DOC-EXAMPLE-BUCKET' as the
OutputBucketNameand 'my-transcript.json' as theOutputKey, your transcription output path iss3://DOC-EXAMPLE-BUCKET/my-transcript.json. -
If you specify 'my-first-transcription' as the
MedicalTranscriptionJobName, 'DOC-EXAMPLE-BUCKET' as theOutputBucketName, and 'my-transcript' as theOutputKey, your transcription output path iss3://DOC-EXAMPLE-BUCKET/my-transcript/my-first-transcription.json. -
If you specify 'DOC-EXAMPLE-BUCKET' as the
OutputBucketNameand 'test-files/my-transcript.json' as theOutputKey, your transcription output path iss3://DOC-EXAMPLE-BUCKET/test-files/my-transcript.json. -
If you specify 'my-first-transcription' as the
MedicalTranscriptionJobName, 'DOC-EXAMPLE-BUCKET' as theOutputBucketName, and 'test-files/my-transcript' as theOutputKey, your transcription output path iss3://DOC-EXAMPLE-BUCKET/test-files/my-transcript/my-first-transcription.json.
Parameter settings :
Specify additional optional settings in your request, including channel
identification, alternative transcriptions, and speaker partitioning. You
can use that to apply custom vocabularies to your transcription job.
Parameter tags :
Adds one or more custom tags, each in the form of a key:value pair, to a
new medical transcription job at the time you start this new job.
To learn more about using tags with Amazon Transcribe, refer to Tagging resources.
Implementation
Future<StartMedicalTranscriptionJobResponse> startMedicalTranscriptionJob({
required LanguageCode languageCode,
required Media media,
required String medicalTranscriptionJobName,
required String outputBucketName,
required Specialty specialty,
required Type type,
MedicalContentIdentificationType? contentIdentificationType,
Map<String, String>? kMSEncryptionContext,
MediaFormat? mediaFormat,
int? mediaSampleRateHertz,
String? outputEncryptionKMSKeyId,
String? outputKey,
MedicalTranscriptionSetting? settings,
List<Tag>? tags,
}) async {
_s.validateNumRange(
'mediaSampleRateHertz',
mediaSampleRateHertz,
16000,
48000,
);
final headers = <String, String>{
'Content-Type': 'application/x-amz-json-1.1',
'X-Amz-Target': 'Transcribe.StartMedicalTranscriptionJob'
};
final jsonResponse = await _protocol.send(
method: 'POST',
requestUri: '/',
exceptionFnMap: _exceptionFns,
// TODO queryParams
headers: headers,
payload: {
'LanguageCode': languageCode.value,
'Media': media,
'MedicalTranscriptionJobName': medicalTranscriptionJobName,
'OutputBucketName': outputBucketName,
'Specialty': specialty.value,
'Type': type.value,
if (contentIdentificationType != null)
'ContentIdentificationType': contentIdentificationType.value,
if (kMSEncryptionContext != null)
'KMSEncryptionContext': kMSEncryptionContext,
if (mediaFormat != null) 'MediaFormat': mediaFormat.value,
if (mediaSampleRateHertz != null)
'MediaSampleRateHertz': mediaSampleRateHertz,
if (outputEncryptionKMSKeyId != null)
'OutputEncryptionKMSKeyId': outputEncryptionKMSKeyId,
if (outputKey != null) 'OutputKey': outputKey,
if (settings != null) 'Settings': settings,
if (tags != null) 'Tags': tags,
},
);
return StartMedicalTranscriptionJobResponse.fromJson(jsonResponse.body);
}