Skip to main content

Braille Base

  • BrailleBase is an algorithm developed in Python with the goal of making Braille accessible to both blind and sighted individuals.

  • Its architecture was designed to be intuitive, easy to understand, and simple to manipulate, allowing any developer to explore, transform, and integrate Braille data without complexity.

1) Introduction

BrailleBase is divided into X parts.

Register Letters and Characters

The first part of BrailleBase is responsible for registering letters, characters, symbols, icons, and other elements. The registration methods are organized into four sets:

General — where all items are registered: letters, numbers, uppercase and lowercase characters, punctuation, and other elements.

Uppercase — stores all uppercase items of the registered language.

CJK — registers phonetic alphabets such as Pinyin, Katakana, Hangul, and other East Asian writing systems.

RTL — stores alphabets that are written and read from right to left.

The Uppercase, CJK, and RTL sets are also added to the General set. Therefore:

General = {General[0], Uppercase[1], CJK[2], RTL[3]}

from braillebase import BrailleBase

class BrailleBaseExemple(BrailleBase):
        def __init__(self):
        super().__init__()
        #Uppercase / Lowercase Rules
        self.setting_braille_rules_uppercase("⠠", "⠠⠄")
        #General
        self.append_braille_letter("a", ["⠁"]) 
        self.append_braille_letter("b", ["⠃"]) 
        self.append_braille_letter("c", ["⠉"]) 
        #Upper
        self.append_braille_letter("A", ["⠁"],1) 
        self.append_braille_letter("B", ["⠃"],1) 
        self.append_braille_letter("C", ["⠉"],1) 
        #CJK
        self.append_braille_letter("あ", ["⠁"],2)
        self.append_braille_letter("い", ["⠃"],2)
        self.append_braille_letter("う", ["⠉"],2)
        self.append_braille_letter("え", ["⠋"],2) 
        self.append_braille_letter("お", ["⠊"],2)
        #RTL
        self.append_braille_letter("ا", ["⠁"], 3) 
        self.append_braille_letter("ب", ["⠃"], 3) 
        self.append_braille_letter("ت", ["⠞"], 3) 
        self.append_braille_letter("ث", ["⠹"], 3) 
        self.append_braille_letter("ج", ["⠚"], 3)
        #Other A
        self.append_braille_letter("⠼", ["⠼"])
        self.append_braille_letter("1", ["⠁"]) 
        self.append_braille_letter("2", ["⠃"])
        #Other B
        self.append_braille_letter(".", ["⠲"])
        self.append_braille_letter(",", ["⠂"]) 
        self.append_braille_letter(";", ["⠆"])
        #Other C
        self.append_braille_letter("[ch]", ["⠡"])
        self.append_braille_letter("[sh]", ["⠩"])
        self.append_braille_letter("[th]", ["⠹"]) 
        #Other D
        self.append_braille_letter("[OW]", ["⠪"], 1)
        self.append_braille_letter("[AR]", ["⠜"], 1)
        self.append_braille_letter("[ING]", ["⠬"], 1) 
        #Other E
        self.append_braille_letter("$", ["⠈", "⠎"])
        self.append_braille_letter("¢", ["⠈", "⠉"])
        self.append_braille_letter("¥", ["⠈", "⠽"])
        self.append_braille_letter("€", ["⠈", "⠑"])

BrailleBase allows you to register or edit braille directly through the instantiated object. Since characters are stored in internal dictionaries, any new registration using an existing key automatically replaces the previous value. This makes it possible to add, correct, or update letters, symbols, and tokens at any point during execution, without recreating the class or reinitializing the system.

Convert Text To Braille

BrailleBase is the superclass that centralizes all the logic for processing, organizing, and analyzing Braille databases. All subclasses inherit this logic and provide different output formats.

A)

BrailleBase supports multiple output formats, including:

  • JSON - output_all_json(txt)
  • CSV - output_all_csv(txt)
  • XML - output_all_xml(txt)
  • YAML - output_all_yaml(txt)
  • Markdown - output_all_markdown(txt)
  • HTML - output_all_html(txt)
  • TXT - output_all_txt(txt)

The sequence of data provided in each set is: index, letter, braille, binary, numbering list, unicode, reverse braille, reverse binary, reverse numbering, reverse unicode.

For example, the braille ⠓ produces the following output:

  • Braille:
  • Numbering: 1-2-5.
  • Binary: 010011
  • Unicode: U+2813
  • Reverse Braille:
  • Reverse Numbering: 2-4-5
  • Reverse Binary: 011010
  • Reverse Unicode: U+281a

B)

Additionally, the class provides different types of Braille output:

I Love Braille!

output_braille_txt(txt)

