A simple AWS demo utilizes Amazon Transcribe to convert audio to text and do analyze. Demo site
Please consider to sponsor this project for the AWS expenses.
- Setup AWS CLI and credential configuration (
aws configure). - Run 
yarnto install all dependencies. - Run 
yarn buildto build both front end and back end. - Run 
yarn bootstrapto initialize AWS CDK deployment. - Run 
yarn deployto do the actual deployment. 
If the deployment is successful, the cloudfront URL will be displayed in the output like:
Outputs:
AwsTranscribeDemoStack.CloudFrontURL = xxx.cloudfront.net- Sign up Github Actions as a beta user.
 - Save your AWS credential and region in Github repo's secret (
[YOUR_REPO_URL]/settings/secrets)AWS_DEFAULT_REGION: region nameAWS_ACCESS_KEY_IDandAWS_SECRET_ACCESS_KEY
 - Every push will trigger a build/deploy to AWS, check your repo's "Actions" tab for details.
 
- Static website built by React and hosted on S3.
 - Upload audio file via website (click upload button):
- Call 
GetTokenLambda function via API gateway to get pre-signed URL for Audio File bucket. - Use S3 JS SDK to upload audio file directly to S3 with the pre-signed URL returned above.
- Newly uploaded audio file will trigger 
NewAudioLambda function which will:- Create a record in DynamoDB
 - Publish the record ID to 
NewAudioTopic in SNS - SNS will trigger 
TranscribeAudioLambda function to submit audio transcription job via Amazon Transcribe service API 
 
 - Newly uploaded audio file will trigger 
 
 - Call 
 - Check audio transcription status via website (click search button):
- Call 
GetAudiosLambda function via API gateway to get transcription status- After getting record ID from DB, check the corresponding transcription job via Amazon Transcribe service API.
 - If the job is ready, update the result URL to DB and return it to frontend.
 - If the job is still processing, do nothing.
 
 
 - Call 
 

