1 def byte_to_braille ( byte : int ) - > str :
2 """Direct 1:1 mapping: 256 bytes → 256 Braille patterns"""
3 return chr ( 0x2800 + byte )
⣿⠁ = TEXT
⣿⠃ = IMAGE
⣿⠇ = AUDIO
⣿⠏ = BINARY
1 import torch
2 import sentencepiece as spm
3
4 # Load tokenizer
5 sp = spm . SentencePieceProcessor ( )
6 sp . load ( "tokenizer.model" )
7
8 # Load model
9 from train_multimodal_v5 import Braille256MultimodalModel , MultimodalConfig
10 import json
11
12 with open ( "config.json" ) as f :
13 config = MultimodalConfig . from_dict ( json . load ( f ) )
14
15 model = Braille256MultimodalModel ( config )
16 model . load_state_dict ( torch . load ( "pytorch_model.bin" , map_location = "cpu" ) )
17 model . eval ( )
18
19 # Encode any data as Braille
20 def bytes_to_braille ( data : bytes ) - > str :
21 return '' . join ( chr ( 0x2800 + b ) for b in data )
22
23 # Generate from Braille prompt
24 braille_text = "⠞⠓⠑⠀⠟⠥⠊⠉⠅" # "the quick" in Braille
25 tokens = sp . encode ( braille_text )
26 input_ids = torch . tensor ( [ tokens ] )
27 output = model . generate ( input_ids , max_length = 50 )
28 generated = sp . decode ( output [ 0 ] . tolist ( ) )
29 print ( generated )
1 @misc{braille256v5,
2 title={braille256-v5: Multimodal Universal Braille Model},
3 author={Barrett, Ryan},
4 year={2024},
5 publisher={HuggingFace},
6 url={https://huggingface.co/ryanscottbarrett/braille256-v5}
7 }