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

# Groq

> GroqTools gives an agent access to Groq's Whisper transcription, translation, and TTS APIs.

`GroqTools` allows an Agent to interact with the Groq API for performing fast audio transcription, translation, and text-to-speech (TTS).

## Prerequisites

Before using `GroqTools`, ensure you have the `groq` and `openai` libraries installed and your Groq API key configured.

1. **Install dependencies:**
   ```bash theme={null}
   uv pip install -U groq openai
   ```

2. **Set your API key:** Obtain your API key from the [Groq Console](https://console.groq.com/keys) and set it as an environment variable.

   ```bash Mac theme={null}
   export GROQ_API_KEY="your-groq-api-key"
   ```

   ```bash Windows theme={null}
   setx GROQ_API_KEY "your-groq-api-key"
   ```

## Initialization

Import `GroqTools` and add it to your Agent's tool list.

```python theme={null}
from agno.agent import Agent
from agno.tools.models.groq import GroqTools

agent = Agent(
    instructions=[
        "You are a helpful assistant that can transcribe audio, translate text and generate speech."
    ],
    tools=[GroqTools()],
    )
```

## Usage Examples

### 1. Transcribing Audio

Transcribe an audio file hosted at a URL:

```python transcription_agent.py theme={null}
import os
from agno.agent import Agent
from agno.models.openai import OpenAIResponses
from agno.tools.models.groq import GroqTools

audio_url = "https://agno-public.s3.amazonaws.com/demo_data/sample_conversation.wav"

agent = Agent(
    name="Groq Transcription Agent",
    model=OpenAIResponses(id="gpt-5.2"),
    tools=[GroqTools()],
    )

agent.print_response(f"Please transcribe the audio file located at '{audio_url}'")
```

### 2. Translating Audio and Generating Speech

Translate an audio file (e.g., French) to English, then generate a new audio file from the translated text.

```python translation_agent.py theme={null}
import base64
from pathlib import Path
from agno.agent import Agent
from agno.models.openai import OpenAIResponses
from agno.tools.models.groq import GroqTools
from agno.utils.media import save_base64_data

local_audio_path = "tmp/sample-fr.mp3"
output_path = Path("tmp/sample-en.wav")
output_path.parent.mkdir(parents=True, exist_ok=True)

agent = Agent(
    name="Groq Translation Agent",
    model=OpenAIResponses(id="gpt-5.2"),
    tools=[GroqTools()],
)

instruction = (
    f"Translate the audio file at '{local_audio_path}' to English. "
    f"Then, generate a new audio file using the translated English text."
)
response = agent.run(instruction)
if response and response.audio:
    base64_audio = base64.b64encode(response.audio[0].content).decode("utf-8")
    save_base64_data(base64_audio, str(output_path))
```

You can customize the underlying Groq models used for transcription, translation, and TTS during initialization:

```python theme={null}
groq_tools = GroqTools(
    transcription_model="whisper-large-v3",
    translation_model="whisper-large-v3",
    tts_model="playai-tts",
    tts_voice="Chip-PlayAI"
)
```

## Toolkit Params

| Parameter | Type | Default | Description |
| - | - | - | - |
| `api_key` | `Optional[str]` | `None` | Groq API key for authentication. If not provided, uses GROQ\_API\_KEY environment variable. |
| `transcription_model` | `str` | `"whisper-large-v3"` | Model to use for audio transcription. |
| `translation_model` | `str` | `"whisper-large-v3"` | Model to use for audio translation to English. |
| `tts_model` | `str` | `"playai-tts"` | Model to use for text-to-speech generation. |
| `tts_voice` | `str` | `"Chip-PlayAI"` | Voice to use for text-to-speech generation. |
| `enable_transcribe_audio` | `bool` | `True` | Enable the audio transcription function. |
| `enable_translate_audio` | `bool` | `True` | Enable the audio translation function. |
| `enable_generate_speech` | `bool` | `True` | Enable the text-to-speech generation function. |
| `all` | `bool` | `False` | Enable all available functions. When True, all enable flags are ignored. |

## Toolkit Functions

The `GroqTools` toolkit provides the following functions:

| Function | Description |
| - | - |
| `transcribe_audio` | Transcribes audio from a local file path or a public URL using Groq Whisper. |
| `translate_audio` | Translates audio from a local file path or public URL to English using Groq. |
| `generate_speech` | Generates speech from text using Groq TTS. |

## Developer Resources

* [Tools](https://github.com/agno-agi/agno/blob/main/libs/agno/agno/tools/models/groq.py)
* [Transcription Example](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/groq/transcription_agent.py)
* [Translation Example](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/groq/translation_agent.py)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.