# NovaSonicSession

> **Class** in `langchain_aws`

📖 [View in docs](https://reference.langchain.com/python/langchain-aws/chat_models/bedrock_nova_sonic/NovaSonicSession)

Manages a single bidirectional streaming session with Nova Sonic.

This class handles the event protocol for sending and receiving audio/text
over the ``InvokeModelWithBidirectionalStream`` API. Sessions are created
via :meth:`ChatBedrockNovaSonic.create_session` and should be used as an
async context manager.

Example::

    async with model.create_session(system_prompt="Be helpful.") as session:
        await session.send_audio_chunk(audio_bytes)
        async for event in session.receive_events():
            handle(event)

## Signature

```python
NovaSonicSession(
    self,
    client: Any,
    model_id: str,
    *,
    system_prompt: Optional[str] = None,
    voice_id: str = 'matthew',
    max_tokens: int = 1024,
    temperature: float = 0.7,
    top_p: float = 0.9,
    input_sample_rate: int = DEFAULT_INPUT_SAMPLE_RATE,
    output_sample_rate: int = DEFAULT_OUTPUT_SAMPLE_RATE,
    audio_media_type: str = DEFAULT_AUDIO_MEDIA_TYPE,
    endpointing_sensitivity: Optional[str] = None,
)
```

## Parameters

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `client` | `Any` | Yes | The ``BedrockRuntimeClient`` instance. |
| `model_id` | `str` | Yes | The Nova Sonic model identifier. |
| `system_prompt` | `Optional[str]` | No | Optional system prompt for the conversation. (default: `None`) |
| `voice_id` | `str` | No | Voice identifier for audio output. (default: `'matthew'`) |
| `max_tokens` | `int` | No | Maximum tokens for inference. (default: `1024`) |
| `temperature` | `float` | No | Sampling temperature. (default: `0.7`) |
| `top_p` | `float` | No | Top-p sampling parameter. (default: `0.9`) |
| `input_sample_rate` | `int` | No | Sample rate for input audio in Hz. (default: `DEFAULT_INPUT_SAMPLE_RATE`) |
| `output_sample_rate` | `int` | No | Sample rate for output audio in Hz. (default: `DEFAULT_OUTPUT_SAMPLE_RATE`) |
| `audio_media_type` | `str` | No | Media type for audio data. (default: `DEFAULT_AUDIO_MEDIA_TYPE`) |
| `endpointing_sensitivity` | `Optional[str]` | No | Turn-detection sensitivity (HIGH/MEDIUM/LOW). Nova 2 Sonic only. (default: `None`) |

## Constructors

```python
__init__(
    self,
    client: Any,
    model_id: str,
    *,
    system_prompt: Optional[str] = None,
    voice_id: str = 'matthew',
    max_tokens: int = 1024,
    temperature: float = 0.7,
    top_p: float = 0.9,
    input_sample_rate: int = DEFAULT_INPUT_SAMPLE_RATE,
    output_sample_rate: int = DEFAULT_OUTPUT_SAMPLE_RATE,
    audio_media_type: str = DEFAULT_AUDIO_MEDIA_TYPE,
    endpointing_sensitivity: Optional[str] = None,
) -> None
```

| Name | Type |
|------|------|
| `client` | `Any` |
| `model_id` | `str` |
| `system_prompt` | `Optional[str]` |
| `voice_id` | `str` |
| `max_tokens` | `int` |
| `temperature` | `float` |
| `top_p` | `float` |
| `input_sample_rate` | `int` |
| `output_sample_rate` | `int` |
| `audio_media_type` | `str` |
| `endpointing_sensitivity` | `Optional[str]` |


## Properties

- `is_active`

## Methods

- [`start()`](https://reference.langchain.com/python/langchain-aws/chat_models/bedrock_nova_sonic/NovaSonicSession/start)
- [`send_text()`](https://reference.langchain.com/python/langchain-aws/chat_models/bedrock_nova_sonic/NovaSonicSession/send_text)
- [`start_audio_input()`](https://reference.langchain.com/python/langchain-aws/chat_models/bedrock_nova_sonic/NovaSonicSession/start_audio_input)
- [`send_audio_chunk()`](https://reference.langchain.com/python/langchain-aws/chat_models/bedrock_nova_sonic/NovaSonicSession/send_audio_chunk)
- [`end_audio_input()`](https://reference.langchain.com/python/langchain-aws/chat_models/bedrock_nova_sonic/NovaSonicSession/end_audio_input)
- [`receive_events()`](https://reference.langchain.com/python/langchain-aws/chat_models/bedrock_nova_sonic/NovaSonicSession/receive_events)
- [`close_input()`](https://reference.langchain.com/python/langchain-aws/chat_models/bedrock_nova_sonic/NovaSonicSession/close_input)
- [`end()`](https://reference.langchain.com/python/langchain-aws/chat_models/bedrock_nova_sonic/NovaSonicSession/end)

---

[View source on GitHub](https://github.com/langchain-ai/langchain-aws/blob/10d18256d46953e5fc8dca313a2c41eee29c2a80/libs/aws/langchain_aws/chat_models/bedrock_nova_sonic.py#L104)