# AzureOpenAIWhisperParser

> **Class** in `langchain_community`

📖 [View in docs](https://reference.langchain.com/python/langchain-community/document_loaders/parsers/audio/AzureOpenAIWhisperParser)

Transcribe and parse audio files using Azure OpenAI Whisper.

This parser integrates with the Azure OpenAI Whisper model to transcribe
audio files. It differs from the standard OpenAI Whisper parser, requiring
an Azure endpoint and credentials. The parser is limited to files under 25 MB.

**Note**:
This parser uses the Azure OpenAI API, providing integration with the Azure
 ecosystem, and making it suitable for workflows involving other Azure services.

For files larger than 25 MB, consider using Azure AI Speech batch transcription:
https://learn.microsoft.com/azure/ai-services/speech-service/batch-transcription-create?pivots=rest-api#use-a-whisper-model

## Signature

```python
AzureOpenAIWhisperParser(
    self,
    *,
    api_key: Optional[str] = None,
    azure_endpoint: Optional[str] = None,
    api_version: Optional[str] = None,
    azure_ad_token_provider: Union[Callable[[], str], None] = None,
    language: Optional[str] = None,
    prompt: Optional[str] = None,
    response_format: Union[Literal['json', 'text', 'srt', 'verbose_json', 'vtt'], None] = None,
    temperature: Optional[float] = None,
    deployment_name: str,
    max_retries: int = 3,
)
```

## Description

**Setup:**

1. Follow the instructions here to deploy Azure Whisper:
   https://learn.microsoft.com/azure/ai-services/openai/whisper-quickstart?tabs=command-line%2Cpython-new&pivots=programming-language-python
2. Install ``langchain`` and set the following environment variables:

.. code-block:: bash

    pip install -U langchain langchain-community

    export AZURE_OPENAI_API_KEY="your-api-key"
    export AZURE_OPENAI_ENDPOINT="https://your-endpoint.openai.azure.com/"
    export OPENAI_API_VERSION="your-api-version"

**Example Usage:**

.. code-block:: python

from langchain_classic.community import AzureOpenAIWhisperParser

whisper_parser = AzureOpenAIWhisperParser(
    deployment_name="your-whisper-deployment",
    api_version="2024-06-01",
    api_key="your-api-key",
    # other params...
)

audio_blob = Blob(path="your-audio-file-path")
response = whisper_parser.lazy_parse(audio_blob)

for document in response:
    print(document.page_content)

**Integration with Other Loaders:**

The AzureOpenAIWhisperParser can be used with video/audio loaders and
`GenericLoader` to automate retrieval and parsing.

**YoutubeAudioLoader Example:**

.. code-block:: python

from langchain_community.document_loaders.blob_loaders import (
    YoutubeAudioLoader
    )
from langchain_community.document_loaders.generic import GenericLoader

# Must be a list
youtube_url = ["https://your-youtube-url"]
save_dir = "directory-to-download-videos"

loader = GenericLoader(
    YoutubeAudioLoader(youtube_url, save_dir),
    AzureOpenAIWhisperParser(deployment_name="your-deployment-name")
)

docs = loader.load()

## Parameters

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `api_key` | `Optional[str]` | No |  Azure OpenAI API key. If not provided, defaults to the `AZURE_OPENAI_API_KEY` environment variable. (default: `None`) |
| `azure_endpoint` | `Optional[str]` | No |  Azure OpenAI service endpoint. Defaults to `AZURE_OPENAI_ENDPOINT` environment variable if not set. (default: `None`) |
| `api_version` | `Optional[str]` | No |  API version to use, defaults to the `OPENAI_API_VERSION` environment variable. (default: `None`) |
| `azure_ad_token_provider` | `Union[Callable[[], str], None]` | No |  Azure Active Directory token for authentication (if applicable). (default: `None`) |
| `language` | `Optional[str]` | No |  Language in which the request should be processed. (default: `None`) |
| `prompt` | `Optional[str]` | No |  Custom instructions or prompt for the Whisper model. (default: `None`) |
| `response_format` | `Union[str, None]` | No |  The desired output format. Options: "json", "text", "srt", "verbose_json", "vtt". (default: `None`) |
| `temperature` | `Optional[float]` | No |  Controls the randomness of the model's output. (default: `None`) |
| `deployment_name` | `str` | Yes |  The deployment name of the Whisper model. |
| `max_retries` | `int` | No |  Maximum number of retries for failed API requests. (default: `3`) |

## Extends

- `BaseBlobParser`

## Constructors

```python
__init__(
    self,
    *,
    api_key: Optional[str] = None,
    azure_endpoint: Optional[str] = None,
    api_version: Optional[str] = None,
    azure_ad_token_provider: Union[Callable[[], str], None] = None,
    language: Optional[str] = None,
    prompt: Optional[str] = None,
    response_format: Union[Literal['json', 'text', 'srt', 'verbose_json', 'vtt'], None] = None,
    temperature: Optional[float] = None,
    deployment_name: str,
    max_retries: int = 3,
)
```

| Name | Type |
|------|------|
| `api_key` | `Optional[str]` |
| `azure_endpoint` | `Optional[str]` |
| `api_version` | `Optional[str]` |
| `azure_ad_token_provider` | `Union[Callable[[], str], None]` |
| `language` | `Optional[str]` |
| `prompt` | `Optional[str]` |
| `response_format` | `Union[Literal['json', 'text', 'srt', 'verbose_json', 'vtt'], None]` |
| `temperature` | `Optional[float]` |
| `deployment_name` | `str` |
| `max_retries` | `int` |


## Properties

- `api_key`
- `azure_endpoint`
- `api_version`
- `azure_ad_token_provider`
- `language`
- `prompt`
- `response_format`
- `temperature`
- `deployment_name`
- `max_retries`

## Methods

- [`lazy_parse()`](https://reference.langchain.com/python/langchain-community/document_loaders/parsers/audio/AzureOpenAIWhisperParser/lazy_parse)

---

[View source on GitHub](https://github.com/langchain-ai/langchain-community/blob/a6a6079511ac8a5c1293337f88096b8641562e77/libs/community/langchain_community/document_loaders/parsers/audio.py#L16)