Skip to main content

ChatGPT Voice Assistant

GitHub Actions Build Status

A simple interface to the OpenAI ChatGPT model with speech to text for input and text to speech for the output. chatgpt-voice-assistant uses OpenAI Whisper for speech transcription and OpenAI Speech Generation for TTS.

Setup

Mac Prerequisites

Install dependencies:

brew install portaudio
brew link portaudio

Update your pydistutils config file for portaudio usage by running the following:

echo "[build_ext]" >> $HOME/.pydistutils.cfg
echo "include_dirs="`brew --prefix portaudio`"/include/" >> $HOME/.pydistutils.cfg
echo "library_dirs="`brew --prefix portaudio`"/lib/" >> $HOME/.pydistutils.cfg

Install from PyPI

Run the following to install the chatgpt-assist CLI application:

pip install chatgpt-voice-assistant

Install from Source

  1. Install poetry (official docs or with pip install poetry)
  2. Install all dependencies with poetry install

Running the Script

Either set the OPENAI_API_KEY environment variable before running the script or pass in your secret key to the script like in the example below:

export OPENAI_API_KEY=<OPEN API SECRET KEY HERE>
gptassist

# OR

gptassist --open-ai-key=<OPEN API SECRET KEY HERE>

or if installed from source with poetry:

poetry run gptassist --open-ai-key=<OPEN API SECRET KEY HERE>

Start speaking and turn up your volume to hear the AI assistant respond.

Say the word "exit" or hit Ctrl+C in your terminal to stop the application.

Options

Below is the help menu from the chatgpt-assist CLI detailing all available options:

-h, --help
    show this help message and exit

--log-level LOG_LEVEL
    Whether to print at the debug level or not.

--input-device-name INPUT_DEVICE_NAME
    The input device name.

--lang LANG
    The language to listen for when running speech to text (ex. en or fr).

--max-tokens MAX_TOKENS
    Max OpenAI completion tokens to use for text generation.

--tld TLD
    Top level domain (ex. com or com.au).

--safe-word SAFE_WORD
    Word to speak to exit the application.

--wake-word WAKE_WORD
    (Optional) Word to trigger a response.

--open-ai-key OPEN_AI_KEY
    Required. Open AI Secret Key (or set OPENAI_API_KEY environment variable)

--tts {apple,google,openai}
    Choose a text-to-speech engine.

--speech-rate SPEECH_RATE
    The rate at which to play speech. 1.0=normal

Specifying an Output Language Accent

Specify both the LANGUAGE and TOP_LEVEL_DOMAIN vars to override the default English (United States)

gptassist --open-ai-key=<OPENAI_KEY> --lang=en --tld=com

Language Examples

  • English (United States) DEFAULT
    • LANGUAGE=en TOP_LEVEL_DOMAIN=com
  • English (Australia)
    • LANGUAGE=en TOP_LEVEL_DOMAIN=com.au
  • English (India)
    • LANGUAGE=en TOP_LEVEL_DOMAIN=co.in
  • French (France)
    • LANGUAGE=fr TOP_LEVEL_DOMAIN=fr

See Localized 'accents' section on gTTS docs for more information

References

Metadata

Release files for chatgpt-voice-assistant 2.0.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 chatgpt-voice-assistant 2.0.1
File Size Uploaded
chatgpt_voice_assistant-2.0.1.tar.gz 13.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for chatgpt-voice-assistant 2.0.1
File Interpreter ABI Platform
chatgpt_voice_assistant-2.0.1-py3-none-any.whl Python 3 none any Details

Total release size: 38.0 kB

Release files / chatgpt_voice_assistant-2.0.1.tar.gz

Download URL chatgpt_voice_assistant-2.0.1.tar.gz
Size 13.7 kB
Tags Source
SHA-256 checksum
How to use checksums
2f533eef5f2704059885e52672e3eb063b4f21e073bd687f936affeb760548fd
BLAKE2b-256 checksum
How to use checksums
0f4ec19ed1c6433245e326b7b4e787bd7f4c42d89ffdb089c83df73bfc163f55
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.10.13

Release files / chatgpt_voice_assistant-2.0.1-py3-none-any.whl

Download URL chatgpt_voice_assistant-2.0.1-py3-none-any.whl
Size 24.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
3539998cae14e61979e496dd774d8253d01d71991706d8e23a020816821d077e
BLAKE2b-256 checksum
How to use checksums
6b8e6785c2d64ec5bc46116472745ae47f93e652324eda380c6976014904fd8b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.10.13

Release history Release notifications | RSS feed

This release

2.0.1 This release

2 release files

1.3.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