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

# Groq

`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` library installed and your Groq API key configured.

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

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.

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

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

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

This example demonstrates how to 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

This example shows how to translate an audio file (e.g., French) to English and then generate a new audio file from the translated text.

```python translation_agent.py theme={null}
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.mp3")
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:
    save_base64_data(response.audio[0].base64_audio, 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

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