# `examples.mic_realtime`

Real-Time Microphone Transcription with Whisper - vllm-mlx Transcribes speech in real-time as you speak using your Mac's microphone.

[View the complete module source at #L1-L236](https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/examples/mic_realtime.py#L1-L236).

## API details

Each callable below includes its exact signature, type annotations, inputs, defaults, return contract, documented exceptions, implementation source, and parsed docstring sections when the source provides them.

::: examples.mic_realtime
    options:
      members:
        - MODEL_ALIASES
        - SAMPLE_RATE
        - CHANNELS
        - RealtimeTranscriber
        - main
      filters: []
      show_if_no_docstring: true

## Complete contract reference

Expand any definition for its exact inputs, annotations, defaults, return contract, directly raised exceptions, source-grounded behavior, and immutable line link. This section includes private and nested definitions that ordinary API generators omit.

<details class="api-contract" id="contract-examples.mic_realtime.RealtimeTranscriber" markdown="1">
<summary><code>examples.mic_realtime.RealtimeTranscriber</code> · class</summary>

```python
examples.mic_realtime.RealtimeTranscriber(model_name: str, chunk_duration: float = 3.0, language: str = None)
```

Real-time audio transcription using Whisper.

**Parameters**

| Name | Type | Required | Default | Description |
| --- | --- | --- | --- | --- |
| `model_name` | `str` | `yes` | `none` | Required positional or keyword input. |
| `chunk_duration` | `float` | `no` | `3.0` | Optional positional or keyword input; defaults to `3.0`. |
| `language` | `str` | `no` | `None` | Optional positional or keyword input; defaults to `None`. |

**Returns**

- Constructs: `examples.mic_realtime.RealtimeTranscriber`

**Exceptions and behavior**

Class `RealtimeTranscriber` declares 6 direct member(s).
No direct `raise` statement appears in this definition.

[View source #L45-L171](https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/examples/mic_realtime.py#L45-L171).

</details>

<details class="api-contract" id="contract-examples.mic_realtime.RealtimeTranscriber.__init__" markdown="1">
<summary><code>examples.mic_realtime.RealtimeTranscriber.__init__</code> · method</summary>

```python
examples.mic_realtime.RealtimeTranscriber.__init__(model_name: str, chunk_duration: float = 3.0, language: str = None) -> not annotated
```

Method `RealtimeTranscriber.__init__` updates `self.model_name`, `self.chunk_duration`, `self.language`, `self.sample_rate`; calls `queue.Queue`.

**Parameters**

| Name | Type | Required | Default | Description |
| --- | --- | --- | --- | --- |
| `model_name` | `str` | `yes` | `none` | Required positional or keyword input. |
| `chunk_duration` | `float` | `no` | `3.0` | Optional positional or keyword input; defaults to `3.0`. |
| `language` | `str` | `no` | `None` | Optional positional or keyword input; defaults to `None`. |

**Returns**

- Type: `not annotated`

**Exceptions and behavior**

Method `RealtimeTranscriber.__init__` updates `self.model_name`, `self.chunk_duration`, `self.language`, `self.sample_rate`; calls `queue.Queue`.
No direct `raise` statement appears in this definition.

[View source #L48-L60](https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/examples/mic_realtime.py#L48-L60).

</details>

<details class="api-contract" id="contract-examples.mic_realtime.RealtimeTranscriber.load_model" markdown="1">
<summary><code>examples.mic_realtime.RealtimeTranscriber.load_model</code> · method</summary>

```python
examples.mic_realtime.RealtimeTranscriber.load_model() -> not annotated
```

Load the STT model.

**Parameters**

This callable has no explicit inputs.

**Returns**

- Type: `not annotated`

**Exceptions and behavior**

Method `RealtimeTranscriber.load_model` updates `self.engine`; calls `print`, `STTEngine`, `self.engine.load`.
No direct `raise` statement appears in this definition.

[View source #L62-L68](https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/examples/mic_realtime.py#L62-L68).

</details>

<details class="api-contract" id="contract-examples.mic_realtime.RealtimeTranscriber.audio_callback" markdown="1">
<summary><code>examples.mic_realtime.RealtimeTranscriber.audio_callback</code> · method</summary>

```python
examples.mic_realtime.RealtimeTranscriber.audio_callback(indata, frames, time_info, status) -> not annotated
```

Callback for audio input stream.

**Parameters**

| Name | Type | Required | Default | Description |
| --- | --- | --- | --- | --- |
| `indata` | `not annotated` | `yes` | `none` | Required positional or keyword input. |
| `frames` | `not annotated` | `yes` | `none` | Required positional or keyword input. |
| `time_info` | `not annotated` | `yes` | `none` | Required positional or keyword input. |
| `status` | `not annotated` | `yes` | `none` | Required positional or keyword input. |

**Returns**

- Type: `not annotated`

**Exceptions and behavior**

Method `RealtimeTranscriber.audio_callback` calls `print`, `self.audio_queue.put`, `indata.copy`.
No direct `raise` statement appears in this definition.

[View source #L70-L75](https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/examples/mic_realtime.py#L70-L75).

</details>

<details class="api-contract" id="contract-examples.mic_realtime.RealtimeTranscriber.transcribe_chunk" markdown="1">
<summary><code>examples.mic_realtime.RealtimeTranscriber.transcribe_chunk</code> · method</summary>

```python
examples.mic_realtime.RealtimeTranscriber.transcribe_chunk(audio_data) -> not annotated
```

Transcribe a chunk of audio.

**Parameters**

| Name | Type | Required | Default | Description |
| --- | --- | --- | --- | --- |
| `audio_data` | `not annotated` | `yes` | `none` | Required positional or keyword input. |

**Returns**

- Type: `not annotated`
- Direct return expressions: `result.text.strip()`

**Exceptions and behavior**

Method `RealtimeTranscriber.transcribe_chunk` calls `tempfile.NamedTemporaryFile`, `sf.write`, `self.engine.transcribe`, `result.text.strip`; returns `result.text.strip()`.
No direct `raise` statement appears in this definition.

[View source #L77-L90](https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/examples/mic_realtime.py#L77-L90).

</details>

<details class="api-contract" id="contract-examples.mic_realtime.RealtimeTranscriber.process_audio" markdown="1">
<summary><code>examples.mic_realtime.RealtimeTranscriber.process_audio</code> · method</summary>

```python
examples.mic_realtime.RealtimeTranscriber.process_audio() -> not annotated
```

Process audio chunks in real-time.

**Parameters**

This callable has no explicit inputs.

**Returns**

- Type: `not annotated`

**Exceptions and behavior**

Method `RealtimeTranscriber.process_audio` calls `int`, `np.array`, `self.audio_queue.empty`, `self.audio_queue.get`.
No direct `raise` statement appears in this definition.

[View source #L92-L129](https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/examples/mic_realtime.py#L92-L129).

</details>

<details class="api-contract" id="contract-examples.mic_realtime.RealtimeTranscriber.run" markdown="1">
<summary><code>examples.mic_realtime.RealtimeTranscriber.run</code> · method</summary>

```python
examples.mic_realtime.RealtimeTranscriber.run() -> not annotated
```

Start real-time transcription.

**Parameters**

This callable has no explicit inputs.

**Returns**

- Type: `not annotated`
- Direct return expressions: `self.transcriptions`

**Exceptions and behavior**

Method `RealtimeTranscriber.run` updates `self.is_recording`; calls `print`, `sd.InputStream`, `int`, `threading.Thread`; returns `self.transcriptions`.
No direct `raise` statement appears in this definition.

[View source #L131-L171](https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/examples/mic_realtime.py#L131-L171).

</details>

<details class="api-contract" id="contract-examples.mic_realtime.main" markdown="1">
<summary><code>examples.mic_realtime.main</code> · function</summary>

```python
examples.mic_realtime.main() -> not annotated
```

Function `main` calls `argparse.ArgumentParser`, `parser.add_argument`, `parser.parse_args`, `print`; returns `None`.

**Parameters**

This callable has no explicit inputs.

**Returns**

- Type: `not annotated`
- Direct return expressions: `None`

**Exceptions and behavior**

Function `main` calls `argparse.ArgumentParser`, `parser.add_argument`, `parser.parse_args`, `print`; returns `None`.
No direct `raise` statement appears in this definition.

[View source #L174-L232](https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/examples/mic_realtime.py#L174-L232).

</details>

## Complete symbol map

This map also includes private definitions and nested helpers. The signature column exposes every explicit input even when an internal helper has no dedicated parameter prose.

| Symbol | Kind | Signature and inputs | What it does | Source |
| --- | --- | --- | --- | --- |
| [`RealtimeTranscriber`](#contract-examples.mic_realtime.RealtimeTranscriber) | class | `RealtimeTranscriber(model_name: str, chunk_duration: float = 3.0, language: str = None)` | Real-time audio transcription using Whisper. | [#L45-L171](https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/examples/mic_realtime.py#L45-L171) |
| [`RealtimeTranscriber.__init__`](#contract-examples.mic_realtime.RealtimeTranscriber.__init__) | method | `RealtimeTranscriber.__init__(model_name: str, chunk_duration: float = 3.0, language: str = None) -> not annotated` | Method `RealtimeTranscriber.__init__` updates `self.model_name`, `self.chunk_duration`, `self.language`, `self.sample_rate`; calls `queue.Queue`. | [#L48-L60](https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/examples/mic_realtime.py#L48-L60) |
| [`RealtimeTranscriber.load_model`](#contract-examples.mic_realtime.RealtimeTranscriber.load_model) | method | `RealtimeTranscriber.load_model() -> not annotated` | Load the STT model. | [#L62-L68](https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/examples/mic_realtime.py#L62-L68) |
| [`RealtimeTranscriber.audio_callback`](#contract-examples.mic_realtime.RealtimeTranscriber.audio_callback) | method | `RealtimeTranscriber.audio_callback(indata, frames, time_info, status) -> not annotated` | Callback for audio input stream. | [#L70-L75](https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/examples/mic_realtime.py#L70-L75) |
| [`RealtimeTranscriber.transcribe_chunk`](#contract-examples.mic_realtime.RealtimeTranscriber.transcribe_chunk) | method | `RealtimeTranscriber.transcribe_chunk(audio_data) -> not annotated` | Transcribe a chunk of audio. | [#L77-L90](https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/examples/mic_realtime.py#L77-L90) |
| [`RealtimeTranscriber.process_audio`](#contract-examples.mic_realtime.RealtimeTranscriber.process_audio) | method | `RealtimeTranscriber.process_audio() -> not annotated` | Process audio chunks in real-time. | [#L92-L129](https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/examples/mic_realtime.py#L92-L129) |
| [`RealtimeTranscriber.run`](#contract-examples.mic_realtime.RealtimeTranscriber.run) | method | `RealtimeTranscriber.run() -> not annotated` | Start real-time transcription. | [#L131-L171](https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/examples/mic_realtime.py#L131-L171) |
| [`main`](#contract-examples.mic_realtime.main) | function | `main() -> not annotated` | Function `main` calls `argparse.ArgumentParser`, `parser.add_argument`, `parser.parse_args`, `print`; returns `None`. | [#L174-L232](https://github.com/waybarrios/vllm-mlx/blob/a69d47912bcb21d8fe04d48f75fa896b620ffcfa/examples/mic_realtime.py#L174-L232) |
