> ## Documentation Index
> Fetch the complete documentation index at: https://assembly-preview.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# 🦜️🔗 LangChain JavaScript Integration with AssemblyAI

> 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.

<Note>
  Looking for the Python integration? [Go to the LangChain Python integration](/docs/integrations/langchain/python).
</Note>

## Quickstart

Add [the AssemblyAI SDK](https://github.com/AssemblyAI/assemblyai-node-sdk) to your project:

<CodeGroup>
  ```bash npm theme={"system"}
  npm install langchain @langchain/community
  ```

  ```bash yarn theme={"system"}
  yarn add langchain @langchain/community
  ```

  ```bash pnpm theme={"system"}
  pnpm add langchain @langchain/community
  ```

  ```bash bun theme={"system"}
  bun add langchain @langchain/community
  ```
</CodeGroup>

To use the loaders, you need an [AssemblyAI account](https://www.assemblyai.com/dashboard/signup) and get your AssemblyAI API key from the [dashboard](https://www.assemblyai.com/app/account). Configure the API key as the `ASSEMBLYAI_API_KEY` environment variable or the `apiKey` options parameter.

```JavaScript theme={"system"}
import {
  AudioTranscriptLoader,
  // AudioTranscriptParagraphsLoader,
  // AudioTranscriptSentencesLoader
} from "@langchain/community/document_loaders/web/assemblyai";

// You can also use a local file path and the loader will upload it to AssemblyAI for you.
const audioUrl = "https://assembly.ai/espn.m4a";

// Use `AudioTranscriptParagraphsLoader` or `AudioTranscriptSentencesLoader` for splitting the transcript into paragraphs or sentences
const loader = new AudioTranscriptLoader(
  {
    audio: audioUrl,
    // any other parameters as documented here: /docs/api-reference/transcript#create-a-transcript
  },
  {
    apiKey: "<ASSEMBLYAI_API_KEY>", // or set the `ASSEMBLYAI_API_KEY` env variable
  }
);
const docs = await loader.load();
console.dir(docs, { depth: Infinity });
```

<Info>
  * You can use the `AudioTranscriptParagraphsLoader` or `AudioTranscriptSentencesLoader` to split the transcript into paragraphs or sentences.
  * If the `audio_file` is a local file path, the loader will upload it to AssemblyAI for you.
  * The `audio_file` can also be a video file. See the [list of supported file types in the FAQ doc](/docs/concepts/faq).
  * If you don't pass in the `apiKey` option, the loader will use the `ASSEMBLYAI_API_KEY` environment variable.
  * You can add more properties in addition to `audio`. Find the full list of request parameters in the AssemblyAI API docs.
</Info>

You can also use the `AudioSubtitleLoader` to get `srt` or `vtt` subtitles as a document.

```JavaScript theme={"system"}
import { AudioSubtitleLoader } from "@langchain/community/document_loaders/web/assemblyai";

// You can also use a local file path and the loader will upload it to AssemblyAI for you.
const audioUrl = "https://assembly.ai/espn.m4a";

const loader = new AudioSubtitleLoader(
  {
    audio: audioUrl,
    // any other parameters as documented here: /docs/api-reference/transcript#create-a-transcript
  },
  "srt", // srt or vtt
  {
    apiKey: "<ASSEMBLYAI_API_KEY>", // or set the `ASSEMBLYAI_API_KEY` env variable
  }
);

const docs = await loader.load();
console.dir(docs, { depth: Infinity });
```

## Additional resources

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

* [The LangChain docs for the AssemblyAI document loader](https://js.langchain.com/docs/integrations/document_loaders/web_loaders/assemblyai_audio_transcription)
* [The API reference for the AssemblyAI document loaders](https://js.langchain.com/docs/api/document_loaders_web_assemblyai/)
* [How to integrate spoken audio into LangChain.js using AssemblyAI](https://www.assemblyai.com/blog/integrate-audio-langchainjs/)
* [Integrate Audio into LangChain.js apps in 5 Minutes](https://www.youtube.com/watch?v=hNpUSaYZIzs)
* [AssemblyAI JavaScript SDK](https://github.com/AssemblyAI/assemblyai-node-sdk)
