Home

Awesome

Vim Piper

A simple wrapper over the Piper text-to-speech system.

Introduction

Vim Piper is a Vim plugin that integrates the Piper text-to-speech system into Vim. It allows you to easily convert text within Vim to speech using Piper.<br> If you don't care about natural sounding tts, you can use vim-espeak.

Dependency

This plugin depends on the following:

Getting piper

On Arch Linux, do the following:

yay -S piper-tts-bin piper-voices-en-us # or your language of choice

You may also find piper and it's voices in the repositories of other distros, if not, simply grab the pre-compiled binaries of piper from here, and manually download your desired voices from here.<br> Once the download is finished, you can refer to the Configuration section of this README to find out out to setup vim-piper.

Installation

Using vim-plug

Add the following to your ~/.vimrc or ~/.config/nvim/init.vim:

Plug 'wolandark/vim-piper'

Then run :PlugInstall in Vim.

Configuration

You can configure the following variables in your ~/.vimrc.

let g:piper_bin = '/path/to/piper'
let g:piper_voice = '/path/to/voice/model.onnx'

The default values are:

let g:piper_bin = '/usr/bin/piper-tts'
let g:piper_voice = '/usr/share/piper-voices/en/en_US/joe/medium/en_US-joe-medium.onnx'

So if you install piper-tts and piper-voices-en-us from AUR, everything will work out of the box.

Functions

The plugin provides the following functions:

Mappings

The following mappings are defined by default:

Demo

SpeakWord()

https://github.com/user-attachments/assets/d34e58f5-a411-4f40-811a-c912afff0cae

SpeakCurrentLine()

https://github.com/user-attachments/assets/b7a8db7a-a90f-4eb9-9108-8686d58cacbd

SpeakCurrentParagraph()

https://github.com/user-attachments/assets/bad5ac11-7377-46a0-9e19-baab4b7ae8e6

SpeakCurrentFile()

https://github.com/user-attachments/assets/6afc5a8c-5188-479a-af56-80a949e319a0

SpeakVisualSelection()

https://github.com/user-attachments/assets/657173b3-8bb1-46fc-bc9c-67b49b608bf9

License

Same as Vim.

Enjoy!