Metadata-Version: 2.4
Name: s2t-py
Version: 0.1.0
Summary: Fast, multimodal speech-to-text CLI powered by DraxonLLMs
Author: Draxon
License: MIT
Project-URL: Homepage, https://github.com/DraxonV1/Speech2Text
Project-URL: Repository, https://github.com/DraxonV1/Speech2Text
Project-URL: Issues, https://github.com/DraxonV1/Speech2Text/issues
Keywords: speech-to-text,audio,transcription,llm,draxonllms,cli,gemini,qwen
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Multimedia :: Sound/Audio :: Speech
Requires-Python: >=3.8
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: requests>=2.28.0
Dynamic: license-file

# s2t (Speech-to-Text CLI)

A lightweight CLI tool for transcribing audio (`.mp3`, `.opus`, `.m4a`, `.wav`, `.flac`, `.ogg`, etc.) directly to plain text or clean multi-page PDF documents using [DraxonLLMs](https://ai.draxon.one).

## Features

- **Multi-Format Support**: Handles `.mp3`, `.opus`, `.m4a`, `.wav`, `.flac`, `.ogg`, etc. Auto-normalizes inputs to 16kHz mono WAV via `ffmpeg` if available.
- **Multilingual LLM Audio Models**: Powered by audio-native models (`gemini-flash`, `gemini-pro`, `qwen3.8-omni-flash`, `mimo-v2.5-asr`).
- **Flexible Outputs**:
  - Direct raw text to `stdout`
  - Output to plain text file (`.txt`)
  - Standalone multi-page PDF export (`.pdf`) with automatic page wrapping and zero external dependencies
- **Live Streaming**: Stream tokens directly to terminal in real-time (`--stream`).

---

## Installation

### Via pip:

```bash
pip install s2t-py
```

### From source:

```bash
git clone https://github.com/DraxonV1/Speech2Text.git
cd Speech2Text
pip install -e .
```

---

## Quickstart

### 1. Set API Key

Set your DraxonLLMs API key via environment variable:

```bash
# Linux / macOS
export DRAXON_API_KEY="drx_your_api_key_here"

# Windows PowerShell
$env:DRAXON_API_KEY="drx_your_api_key_here"

# Windows Command Prompt
set DRAXON_API_KEY=drx_your_api_key_here
```

*(You can also pass it explicitly with `--api-key="drx_..."`)*

### 2. Transcribe Audio

#### Print raw text directly to terminal:
```bash
s2t --input=voice.opus
```

#### Output to plain text file:
```bash
s2t --input=meeting.mp3 --output=transcript.txt
```

#### Output to formatted PDF document:
```bash
s2t --input=interview.m4a --output=interview.pdf
```

#### Real-time streaming transcription:
```bash
s2t --input=speech.wav --stream
```

---

## CLI Options

```text
usage: s2t [-h] -i INPUT [-o OUTPUT] [--api-key API_KEY] [--api-base API_BASE]
           [--model MODEL] [--stream]

options:
  -h, --help            show this help message and exit
  -i INPUT, --input INPUT
                        Input audio file (.mp3, .opus, .m4a, .wav, etc.)
  -o OUTPUT, --output OUTPUT
                        Output file (.txt or .pdf). If omitted, prints raw text to stdout.
  --api-key API_KEY     DraxonLLMs API key (default: env DRAXON_API_KEY)
  --api-base API_BASE   API base URL (default: https://ai.draxon.one/api/v1)
  --model MODEL         Model name (default: gemini-flash)
  --stream              Stream raw text from model in real time
```

---

## Supported Models

Refer to `models.txt` for the current audio model roster:

- `gemini-flash` *(default)*: High accuracy, low latency, multilingual (English, Hindi, Spanish, etc.)
- `gemini-pro`: Maximum reasoning and contextual transcription
- `qwen3.8-omni-flash`: Omni-channel audio model
- `mimo-v2.5-asr`: Specialized Chinese speech recognition

To select a different model:
```bash
s2t --input=audio.mp3 --model=gemini-pro
```

---

## License

MIT
