Amazon Transcribe
Amazon Transcribe on fakecloud: the full 43-operation control plane -- transcription, medical-transcription, call-analytics and medical-scribe jobs, custom and medical vocabularies, vocabulary filters, custom language models, call-analytics categories, and tagging -- with account-partitioned persistence. Speech recognition itself is a documented gap.
fakecloud implements Amazon Transcribe (transcribe), the automatic speech-recognition (ASR) service. All 43 operations from the AWS Smithy model ship now, backed by account-partitioned state that persists across restarts in persistent mode. The wire protocol is awsJson1.1 (x-amz-target Transcribe.<Op>), signing as transcribe.
This is the control plane: every job, vocabulary, filter, model, and category is real, validated, persisted CRUD -- no stubbed success responses. Requests are validated against the model's required / length / range / enum / pattern constraints before any handler runs, and an operation that dereferences a resource that does not exist returns Transcribe's NotFoundException; a duplicate name returns ConflictException.
Honest gap: speech recognition is not run
Transcribe's value is the ASR model that turns audio into a transcript. fakecloud does not run speech recognition. A job you start settles to COMPLETED and its Transcript.TranscriptFileUri points at the output location you requested (your OutputBucketName/OutputKey, or a service-managed location when you don't supply one), but no transcript JSON is produced at that URI -- there is no audio decode and no recognition step. Everything around recognition is faithful: job records, Media / Settings / ContentRedaction / ChannelDefinitions echoing, status lifecycle, output-URI synthesis, vocabularies, filters, models, categories, tags, validation, and persistence. If your workload only needs the Transcribe control-plane contract (create a job, poll it to COMPLETED, list/delete, manage vocabularies and tags), fakecloud is a faithful stand-in; if it needs the actual recognized text, that is out of scope.
Supported features
- Transcription jobs (
StartTranscriptionJob,GetTranscriptionJob,ListTranscriptionJobs,DeleteTranscriptionJob). A started job is minted atQUEUEDwith itsMedia,LanguageCode,MediaFormat,MediaSampleRateHertz,Settings,ModelSettings,JobExecutionSettings,ContentRedaction, language-identification flags, andSubtitlespersisted verbatim. On the nextGet/Listthe job settles toCOMPLETED, stampingCompletionTimeand a well-formedTranscript(plusSubtitlesOutputand aRedactedTranscriptFileUriwhen those were requested).ListTranscriptionJobshonors theStatusandJobNameContainsfilters and reports each summary'sOutputLocationType. - Medical transcription jobs (
StartMedicalTranscriptionJob,GetMedicalTranscriptionJob,ListMedicalTranscriptionJobs,DeleteMedicalTranscriptionJob) -- same lifecycle, carryingSpecialty,Type, andContentIdentificationType. - Call-analytics jobs (
StartCallAnalyticsJob,GetCallAnalyticsJob,ListCallAnalyticsJobs,DeleteCallAnalyticsJob) withCallAnalyticsJobSettingsandChannelDefinitions. - Call-analytics categories (
CreateCallAnalyticsCategory,GetCallAnalyticsCategory,UpdateCallAnalyticsCategory,ListCallAnalyticsCategories,DeleteCallAnalyticsCategory) withRulesandInputType. - Medical-scribe jobs (
StartMedicalScribeJob,GetMedicalScribeJob,ListMedicalScribeJobs,DeleteMedicalScribeJob). The settled job exposes aMedicalScribeOutputwith both aTranscriptFileUriand aClinicalDocumentUri, and reports whether aMedicalScribeContextwas provided. - Custom vocabularies (
CreateVocabulary,GetVocabulary,UpdateVocabulary,ListVocabularies,DeleteVocabulary) and medical vocabularies (CreateMedicalVocabulary,GetMedicalVocabulary,UpdateMedicalVocabulary,ListMedicalVocabularies,DeleteMedicalVocabulary). A new vocabulary isPENDINGand settles toREADYon the next read;Getreturns aDownloadUri. - Vocabulary filters (
CreateVocabularyFilter,GetVocabularyFilter,UpdateVocabularyFilter,ListVocabularyFilters,DeleteVocabularyFilter). - Custom language models (
CreateLanguageModel,DescribeLanguageModel,ListLanguageModels,DeleteLanguageModel). A new model isIN_PROGRESSand settles toCOMPLETEDon the next read, carrying itsInputDataConfig,BaseModelName, andLanguageCode. - Tagging (
TagResource,UntagResource,ListTagsForResource), keyed by the resource ARN (arn:aws:transcribe:<region>:<account>:<type>/<name>). Tagging a resource that does not exist returnsNotFoundException.
Resource ARNs
Transcribe resources are addressed by ARNs of the form arn:aws:transcribe:<region>:<account>:<type>/<name>, where <type> is one of transcription-job, medical-transcription-job, call-analytics-job, medical-scribe-job, vocabulary, medical-vocabulary, vocabulary-filter, language-model, or call-analytics-category.
Persistence
All state is account-partitioned and, in persistent mode, snapshotted to disk and restored on startup. Any lifecycle transition that was in flight when the process stopped is reconciled on load, so an interrupted job/vocabulary/model never wedges.