Skip to main content

Dictation app for the terminal and Neovim

Project description

DrDictaphone

Dictation app for the terminal and Neovim, using Whisper for transcription and ChatGPT for post-processing.

Installation

You can use the installation script:

curl https://raw.githubusercontent.com/olekli/DrDictaphone/main/script/install.sh | sh

Or create a virtual environment and do:

pip install drdictaphone
python -m drdictaphone.cli install ~/DrDictaphone

Place OpenAI API key in ~/DrDictaphone/config/openai_api_key.

Running

To start the standalone app, do ./drdictaphone.

To start only the server, do ./drdictaphone server.

Shutdown a running server by doing ./drdictaphone shutdown.

Neovim Plugin

If you are not already using Python plugins in Neovim, you need to create a virtual environment for Neovim to use. Tell Neovim about it by adding to your init.vim:

let g:python3_host_prog = '~/.neovim-venv/bin/python'

(Or wherever your venv is located.)

Inside this virtual environment, install the Neovim plugin:

pip install drdictaphone-neovim-plugin

Now you need to add the plugin to your Neovim config directory:

ln -s ~/.neovim-venv/lib/python3.11/site-packages/drdictaphone_neovim/DrDictaphone.py ~/.config/nvim/rplugin/python3/.

(Your paths may vary.)

Then start the server. Do :UpdateRemotePlugins once in Neovim, restart. Use DrDictaphoneSetProfile, DrDictaphoneToggle vim commands.

Controlling Standalone App:

  • s: select profile
  • p: start / stop and transcribe recording
  • d: stop and discard recording
  • q: exit

Profiles

Profiles consist of:

  • topic for transcribing and post-processing, a list of strings
  • language to use for the transcriber, a string
  • output directory, a string
  • output_command to pipe output to
  • enable_vad whether or not to enable VAD, a bool, defaults to false

Output will be written to a timestamped file in the output directory.

VAD will filter recordings for parts with voice before processing them.

Post-Processor

The Post-Processor specs consist of:

  • instructions for the post-processor, either a filename to load from or a list of strings
  • gpt_model to use for post-processing, either a filename to load from or an object
  • options to use for post-processing, either a filename to load from or an object
  • tools to use for the post-processor, either a filename to load from or an object

The context for the post-processor is built from the profile and the post-processor specs. Settings in the profile take precedence over settings in the specs.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

drdictaphone-0.9.6.tar.gz (21.2 kB view details)

Uploaded Source

Built Distribution

drdictaphone-0.9.6-py3-none-any.whl (36.5 kB view details)

Uploaded Python 3

File details

Details for the file drdictaphone-0.9.6.tar.gz.

File metadata

  • Download URL: drdictaphone-0.9.6.tar.gz
  • Upload date:
  • Size: 21.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.3 CPython/3.10.12 Linux/5.15.0-113-generic

File hashes

Hashes for drdictaphone-0.9.6.tar.gz
Algorithm Hash digest
SHA256 1f05fd1ccd9f21c89139054c10135d664905b276456e51b459eebca176484bef
MD5 380992ea45ed36288ef533998ce6fb49
BLAKE2b-256 477835f2729049346bf1fc8d293bc6171b1955a67fd8c6acfd7052f6a6bf76fc

See more details on using hashes here.

File details

Details for the file drdictaphone-0.9.6-py3-none-any.whl.

File metadata

  • Download URL: drdictaphone-0.9.6-py3-none-any.whl
  • Upload date:
  • Size: 36.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.3 CPython/3.10.12 Linux/5.15.0-113-generic

File hashes

Hashes for drdictaphone-0.9.6-py3-none-any.whl
Algorithm Hash digest
SHA256 0bcf65b6cbfd68b782e7e48d99f290cb3cfc3bca16080d0e1846d40c44f9c8d6
MD5 6e7de1af77564e9dabb80a90244d19bc
BLAKE2b-256 c6432816fafd93e46605254af01ec0e06335de58f6a4e724de6734601d94271a

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page