Skip to content

Latest commit

 

History

History
98 lines (69 loc) · 2.48 KB

README.org

File metadata and controls

98 lines (69 loc) · 2.48 KB

steno

steno is a personal project to digitize my stenographic writings.

Description

In my youth most of my notes were written in shorthand (Duployer system). This project aims to digitize old notes and integrate them into the current note system (org-roam).

The method would contain 2 steps:

  1. scan the notes page by page
  2. transform each image into a text file

Another goal of this project is to check the viability of basilisp (clojure on python vm). Python has many interesting libraries (especially in the science part) but has horrible syntax so basilisp could be a very good solution.

Archtecture

The application should be a simple pipe:

extractor
split the page image in word images
image-processor
clean and simplify the word image
converter
convert the word image in a sequence of numbers
translator
convert the number sequence in a string of chars

Getting Started

Linux, MacOS, and Windows (WSL2)

  1. Install
  2. Create an .envrc.local file (see .envrc.local.example).
  3. In the project folder run:
    direnv allow
        

    first time it will be a long process to download all packages and libraries.

Windows (non WSL2)

  1. Install
  2. Create manually the user variables defined in .envrc.local.example.
  3. In the project folder run:
    uv venv
    uv sync
        

Usage

The application could be run with the command:

bb app <params>

To see the params available run:

bb app -h

Development

To format the code run:

bb format

To lint the code run:

bb kondo

To make sure that no unformatted commits with lint errors end up in the main branch run initially:

	git config core.hooksPath hooks

The pre-push script will block the push if there are style or lint errors in code.

References

  1. https://en.wikipedia.org/wiki/Duployan_shorthand
  2. https://opencv.org/
  3. https://theailearner.com/tag/skeletonization-opencv/
  4. https://github.com/Wesley-Li/skeleton
  5. https://docs.opencv.org/4.x/d9/d61/tutorial_py_morphological_ops.html

License

This project is released under the GNU General Public License. See the file for details.