# Performing Transcription

## 1. Setup OpenAI Key

It's base to generate a base instance for OpenAI using the secret key. To do this, create a file named openai.ts and copy the following code within it:

<pre class="language-typescript"><code class="lang-typescript"><strong>import Bottleneck from 'bottleneck';
</strong>import { Configuration, OpenAIApi } from 'openai';

class CustomFormData extends FormData {
  getHeaders() {
      return {}
  }
}

// helps with rate limits
export const limiterOpenai = new Bottleneck({
  maxConcurrent: 1,
  minTime: 50
});

const configuration = new Configuration({
  apiKey: process.env.NEXT_PUBLIC_OPENAI_API_KEY,
  formDataCtor: CustomFormData
});

const openai = new OpenAIApi(configuration);

export default openai;
</code></pre>

## 2. Generate Transcription

Generating the transcription is now is as a one-liner 😄

```typescript
const response = await openai.createTranscription(file, 'whisper-1', undefined, 'json', 1, 'en');
```

The file here is the audio file to create the transcription for. There are multiple ways to read the file, on web you can simply have an input and set type to file as:

```typescript

const onChangeHandler = async (event) => {
    const file: File = event.target.files[0];
    setFile(file);
};

 
<input accept=".mp3,.wav" onChange={onChangeHandler} type="file" />
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.mindplug.io/api/api-setup-audio/performing-transcription.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
