Skip to content

For clean Markdown of any page, append .md to the page URL. For a complete documentation index, see For full documentation content, see For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at

🦜️🔗 LangChain Python Integration with AssemblyAI

Transcribe audio in LangChain Python using the built-in integration with AssemblyAI.

For the complete documentation index, see llms.txt

To apply LLMs to speech, you first need to transcribe the audio to text, which is what the AssemblyAI integration for LangChain helps you with.

Looking for the LangChain JavaScript integration? Go to the LangChain.JS integration.

Quickstart

Install the AssemblyAI package and the AssemblyAI Python SDK:

bash
pip install langchain
pip install assemblyai

Set your AssemblyAI API key as an environment variable named ASSEMBLYAI_API_KEY. You can get a free AssemblyAI API key from the AssemblyAI dashboard.

bash
# Mac/Linux:
export ASSEMBLYAI_API_KEY=YOUR_API_KEY

# Windows:
set ASSEMBLYAI_API_KEY=YOUR_API_KEY

Import the AssemblyAIAudioTranscriptLoader from langchain.document_loaders.

python
from langchain.document_loaders import AssemblyAIAudioTranscriptLoader
  1. Pass the local file path or URL as the file_path argument of the AssemblyAIAudioTranscriptLoader.
  2. Call the load method to get the transcript as LangChain documents.
python
audio_file = ""
# or a local file path: audio_file = "./sports_injuries.mp3"

loader = AssemblyAIAudioTranscriptLoader(file_path=audio_file)

docs = loader.load()

The load method returns an array of documents, but by default, there's only one document in the array with the full transcript.

The transcribed text is available in the page_content attribute:

python
docs[0].page_content
# Load time, a new president and new congressional makeup. Same old ...

The metadata contains the full JSON response with more meta information:

python
{
  'language_code': <LanguageCode.en_us: 'en_us'>,
  'audio_url': '',
  'punctuate': True,
  'format_text': True,
  ...
}

Transcript formats

You can specify the transcript_format argument to load the transcript in different formats.

Depending on the format, load_data() returns either one or more documents. These are the different TranscriptFormat options:

  • TEXT: One document with the transcription text
  • SENTENCES: Multiple documents, splits the transcription by each sentence
  • PARAGRAPHS: Multiple documents, splits the transcription by each paragraph
  • SUBTITLES_SRT: One document with the transcript exported in SRT subtitles format
  • SUBTITLES_VTT: One document with the transcript exported in VTT subtitles format
python
import assemblyai as aai
from langchain.document_loaders import AssemblyAIAudioTranscriptLoader
from langchain.document_loaders.assemblyai import TranscriptFormat

loader = AssemblyAIAudioTranscriptLoader(
    file_path="./your_file.mp3",
    transcript_format=TranscriptFormat.SENTENCES,
)

docs = loader.load()

Transcription config

You can also specify the config argument to use different transcript features and speech understanding models. Here's an example of using the config argument to enable speaker labels, auto chapters, and entity detection:

python
import assemblyai as aai
from langchain.document_loaders import AssemblyAIAudioTranscriptLoader

config = aai.TranscriptionConfig(
    speaker_labels=True, auto_chapters=True, entity_detection=True
)

loader = AssemblyAIAudioTranscriptLoader(file_path="./your_file.mp3", config=config)

For the full list of options, see Transcript API reference.

Pass the AssemblyAI API key as an argument

Instead of configuring the AssemblyAI API key as the ASSEMBLYAI_API_KEY environment variable, you can also pass it as the api_key argument.

python
loader = AssemblyAIAudioTranscriptLoader(
    file_path="./your_file.mp3", api_key="<YOUR_API_KEY>"
)

Additional resources

You can learn more about using LangChain with AssemblyAI in these resources.

  • LangChain docs for the AssemblyAI document loader
  • How to use audio data in LangChain with Python
  • Retrieval Augmented Generation on audio data with LangChain and Chroma
  • Build LangChain Audio Apps with Python in 5 Minutes
  • How to use LangChain for RAG over audio files
  • AssemblyAI Python SDK