Skip to main content

SpeakNow

SpeakNow is a high-performance, real-time AI voice interface built that runs on either OpenAI Realtime API, Google Gemini Flash Native Audio Live API or Grok Voice. It provides a seamless, low-latency speech-to-speech conversational experience directly in your terminal.

In additional to the textual TUI, various parts of the code can be used in other applications as a library particularly the code in speaknow_ai_realtime_text_to_speech.py/ai_services path. Documentation for a stable API is planned in near future. This project is based on and inspired by the push_to_talk_app.py example from the openai-python repository but with lots of features added and support for other AI services.

Features

  • Low-Latency Speech-to-Speech: Direct multimodal interaction using the gpt-realtime or gpt-realtime-mini or gemini-2.5-flash-native-audio models for near-instant responses.
  • Real-time Transcription: View live streaming transcripts of your conversation as you speak.
  • Advanced Audio Handling: Save input speech to local WAV files for record-keeping or debugging.
  • Configurable Parameters: Easily adjust system prompts, model names, mode, and transcription options through a built-in TUI settings menu.
  • Professional TUI: A clean, "sticky" interface with persistent headers, footers, and scrollable settings panes using textual.
  • Voice Amplitude Monitor: Monitor the volume of the voice input

Installation

SpeakNow requires Python 3.11 or greater.

To install the latest version from PyPI, run:

pip install speaknow-gui

On Windows ffmpeg is required:

winget install --id=Gyan.FFmpeg

For linux, portaudio19-dev and ffmpeg are required. For example, to install on Ubuntu:

sudo apt install portaudio19-dev ffmpeg

Usage

Configuration

Before running, ensure your OPENAI_API_KEY is set in your environment variables as minimum. GEMINI_API_KEY and XAI_API_KEY can also be set if those services are needed.

In Windows open the Edit Environmnent Variables GUI and add it there.

In Linux:

export OPENAI_API_KEY="your-api-key-here"

SpeakNow provides two main entry points for different use cases. If the script doesn't work, make sure the scripts path for Python is included in the PATH Environment Variable.

1. Standard Application

Launch the main TUI application to start a real-time session:

Windows:

speaknow.exe

Linux:

speaknow

GUI preview Config preview

2. Web Service Mode

Run a server-side version optimized for shared or remote environments:

Windows:

speaknow-serve.exe

Linux:

speaknow-serve

Modes:

The mode can be changed in configuration. Manual mode is triggered by hitting "Start," speaking and then hitting "Stop." to send the audio. Server VAD and uses periods of silence to automatically chunk the audio. Semantic VAD uses a semantic classifier to detect when the user has finished speaking, based on the words they have uttered. This setting will be ignored in Gemini which uses it's default VAD mechanism only.

Application Data

Logs, token usage and config file (can also be modifed in the TUI) will be stored here:

  • Windows: %APPDATA%\Speaknow
  • Windows when python is installed from Microsoft Store path will be something like: %LOCALAPPDATA%\Packages\PythonSoftwareFoundation.Python.3.1<....>\LocalCache\Roaming\Speaknow
  • Linux: $HOME/.config/Speaknow

Metadata

Release files for speaknow-gui 0.2.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for speaknow-gui 0.2.1
File Size Uploaded
speaknow_gui-0.2.1.tar.gz 27.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for speaknow-gui 0.2.1
File Interpreter ABI Platform
speaknow_gui-0.2.1-py3-none-any.whl Python 3 none any Details

Total release size: 58.3 kB

Release files / speaknow_gui-0.2.1.tar.gz

Download URL speaknow_gui-0.2.1.tar.gz
Size 27.0 kB
Tags Source
SHA-256 checksum
How to use checksums
5782b9bc03b9177f38473088cd6c5bb0de94f6019b5779d319053cff7d1a2f11
BLAKE2b-256 checksum
How to use checksums
12b02b08d1cf9aa4582e9f32fb56ba750987b19d49bea9e96596b45cec9ec731
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.2

Release files / speaknow_gui-0.2.1-py3-none-any.whl

Download URL speaknow_gui-0.2.1-py3-none-any.whl
Size 31.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
64b9c68ba614ae30f24f02b3175e22f784a8b354a233464f640ea416184dfc32
BLAKE2b-256 checksum
How to use checksums
5a7777510b6bb08537edcb6cfb8e7f4d2ccc5455863b25c510cc4b762dc35543
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.2

Release history Release notifications | RSS feed

This release

0.2.1 This release

2 release files

0.2.0

2 release files

0.1.4

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page