E5DR / talon_german

German Dictation Mode for Talon Voice
MIT License
3 stars 4 forks source link

Talon German

German Dictation Mode for the beta version subscription of Talon Voice.

This is a fork of earlier setups, adding some improvements.

Usage

Say german [mode] to switch from command mode to German dictation mode and english / ego to switch back. Use nimitz <german phrase> for single german phrases like you would use say <english phrase> (from russian "nemetz" for "german"). Check out the german.talon (and german.py) files for German commands.

Improvements:

I added various improvements for myself. Check out german.talon for more existing commands.

Text editing and navigation

A handful of additional commands that make on-the-fly edits of text much more convenient. especially:

In addition to already existing gehe rauf / runter / recht / links for single char movements.

Symbols

Some improvements regarding symbols - you can use more symbols and direct dictation now. Also added more symbols I frequently used, for example in Klammern (()), Spiegelstrich (-), Ellipse (...), Schrägstrich oder (/), Zeilenumbruch, Leerzeichen ...

Improved robustness of commands with VOSK

Since registered commands have no influence on what VOSK detects (talon only gets the result after speech recognition), misdetections for commands can be a lot more common than with conformer. I improved robustness of many of the commands by adding many of the common misrecognitions as possible alternatives. Unfortunately, this makes my talon file a bit uglier to read, since something like "springe rechts" now turns into "(springe | sprenge | spring | sprang | ... ) rechts"

German mode / quick german phrases

The original setup introduced a way to dictate a quick german phrase while in english mode without having to switch to german mode and back (like a german say command). This was originally just an improved version of the german [mode] command used to change modes (for example german Hallo Welt instead of german <pause> Hallo Welt english <pause>). Note that the implementation for this is somewhat of hack and behavior might change with updates in talon or the english speech model.

Since I would sometimes switch into german mode when I did not want to or fail to remain in german mode (resulting in my german text getting interpreted as a bunch of english commands), I set up the quick german phrase and the german mode change to use separate commands (there is also the fact that my german accent made the 'r' in 'german' a bit harder to recognize when quickly chaining):

Use english, or short ego (japanese "eigo" for english) to switch back.

Quick access to configuration

Similar to customize ... in the community command set, following commands allow quick access to important configuration files:

Context sensitive dictation

Can be activated for german dictation with the setting user.context_sensitive_dictation_german (this is separate from the english setting). Uses the community peek function, this keeps the behavior consistent and allows to make use of overloaded definitions for applications with special behavior.

Context sensitive dictation also applies to nimitz <phrase>, which means it is not necessary to add or remove spaces before inserting a german phrase (I find this to be very convenient).

Eye tracker control

You can control your eye tracker with the commands Tracking (an | aus | Augen | Kopf | kalibrieren).

Caveats:

Todo:

Dependencies

This is a plug-in for Talon Voice (https://talonvoice.com/). Requires the talon beta subscription for its support of additional speech engines. Assumes the community command set to be present in the talon user directory (for providing the peek function for context sensitive dictation and as shared location for the words_to_replace_de csv).

Setup

It won't work on mac unless you sign the pip installed library file yourself, or unless aegis ships the vosk kaldi library with talon pre-signed.

Related

Other related projects and repositories:

Also visit the #language-deutsch channel in the talon slack in case you have any questions or problems.