Skip to content

Commit 52da5d2

Browse files
committed
chore: update README
1 parent 3bbf04f commit 52da5d2

1 file changed

Lines changed: 155 additions & 16 deletions

File tree

README.md

Lines changed: 155 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,39 +1,178 @@
1+
12
# Screamer
23

3-
A Windows desktop dictation tool. Hold a hotkey, speak, and polished text appears wherever your cursor is. Lives in the system tray with a clean settings window. Open source, MIT licensed.
4+
Fast Windows dictation that types wherever your cursor is.
5+
6+
Press a hotkey, speak, release - Screamer records your voice, sends it to a speech-to-text provider, optionally cleans up the result with an LLM, and types the final text into the active window.
7+
8+
No browser tab. No copy-paste. Just talk and keep moving.
9+
10+
## Install
11+
12+
Download the latest release from the **Releases** page.
13+
14+
Grab the versioned Windows zip:
15+
16+
```text
17+
Screamer-vX.Y.Z-windows-x64.zip
18+
```
19+
20+
Then:
21+
22+
1. Extract the zip.
23+
2. Open the `Screamer` folder.
24+
3. Run `Screamer.exe`.
25+
4. Configure your provider in Settings.
26+
27+
That's it.
28+
29+
## What Screamer does
30+
31+
- **Global hotkey dictation** - speak from anywhere on Windows.
32+
- **Hold-to-talk or toggle mode** - choose how recording should behave.
33+
- **Types into the focused app** - works in editors, browsers, chats, notes, docs, and more.
34+
- **OpenAI-compatible speech-to-text** - use OpenAI, Groq, or another compatible `/audio/transcriptions` endpoint.
35+
- **Optional AI cleanup** - fix punctuation, grammar, spelling, and capitalization after transcription.
36+
- **Fallback providers** - configure backup STT and LLM providers if the primary one fails.
37+
- **System tray app** - enable/disable, change hotkey, toggle rewrite, open settings, or exit from the tray.
38+
- **Microphone selection** - pick your input device and calibrate silence detection.
39+
- **Post-type key** - optionally press `Enter`, `Tab`, `Space`, or `Backspace` after typing.
40+
- **Windows startup support** - launch Screamer automatically when you log in.
41+
- **Secure API key storage** - API keys are stored locally with Windows DPAPI.
442

543
## How it works
644

7-
Press Scroll Lock (configurable), speak your sentence, release. Screamer records 16 kHz mono audio, sends it to a Whisper-compatible STT endpoint, optionally cleans up grammar and spelling via an LLM rewrite, and types the result into the active window. Toggle mode is also supported.
45+
```text
46+
Hotkey -> Record audio -> Transcribe -> Optional cleanup -> Type into active window
47+
```
48+
49+
Screamer records 16 kHz mono WAV audio, sends it to your configured STT provider, optionally runs the text through an LLM cleanup step, then injects the final text with Windows `SendInput`.
850

951
## Setup
1052

53+
On first launch, open **Settings** from the tray icon.
54+
55+
You need at least one speech-to-text provider.
56+
57+
Example OpenAI-compatible STT config:
58+
59+
```text
60+
Base URL: https://api.openai.com/v1
61+
Model: whisper-1
62+
API key: your_api_key
63+
```
64+
65+
For Groq or another provider, use their OpenAI-compatible base URL and model name.
66+
67+
The LLM rewrite step is optional. Leave it off if you want raw transcription.
68+
69+
## Settings
70+
71+
### General
72+
73+
- Recording mode: `Hold to talk` or `Toggle`
74+
- Hotkey selection
75+
- Post-type key
76+
- Start with Windows
77+
78+
### STT
79+
80+
- Primary speech-to-text provider
81+
- Optional fallback STT provider
82+
- Optional transcription language
83+
- Custom headers
84+
85+
### LLM
86+
87+
- Optional AI rewrite
88+
- Primary LLM provider
89+
- Optional fallback LLM provider
90+
- Editable system prompt
91+
- Custom headers
92+
93+
### Audio
94+
95+
- Input device selection
96+
- Silence threshold calibration
97+
98+
## Hotkeys
99+
100+
Available hotkey options:
101+
102+
```text
103+
Ctrl+Alt+Space
104+
Ctrl+Shift+Space
105+
Ctrl+Alt+D
106+
Ctrl+Alt+S
107+
Ctrl+Alt+V
108+
Scroll Lock
109+
Pause
110+
```
111+
112+
Default: `Ctrl+Alt+Space`
113+
114+
## For developers
115+
116+
Run from source:
117+
11118
```bash
12119
pip install -r requirements.txt
120+
python -m src.main
13121
```
14122

15-
Configure your STT provider (Groq, OpenAI, or any OpenAI-compatible endpoint) via the settings dialog. API keys are stored encrypted with Windows DPAPI.
123+
Run tests:
124+
125+
```bash
126+
python -m unittest discover -s tests -v
127+
```
128+
129+
Build dependencies:
130+
131+
```bash
132+
pip install -r requirements-build.txt
133+
```
16134

17-
## Features
135+
Build the Windows executable:
18136

19-
- Push-to-talk or toggle recording modes
20-
- Primary and fallback STT provider support
21-
- Optional AI rewrite for spelling and grammar
22-
- Persistent settings and secure key storage
23-
- Microphone device selection with auto-calibration
24-
- Post-type key support (Enter, Tab, Space, Backspace)
137+
```bash
138+
python -m PyInstaller --noconfirm --clean screamer.spec
139+
```
25140

26141
## Releases
27142

28-
Pushing a version tag builds the Windows executable and publishes a GitHub Release
29-
automatically (see `.github/workflows/release.yml`):
143+
Pushing a version tag builds and publishes a Windows release automatically:
30144

31145
```bash
32146
git tag v1.0.0
33147
git push origin v1.0.0
34148
```
35149

36-
The workflow runs the test suite, builds with PyInstaller, and attaches a
37-
`Screamer-v1.0.0-windows-x64.zip` (plus a `.sha256` checksum) to the release.
38-
Tags with a hyphen (e.g. `v1.0.0-rc1`) are published as pre-releases. Download the
39-
zip, extract it, and run `Screamer\Screamer.exe`.
150+
The release workflow:
151+
152+
1. Installs dependencies.
153+
2. Runs the test suite.
154+
3. Builds Screamer with PyInstaller.
155+
4. Packages the app as:
156+
157+
```text
158+
Screamer-v1.0.0-windows-x64.zip
159+
Screamer-v1.0.0-windows-x64.zip.sha256
160+
```
161+
162+
Hyphenated tags like `v1.0.0-rc1` are published as pre-releases.
163+
164+
## Platform
165+
166+
Screamer is built for Windows.
167+
168+
It depends on Windows-specific features including:
169+
170+
- global hotkeys via `RegisterHotKey`
171+
- text injection via `SendInput`
172+
- tray integration
173+
- DPAPI key storage
174+
- startup registration through the current user Run key
175+
176+
## License
177+
178+
MIT

0 commit comments

Comments
 (0)