Below is a side-by-side comparison of a basic snippet to transcribe a file by AWS Transcribe and AssemblyAI:
AWS Transcribe
AssemblyAI
import timeimport boto3def transcribe_file(job_name, file_uri, transcribe_client): transcribe_client.start_transcription_job( TranscriptionJobName=job_name, Media={"MediaFileUri": file_uri}, MediaFormat="wav", LanguageCode="en-US", ) max_tries = 60 while max_tries > 0: max_tries -= 1 job = transcribe_client.get_transcription_job( TranscriptionJobName=job_name ) job_status = job["TranscriptionJob"]["TranscriptionJobStatus"] if job_status in ["COMPLETED", "FAILED"]: print(f"Job {job_name} is {job_status}.") if job_status == "COMPLETED": print( f"Download the transcript from\n" f"\t{job['TranscriptionJob']['Transcript']['TranscriptFileUri']}." ) break else: print(f"Waiting for {job_name}. Current status is {job_status}.") time.sleep(10)def main(): transcribe_client = boto3.client("transcribe") file_uri = "s3://test-transcribe/answer2.wav" transcribe_file("Example-job", file_uri, transcribe_client)if name == "main": main()
import assemblyai as aaiaai.settings.api_key = "YOUR-API-KEY"transcriber = aai.Transcriber()# You can use a local filepath:# audio_file = "./example.mp3"# Or use a publicly-accessible URL:audio_file = ( "https://assembly.ai/sports_injuries.mp3")config = aai.TranscriptionConfig( speech_models=["universal-3-pro", "universal-2"], language_detection=True, speaker_labels=True,)transcript = transcriber.transcribe(audio_file, config)if transcript.status == aai.TranscriptStatus.error: print(f"Transcription failed: {transcript.error}") exit(1)print(transcript.text)for utterance in transcript.utterances: print(f"Speaker {utterance.speaker}: {utterance.text}")
import assemblyai as aaiaai.settings.api_key = "YOUR-API-KEY"transcriber = aai.Transcriber()
When migrating from AWS to AssemblyAI, you’ll first need to handle authentication and SDK setup:Get your API key from your AssemblyAI dashboardThings to know:
Store your API key securely in an environment variable
API key authentication works the same across all AssemblyAI SDKs