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_neovim-0.9.3.tar.gz (6.8 kB view details)

Uploaded Source

Built Distribution

drdictaphone_neovim-0.9.3-py3-none-any.whl (7.4 kB view details)

Uploaded Python 3

File details

Details for the file drdictaphone_neovim-0.9.3.tar.gz.

File metadata

  • Download URL: drdictaphone_neovim-0.9.3.tar.gz
  • Upload date:
  • Size: 6.8 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_neovim-0.9.3.tar.gz
Algorithm Hash digest
SHA256 07e394cdf61f07b9ab81e98a2981a1b513140d8e5289cb094e3fe528654ae143
MD5 0fc070e53b9ed9ca9288eebcba81111b
BLAKE2b-256 d66a6b044a745375cb34f61c22db8e92ac4970793e6c10d4e04fff4e66cdc82e

See more details on using hashes here.

File details

Details for the file drdictaphone_neovim-0.9.3-py3-none-any.whl.

File metadata

File hashes

Hashes for drdictaphone_neovim-0.9.3-py3-none-any.whl
Algorithm Hash digest
SHA256 a6903eec0eef308ff075c09d624650d3399658f2d7a4a88974ed5c29bf8a64b7
MD5 8ad025c89cf48bffd6a8bb9fd8effb88
BLAKE2b-256 1a81dc78231014238a620c8e26fed7908083cea1d06b154ad31a8e5706592e0b

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