“Standard Braille — this is the traditional braille used for tactile reading. Each cell represents the raised dots exactly as they would be perceived by the fingers. ⠠⠊⠀⠠⠇⠕⠧⠑⠀⠠⠃⠗⠁⠊⠇⠇⠑⠖

output_braille_txt(txt)

Reverse Braille — this is the mirrored version of standard braille. This format corresponds to braille writing, meaning the arrangement of dots as they appear when embossed or punched, before being read by touch. ⠲⠊⠸⠸⠑⠈⠺⠘⠄⠀⠊⠼⠪⠸⠄⠀⠑⠄

output_binary_txt(txt)

Binary corresponding to each Braille symbol: a string containing a number from 0 to 63 in binary, representing each dot position used in that specific braille cell, where 0 means no dot and 1 means a raised dot.

C)

At the core of the class is the confidence_test method, considered the ‘brain’ of BrailleBase. This method analyzes the provided sentence, identifies the most appropriate token, and returns a list of braille cells in the correct order, representing the final conversion sequence.

from braillebaseenglish import *

bbe = BrailleBaseEnglish()
# Complete output
print(bbe.output_all_json("insert any text"))
print(bbe.output_all_csv("insert any text"))
print(bbe.output_all_xml("insert any text"))
print(bbe.output_all_yaml("insert any text"))
print(bbe.output_all_markdown("insert any text", "insert any footer"))
print(bbe.output_all_html("insert any text", "insert any footer"))
print(bbe.output_all_txt("insert any text", "insert any footer"))
# Simple output
print(bbe.output_braille_txt("insert any text"))
print(bbe.output_reverse_braille_txt("insert any text"))
print(bbe.output_binary_txt("insert any text"))
# Confidence test
print(bbe.confidence_test("insert any text"))

-> pip install braillebase 0.2.9

Other -> pip install braille -> Japanese, Portuguese, English, Arabic, Viet

2) Objective and motivation

  • The goal is to create a tool capable of translating more complex texts and expressions using simple methods, so that even a beginner in programming can use it and develop their own tools.

  • In addition to providing a character‑to‑Braille translation engine, BrailleBase offers classes with a pre‑registered database, allowing the user to simply download it and start using it. This makes it easy to create new translation rules, register new items, and much more.

  • Beyond the code itself, BrailleBase will soon allow users to access Braille from other countries simply by calling a method. When sighted people study new languages, the first thing they are introduced to is the alphabet of the target language. With the pre‑registered characters, the user only needs to know which class to call — for example, BrailleBaseEnglish — and insert the character or sentence as the method argument. The Braille output will be generated automatically, along with its metadata if needed.

I Love ⠠⠊⠀⠠⠇⠕⠧⠑ 6 2‑4

6 1‑2‑3 1‑3‑5 1‑2‑3‑6 1‑5

Download files

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

Source Distribution

braillebase-0.2.9.tar.gz (12.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

braillebase-0.2.9-py3-none-any.whl (10.0 kB view details)

Uploaded Python 3

File details

Details for the file braillebase-0.2.9.tar.gz.

File metadata

  • Download URL: braillebase-0.2.9.tar.gz
  • Upload date:
  • Size: 12.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.13.9

File hashes

Hashes for braillebase-0.2.9.tar.gz
Algorithm Hash digest
SHA256 c72bdb280a953dc993d82db9bb353178c40f898c651c0cef8a205bde0f9e1a05
MD5 34be576690ad39a4fd311b5e4d30b7e6
BLAKE2b-256 8623569ddb5274c28cb62be519a6fd37c0931a1d78e712f53af17680a17993c9

See more details on using hashes here.

File details

Details for the file braillebase-0.2.9-py3-none-any.whl.

File metadata

  • Download URL: braillebase-0.2.9-py3-none-any.whl
  • Upload date:
  • Size: 10.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.13.9

File hashes

Hashes for braillebase-0.2.9-py3-none-any.whl
Algorithm Hash digest
SHA256 b33c4c297cf7670711f0220e51ac3764a2a3a378df19f0ceb07676656ec6511d
MD5 626128610b4111ea8cb0d0081055374b
BLAKE2b-256 5351dfc040093b85d78e6d8d8e924246fdb1f0784706f24d797de8df3a755585

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.2.9 This release

2 files

0.2.7

2 files

0.2.5

2 files

0.2.4

2 files

0.2.3

2 files

0.2.2

2 files

0.2.1

2 files

0.2.0

2 files

0.1.5

2 files

0.1.4

2 files

0.1.3

2 files

0.1.2

2 files

0.1.1

2 files

0.0.15

2 files

0.0.14

2 files

0.0.13

2 files

0.0.12

2 files

0.0.11

2 files

0.0.10

2 files

0.0.9

2 files

0.0.8

2 files

0.0.7

2 files

0.0.6

2 files

0.0.5

2 files

0.0.4

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page